<?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>128029</bug_id>
          
          <creation_ts>2014-01-31 16:55:50 -0800</creation_ts>
          <short_desc>PlatformEvent::Type should be an enum class</short_desc>
          <delta_ts>2014-03-28 15:49:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>974536</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-01-31 16:55:50 -0800</bug_when>
    <thetext>Also, with the enum class scoping it can be moved outside of the PlatformEvent class to keep the same level of qualification.

I have a patch for this, which I&apos;ll rebase this weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974968</commentid>
    <comment_count>1</comment_count>
      <attachid>222971</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-03 01:24:41 -0800</bug_when>
    <thetext>Created attachment 222971
EWS round one fight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974969</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-03 01:27:15 -0800</bug_when>
    <thetext>Attachment 222971 did not pass style-queue:


ERROR: Source/WebCore/page/DragController.cpp:98:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1645:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/KeyboardEvent.cpp:39:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 3 in 50 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>975912</commentid>
    <comment_count>3</comment_count>
      <attachid>222996</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-03 10:10:56 -0800</bug_when>
    <thetext>Created attachment 222996
EWS round two fight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975913</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-03 10:14:02 -0800</bug_when>
    <thetext>Attachment 222996 did not pass style-queue:


ERROR: Source/WebCore/page/DragController.cpp:98:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1645:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 50 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>975944</commentid>
    <comment_count>5</comment_count>
      <attachid>223003</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-03 11:41:36 -0800</bug_when>
    <thetext>Created attachment 223003
round 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975945</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-03 11:43:49 -0800</bug_when>
    <thetext>Attachment 223003 did not pass style-queue:


ERROR: Source/WebCore/page/DragController.cpp:98:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1645:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 2 in 50 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>977504</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-06 13:02:10 -0800</bug_when>
    <thetext>Patch looks OK, but I actually prefer PlatformEvent::Type::Foo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977505</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-06 13:09:21 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Patch looks OK, but I actually prefer PlatformEvent::Type::Foo.

I can switch back if that&apos;s the preferred style here. I had originally moved it outside the class so it could be forward declared.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222971</attachid>
            <date>2014-02-03 01:24:41 -0800</date>
            <delta_ts>2014-02-03 10:10:52 -0800</delta_ts>
            <desc>EWS round one fight</desc>
            <filename>bug-128029-20140203012438.patch</filename>
            <type>text/plain</type>
            <size>86116</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUzNmExZDAxNjQ1NDdj
YWJkODAxMjNjYzAxM2EwNmZjODM1YTk5OS4uZjQwNzQ1NDRlYTRiYzMwZTE2MjE2YjA1NjMxNmYx
NGI5ZjMyYWY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDE0LTAyLTAzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUg
c2hvdWxkIGJlIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0tleWJvYXJk
RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUeXBlRm9yS2V5Ym9hcmRFdmVudFR5
cGUpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
dXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hL
ZXlFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnB1dEFnZW50OjpkaXNwYXRj
aE1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51
QXQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTW91c2VFdmVudCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhldGljVG91Y2hQb2ludDo6U3ludGhldGljVG91Y2hQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTeW50aGV0aWNTaW5nbGVUb3VjaEV2ZW50OjpTeW50aGV0
aWNTaW5nbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVQYXN0ZUdsb2JhbFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppc0tleUV2ZW50QWxsb3dl
ZEluRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVudElmRW5h
YmxlZCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlBsYXRmb3JtRXZlbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2
ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hl
ZWxFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9y
bVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Q
bGF0Zm9ybU1vdXNlRXZlbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3Vz
ZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0
Zm9ybVdoZWVsRXZlbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2
ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUeXBlRm9yR2Rr
S2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybU1v
dXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQ
bGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVs
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0
Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5
RG93bkV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG91Y2hFdmVudFR5
cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9ySU9TOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudCk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VFdmVudFR5cGVGb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1lc3NhZ2VUb0V2ZW50VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0
Zm9ybVdoZWVsRXZlbnQpOgorCiAyMDE0LTAyLTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9yZSBpT1MgYnVpbGQgZml4aW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmlu
ZGV4IGU1M2YxYmY3M2VkNDk0OTRmOTQwZTZjMTM2OTI3MDQ0OGViMmYxNzIuLmNlNjBmMjgzMzVj
NTczNWU5NGQ1ZGNhYjQwOGYwYzFlNjc5OTdmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6
OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBld2svZXdrX3RvdWNoX2V2
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdFBsYXRmb3JtVG91Y2hFdmVudDo6V2ViS2l0UGxhdGZv
cm1Ub3VjaEV2ZW50KToKKwogMjAxNC0wMS0zMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZW1vdmUgaW5saW5lIG1lbWJlciBmdW5jdGlvbnMgb2YgRnJhbWVT
ZWxlY3Rpb24gdGhhdCBhY2Nlc3MgbV9zZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBiZWZj
ZWFkODNlNjJlZmM2MTY5MGViNGVmZmNjMDYwYjQ0M2Y4NDQ4Li5lNzMzYzc0NGNkNzk0MTRhMzE2
NDI2ZWFjNDMyM2YxMWE1YTcxOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTQtMDItMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUGxh
dGZvcm1FdmVudDo6VHlwZSBzaG91bGQgYmUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDI5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJv
YXJkRXZlbnQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIpOgorCiAyMDE0LTAxLTMxICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBG
aXhpbmcgdGhlIEdUSyBidWlsZCBhZnRlciByMTYzMjMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDZi
ODU5MTQxNTE4OGM1MWQ5MzFiNTJmNmQ5ODQyNjY2ZDgzZDgxOTIuLjNmMWM3ZDk1Y2JlNzQzZjFk
OTJkODU4NGI2NjUyYzU4MjkwZTA0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06
CisgICAgICAgICgtW1dlYkZyYW1lIF9kcmFnU291cmNlRW5kZWRBdDpvcGVyYXRpb246XSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKGN1cnJlbnRLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2ludGVycHJldEtleUV2ZW50OnNhdmlu
Z0NvbW1hbmRzOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAg
KC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTQt
MDEtMzEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IGlubGluZSBtZW1iZXIgZnVuY3Rpb25zIG9mIEZyYW1lU2VsZWN0aW9uIHRoYXQgYWNjZXNzIG1f
c2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYTc2ODMyYjIxZmViZmRlZWVkZGE0ODY5YzEz
ZWMzNjliYmNhMThkMC4uMDk0YzdhMzUxZjdhMWY0M2QwYjkxZGM3M2QxOTAzYWY4YzM2NDFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAyLTAzICBCcmlhbiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgc2hvdWxk
IGJlIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6CisgICAgICAgIChnZW5lcmF0ZU1vdXNlRXZl
bnQpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6a2V5VXApOgor
ICAgICAgICAoV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgorICAgICAgICAo
V2ViVmlldzo6a2V5RG93bik6CisgICAgICAgIChXZWJWaWV3OjprZXlQcmVzcyk6CisKIDIwMTQt
MDItMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0aWxsIG1v
cmUgY2hhcmFjdGVycyAtPiBkZXByZWNhdGVkQ2hhcmFjdGVycyAoRVdTIGtlZXBzIGZpbmRpbmcg
bW9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggODdkNjQ0YWZhMTlhNzM0OTkxNzg3ZDYzNGY5
MWE3M2EyYjI5Mzg1Zi4uMjZiY2QxNzUxOTQ5ZTU0YTViZmMwODgwOTFjMjY3MjhlYzQ0MjQ3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMi0wMyAgQnJpYW4g
QnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHNo
b3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZUtl
eURvd24pOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlS2V5UHJlc3MpOgorICAgICAgICAoV2Vi
Vmlldzo6aGFuZGxlS2V5VXApOgorCiAyMDE0LTAxLTMwICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJA
YWRvYmUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcg
ZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDdlNDU2YzU0OWRiNGIyY2M5ZDYxZmUzNTVjZWFlMmI3MjIzNWIx
N2UuLjc3ZjJlNzg2MWM3MzQ5ZmRjZjllZDkwMmJiMmM0ZTcwNTU4Mjg1NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZv
cm1Nb3VzZUV2ZW50OjpXZWJLaXQyUGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViS2l0MlBsYXRmb3JtV2hlZWxFdmVudDo6V2ViS2l0MlBsYXRmb3JtV2hlZWxFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OldlYktpdDJQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1U
b3VjaEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1Ub3VjaEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVN
b3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SW5pdGlhbEZvY3VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmFnRW5kZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aGFuZGxlVGFwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzSW50
ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudCk6CisKIDIwMTQtMDItMDMgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBGaXggd3JvbmcgbWl4IG9mIGZjbnRsIGNvbW1hbmRzIGFuZCBmbGFncwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCBkZmNhZjU1MDcwZGM2OWY0OWY0MjE4Y2MyZTQ2Y2ZjYmM4NGFl
NjRiLi5mYTEzNmNkZWZhNTRiYjI0ZTRkNzRmOTUzMGFlYTg3ZjdlMDhiNDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtODIyLDcgKzgyMiw3IEBAIF9fWk43V2ViQ29yZTIxTWVtb3J5UHJlc3N1
cmVIYW5kbGVyN2luc3RhbGxFdgogX19aTjdXZWJDb3JlMjFOZXR3b3JrU3RvcmFnZVNlc3Npb24y
MWRlZmF1bHRTdG9yYWdlU2Vzc2lvbkV2CiBfX1pON1dlYkNvcmUyMU5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjI1c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbkV2CiBfX1pON1dlYkNvcmUyMU5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjI4Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkVSS04zV1RGNlN0cmlu
Z0UKLV9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50MjRkaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnRFTlNfMTNQbGF0Zm9ybUV2ZW50NFR5cGVFYgorX19aTjdXZWJDb3JlMjFQbGF0Zm9y
bUtleWJvYXJkRXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xN1BsYXRmb3JtRXZl
bnRUeXBlRWIKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRp
bmdSZXF1ZXN0c0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdXZWJDb3JlMjFSZXNv
dXJjZUxvYWRTY2hlZHVsZXIyMHNlcnZlUGVuZGluZ1JlcXVlc3RzRVBOUzBfMTVIb3N0SW5mb3Jt
YXRpb25FTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VM
b2FkU2NoZWR1bGVyMjFyZXN1bWVQZW5kaW5nUmVxdWVzdHNFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJv
YXJkRXZlbnQuY3BwCmluZGV4IGMwZTE2Zjg0MTcyZDU3YTQ5Zjk3YWU2NzE1M2M3MGFjZDcwNGRh
YWUuLjQ1MDA1MmEyYTM4OWEzZTZjY2RkZjMxN2E3NDNmNmYxNzQ4MDliOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTMzLDE2ICszMywxNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGVG
b3JLZXlib2FyZEV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUpCitzdGF0aWMgaW5s
aW5lIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlRm9yS2V5Ym9hcmRFdmVudFR5cGUoUGxh
dGZvcm1FdmVudFR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50OjpLZXlVcDoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6
S2V5VXA6CiAgICAgICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmtleXVwRXZlbnQ7Ci0gICAg
ICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bjoKKyAgICAgICAgY2FzZSBQbGF0Zm9y
bUV2ZW50VHlwZTo6UmF3S2V5RG93bjoKICAgICAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCku
a2V5ZG93bkV2ZW50OwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6OkNoYXI6CisgICAgICAg
IGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6OkNoYXI6CiAgICAgICAgICAgICByZXR1cm4gZXZlbnRO
YW1lcygpLmtleXByZXNzRXZlbnQ7Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6S2V5RG93
bjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93bjoKICAgICAgICAgICAg
IC8vIFRoZSBjYWxsZXIgc2hvdWxkIGRpc2FtYmlndWF0ZSB0aGUgY29tYmluZWQgZXZlbnQgaW50
byBSYXdLZXlEb3duIG9yIENoYXIgZXZlbnRzLgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggNTY4MmY4YTUzNDg1Yzc3
NGM5NzY5NzY4OWJmYmE0ZWNhZjZlNWMxNi4uYWYwY2RmMzEzYWUwMzUwMDRjMmJkMTkwNWYyZjYx
Zjk3NDNlOWI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtNTQsNyArNTQsNyBA
QCBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGNvbnN0IE1vdXNlRQogCiBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1vdXNl
RXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxB
YnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIGludCBk
ZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCkKIHsKLSAgICBBU1NFUlQoZXZl
bnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQgfHwgZXZlbnQuYnV0dG9uKCkg
IT0gTm9CdXR0b24pOworICAgIEFTU0VSVChldmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5
cGU6Ok1vdXNlTW92ZWQgfHwgZXZlbnQuYnV0dG9uKCkgIT0gTm9CdXR0b24pOwogCiAgICAgYm9v
bCBpc01vdXNlRW50ZXJPckxlYXZlID0gZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWVu
dGVyRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWxlYXZlRXZlbnQ7CiAg
ICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92
ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCmluZGV4IGM0NWEwNDAzMDQ4MTlmZTE5NzYz
MjdjMmU2OWNiNjZjNmNiNzc0MzkuLjA1NGVjNmY0ZmMxNWI0MTc0ZDU1NDhkMzVhMmM5MmQ1MGY5
NDI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1
dEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRB
Z2VudC5jcHAKQEAgLTc1LDE1ICs3NSwxNSBAQCB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzbwogCiB2
b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNoS2V5RXZlbnQoRXJyb3JTdHJpbmcqIGVy
cm9yLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3Vi
bGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25zdCBTdHJpbmcqIHVubW9kaWZp
ZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNvbnN0IGludCogd2luZG93c1Zp
cnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQq
IG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBjb25zdCBib29sKiBpc0tleXBh
ZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpCiB7Ci0gICAgUGxhdGZvcm1FdmVudDo6VHlwZSBj
b252ZXJ0ZWRUeXBlOworICAgIFBsYXRmb3JtRXZlbnRUeXBlIGNvbnZlcnRlZFR5cGU7CiAgICAg
aWYgKHR5cGUgPT0gImtleURvd24iKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1F
dmVudDo6S2V5RG93bjsKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBl
OjpLZXlEb3duOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gImtleVVwIikKLSAgICAgICAgY29udmVy
dGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6OktleVVwOworICAgICAgICBjb252ZXJ0ZWRUeXBlID0g
UGxhdGZvcm1FdmVudFR5cGU6OktleVVwOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gImNoYXIiKQot
ICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudDo6Q2hhcjsKKyAgICAgICAgY29u
dmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyOwogICAgIGVsc2UgaWYgKHR5cGUg
PT0gInJhd0tleURvd24iKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudDo6
UmF3S2V5RG93bjsKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpS
YXdLZXlEb3duOwogICAgIGVsc2UgewogICAgICAgICAqZXJyb3IgPSAiVW5yZWNvZ25pemVkIHR5
cGU6ICIgKyB0eXBlOwogICAgICAgICByZXR1cm47CkBAIC0xMDcsMTMgKzEwNywxMyBAQCB2b2lk
IEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNoS2V5RXZlbnQoRXJyb3JTdHJpbmcqIGVycm9y
LCBjb25zdCBTdHJpbmcmIHR5cAogCiB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNo
TW91c2VFdmVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdHlwZSwgaW50IHgs
IGludCB5LCBjb25zdCBpbnQqIG1vZGlmaWVycywgY29uc3QgZG91YmxlKiB0aW1lc3RhbXAsIGNv
bnN0IFN0cmluZyogYnV0dG9uLCBjb25zdCBpbnQqIGNsaWNrQ291bnQpCiB7Ci0gICAgUGxhdGZv
cm1FdmVudDo6VHlwZSBjb252ZXJ0ZWRUeXBlOworICAgIFBsYXRmb3JtRXZlbnRUeXBlIGNvbnZl
cnRlZFR5cGU7CiAgICAgaWYgKHR5cGUgPT0gIm1vdXNlUHJlc3NlZCIpCi0gICAgICAgIGNvbnZl
cnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgIGNvbnZlcnRl
ZFR5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOwogICAgIGVsc2UgaWYgKHR5
cGUgPT0gIm1vdXNlUmVsZWFzZWQiKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1F
dmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZl
bnRUeXBlOjpNb3VzZVJlbGVhc2VkOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm1vdXNlTW92ZWQi
KQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAg
ICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOwogICAg
IGVsc2UgewogICAgICAgICAqZXJyb3IgPSAiVW5yZWNvZ25pemVkIHR5cGU6ICIgKyB0eXBlOwog
ICAgICAgICByZXR1cm47CkBAIC0xNTQsMTMgKzE1NCwxMyBAQCB2b2lkIEluc3BlY3RvcklucHV0
QWdlbnQ6OmRpc3BhdGNoTW91c2VFdmVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmlu
ZyYgdAogCiAgICAgRXZlbnRIYW5kbGVyJiBldmVudEhhbmRsZXIgPSBtX3BhZ2UtPm1haW5GcmFt
ZSgpLmV2ZW50SGFuZGxlcigpOwogICAgIHN3aXRjaCAoY29udmVydGVkVHlwZSkgewotICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5
cGU6Ok1vdXNlUHJlc3NlZDoKICAgICAgICAgZXZlbnRIYW5kbGVyLmhhbmRsZU1vdXNlUHJlc3NF
dmVudChldmVudCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91
c2VSZWxlYXNlZDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkOgog
ICAgICAgICBldmVudEhhbmRsZXIuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoZXZlbnQpOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6CisgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZDoKICAgICAgICAgZXZlbnRIYW5kbGVyLmhh
bmRsZU1vdXNlTW92ZUV2ZW50KGV2ZW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCA5
MjI1ZTljMWE0MWRiM2I4ZTAzY2FhODFjNGEwNDM3ZmU2ODVkZjExLi5hNjIwYTY1NmRmMzM5N2I5
MDBlYzlmN2Q2N2RkZGMzZGZlMDZkM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xNDA0LDcgKzE0MDQsNyBAQCB2b2lkIENvbnRleHRN
ZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRQ
b2ludCYgY2xpYwogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAvLyBTaW11bGF0
ZSBhIGNsaWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0LgotICAg
IFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJp
Z2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91
c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJl
bnRUaW1lKCkpOwogICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZl
bnQobW91c2VFdmVudCk7CiAgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigp
LnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA1MzM3NmY2YzgwNGYxY2EzZjY1
MTllYzRjMmI2OTY2MDQ0MmIwZTJkLi42ZWQ1YzZmOGU3YWU2ZTNkZTI3NWZlMjYxM2EyMGFhYTQ4
NTFlNWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtOTUsNyAr
OTUsNyBAQCBzdGF0aWMgUGxhdGZvcm1Nb3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoRHJhZ0Rh
dGEmIGRyYWdEYXRhKQogICAgIG1ldGFLZXkgPSBzdGF0aWNfY2FzdDxib29sPihrZXlTdGF0ZSAm
IFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXkpOwogCiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVu
dChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVk
LCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCBjOGQ1YTZlNWVjMjhkY2JhMWVlYTM0NDczZjA0NjFjMjNlZjQxNmNj
Li4xOWIxMTUxYjc2OWUzYzQ4ZDliMjE4MDZlZGMyMTVkZWJmNzQ1MzYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yMjEsMTcgKzIyMSwxNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fcm90YXRpb25BbmdsZSA9IHJvdGF0aW9uQW5nbGVEZWZhdWx0VmFsdWU7CiAgICAgICAg
IG1fZm9yY2UgPSBmb3JjZURlZmF1bHRWYWx1ZTsKIAotICAgICAgICBQbGF0Zm9ybUV2ZW50OjpU
eXBlIHR5cGUgPSBldmVudC50eXBlKCk7Ci0gICAgICAgIEFTU0VSVCh0eXBlID09IFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQgfHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQg
fHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkKTsKKyAgICAgICAgUGxhdGZv
cm1FdmVudFR5cGUgdHlwZSA9IGV2ZW50LnR5cGUoKTsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0g
UGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQgfHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6TW91c2VQcmVzc2VkIHx8IHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFz
ZWQpOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQ6CisgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92
ZWQ6CiAgICAgICAgICAgICBtX3N0YXRlID0gVG91Y2hNb3ZlZDsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDoKKyAgICAgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOgogICAgICAgICAgICAgbV9zdGF0ZSA9
IFRvdWNoUHJlc3NlZDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUmVsZWFzZWQ6CisgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1v
dXNlUmVsZWFzZWQ6CiAgICAgICAgICAgICBtX3N0YXRlID0gVG91Y2hSZWxlYXNlZDsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgpAQCAtMjQ2LDEzICsyNDYsMTMgQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IFN5bnRoZXRpY1NpbmdsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSgp
KSB7Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDoKKyAgICAgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZDoKICAgICAgICAgICAgIG1fdHlwZSA9IFRv
dWNoTW92ZTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZDoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVz
c2VkOgogICAgICAgICAgICAgbV90eXBlID0gVG91Y2hTdGFydDsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ6CisgICAgICAgIGNh
c2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQ6CiAgICAgICAgICAgICBtX3R5cGUg
PSBUb3VjaEVuZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgpAQCAtMzY5
LDcgKzM2OSw3IEBAIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lJiBmcmFtZSkKICAg
ICAsIG1fdG91Y2hQcmVzc2VkKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX21heE1vdXNlTW92ZWRE
dXJhdGlvbigwKQotICAgICwgbV9iYXNlRXZlbnRUeXBlKFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSkK
KyAgICAsIG1fYmFzZUV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50VHlwZTo6Tm9UeXBlKQogICAgICwg
bV9kaWRTdGFydERyYWcoZmFsc2UpCiAgICAgLCBtX2RpZExvbmdQcmVzc0ludm9rZUNvbnRleHRN
ZW51KGZhbHNlKQogICAgICwgbV9pc0hhbmRsaW5nV2hlZWxFdmVudChmYWxzZSkKQEAgLTQ0OCw3
ICs0NDgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogICAgIG1fb3JpZ2luYXRpbmdU
b3VjaFBvaW50VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0
aW9uID0gMDsKLSAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7Cisg
ICAgbV9iYXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok5vVHlwZTsKICAgICBtX2Rp
ZFN0YXJ0RHJhZyA9IGZhbHNlOwogICAgIG1fZGlkTG9uZ1ByZXNzSW52b2tlQ29udGV4dE1lbnUg
PSBmYWxzZTsKIH0KQEAgLTE5ODYsMTAgKzE5ODYsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVBhc3RlR2xvYmFsU2VsZWN0aW9uKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VF
dmUKICAgICAvLyBjbGVhcnMgdGhlIHRleHQgYm94LiBTbyBpdCdzIGltcG9ydGFudCB0aGlzIGhh
cHBlbnMgYWZ0ZXIgdGhlIGV2ZW50CiAgICAgLy8gaGFuZGxlcnMgaGF2ZSBiZWVuIGZpcmVkLgog
I2lmIFBMQVRGT1JNKEdUSykKLSAgICBpZiAobW91c2VFdmVudC50eXBlKCkgIT0gUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkKQorICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9y
bUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQot
ICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
KQorICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VS
ZWxlYXNlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKQEAgLTI1MTQsNyArMjUx
NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgZSkKICAgICAvLyBJbnN0ZWFkLCB0aGUgaGFuZGxlcnMgc2hvdWxkIGtub3cg
Y29udmVydCB2ZXJ0aWNhbCBzY3JvbGxzCiAgICAgLy8gYXBwcm9wcmlhdGVseS4KICAgICBQbGF0
Zm9ybVdoZWVsRXZlbnQgZXZlbnQgPSBlOwotICAgIGlmIChtX2Jhc2VFdmVudFR5cGUgPT0gUGxh
dGZvcm1FdmVudDo6Tm9UeXBlICYmIHNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250
YWwocmVzdWx0LCBlKSkKKyAgICBpZiAobV9iYXNlRXZlbnRUeXBlID09IFBsYXRmb3JtRXZlbnRU
eXBlOjpOb1R5cGUgJiYgc2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChyZXN1
bHQsIGUpKQogICAgICAgICBldmVudCA9IGV2ZW50LmNvcHlUdXJuaW5nVmVydGljYWxUaWNrc0lu
dG9Ib3Jpem9udGFsVGlja3MoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI2ODAsOSArMjY4
MCw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3Igd2ViIGNvbXBhdGliaWxpdHkuCiAKICNpZiBPUyhX
SU5ET1dTKQotICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVu
dDo6TW91c2VSZWxlYXNlZDsKKyAgICBQbGF0Zm9ybUV2ZW50VHlwZSBldmVudFR5cGUgPSBQbGF0
Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZDsKICNlbHNlCi0gICAgUGxhdGZvcm1FdmVudDo6
VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgUGxhdGZv
cm1FdmVudFR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZDsK
ICNlbmRpZgogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKQEAgLTI3NjcsNyArMjc2Nyw3IEBAIHZv
aWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50
SGFuZGxlcj4mIHRpbWVyKQogICAgIGJvb2wgYWx0S2V5OwogICAgIGJvb2wgbWV0YUtleTsKICAg
ICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5
LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtl
TW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNl
R2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBz
aGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3Np
dGlvbiwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudFR5cGU6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFL
ZXksIGN1cnJlbnRUaW1lKCkpOwogICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNlTW92ZUV2ZW50KTsK
IH0KIApAQCAtMjgyOSw3ICsyODI5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmlzS2V5RXZlbnRB
bGxvd2VkSW5GdWxsU2NyZWVuKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2UKICAgICBp
ZiAoZG9jdW1lbnQtPndlYmtpdEZ1bGxTY3JlZW5LZXlib2FyZElucHV0QWxsb3dlZCgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChrZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpDaGFyKSB7CisgICAgaWYgKGtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9y
bUV2ZW50VHlwZTo6Q2hhcikgewogICAgICAgICBpZiAoa2V5RXZlbnQudGV4dCgpLmxlbmd0aCgp
ICE9IDEpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFVDaGFyIGNoYXJhY3Rl
ciA9IGtleUV2ZW50LnRleHQoKVswXTsKQEAgLTI4NTksNyArMjg1OSw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlF
dmVudCkKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICBpZiAobV9mcmFtZS5tYWluRnJh
bWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsKICAgICAgICAgLy8g
SWYgYSBrZXkgaXMgcHJlc3NlZCB3aGlsZSB0aGUgcGFuU2Nyb2xsIGlzIGluIHByb2dyZXNzIHRo
ZW4gd2Ugd2FudCB0byBzdG9wCi0gICAgICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlwZSgpID09
IFBsYXRmb3JtRXZlbnQ6OktleURvd24gfHwgaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0
Zm9ybUV2ZW50OjpSYXdLZXlEb3duKQorICAgICAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93biB8fCBpbml0aWFsS2V5RXZlbnQudHlwZSgp
ID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKQogICAgICAgICAgICAgc3RvcEF1dG9z
Y3JvbGxUaW1lcigpOwogCiAgICAgICAgIC8vIElmIHdlIHdlcmUgaW4gcGFuc2Nyb2xsIG1vZGUs
IHdlIHN3YWxsb3cgdGhlIGtleSBldmVudApAQCAtMjg4OCwyNCArMjg4OCwyNCBAQCBib29sIEV2
ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFs
S2V5RXZlbnQpCiAgICAgLy8gT24gV2luZG93cywgV2ViS2l0IGV4cGxpY2l0bHkgY2FsbHMgaGFu
ZGxlQWNjZXNzS2V5KCkgaW5zdGVhZCBvZiBkaXNwYXRjaGluZyBhIGtleXByZXNzIGV2ZW50IGZv
ciBXTV9TWVNDSEFSIG1lc3NhZ2VzLgogICAgIC8vIE90aGVyIHBsYXRmb3JtcyBjdXJyZW50bHkg
bWF0Y2ggZWl0aGVyIE1hYyBvciBXaW5kb3dzIGJlaGF2aW9yLCBkZXBlbmRpbmcgb24gd2hldGhl
ciB0aGV5IHNlbmQgY29tYmluZWQgS2V5RG93biBldmVudHMuCiAgICAgYm9vbCBtYXRjaGVkQW5B
Y2Nlc3NLZXkgPSBmYWxzZTsKLSAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0
Zm9ybUV2ZW50OjpLZXlEb3duKQorICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlwZSgpID09IFBs
YXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKQogICAgICAgICBtYXRjaGVkQW5BY2Nlc3NLZXkgPSBo
YW5kbGVBY2Nlc3NLZXkoaW5pdGlhbEtleUV2ZW50KTsKIAogICAgIC8vIEZJWE1FOiBpdCB3b3Vs
ZCBiZSBmYWlyIHRvIGxldCBhbiBpbnB1dCBtZXRob2QgaGFuZGxlIEtleVVwIGV2ZW50cyBiZWZv
cmUgRE9NIGRpc3BhdGNoLgotICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlwZSgpID09IFBsYXRm
b3JtRXZlbnQ6OktleVVwIHx8IGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVu
dDo6Q2hhcikKKyAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50
VHlwZTo6S2V5VXAgfHwgaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6Q2hhcikKICAgICAgICAgcmV0dXJuICFlbGVtZW50LT5kaXNwYXRjaEtleUV2ZW50KGluaXRp
YWxLZXlFdmVudCk7CiAKICAgICBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBuZWVk
c0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcygpOwogCiAgICAgUGxhdGZvcm1LZXli
b2FyZEV2ZW50IGtleURvd25FdmVudCA9IGluaXRpYWxLZXlFdmVudDsgICAgCi0gICAgaWYgKGtl
eURvd25FdmVudC50eXBlKCkgIT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikKLSAgICAgICAg
a2V5RG93bkV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdL
ZXlEb3duLCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKTsKKyAgICBpZiAoa2V5RG93bkV2ZW50
LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bikKKyAgICAgICAga2V5RG93
bkV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5
RG93biwgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAgICAgUmVmUHRyPEtleWJvYXJkRXZl
bnQ+IGtleWRvd24gPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoa2V5RG93bkV2ZW50LCBtX2ZyYW1l
LmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIGlmIChtYXRjaGVkQW5BY2Nlc3NLZXkp
CiAgICAgICAgIGtleWRvd24tPnNldERlZmF1bHRQcmV2ZW50ZWQodHJ1ZSk7CiAgICAga2V5ZG93
bi0+c2V0VGFyZ2V0KGVsZW1lbnQpOwogCi0gICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkg
PT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmIChpbml0aWFsS2V5RXZlbnQu
dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIGVsZW1l
bnQtPmRpc3BhdGNoRXZlbnQoa2V5ZG93biwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIC8v
IElmIGZyYW1lIGNoYW5nZWQgYXMgYSByZXN1bHQgb2Yga2V5ZG93biBkaXNwYXRjaCwgdGhlbiBy
ZXR1cm4gdHJ1ZSB0byBhdm9pZCBzZW5kaW5nIGEgc3Vic2VxdWVudCBrZXlwcmVzcyBtZXNzYWdl
IHRvIHRoZSBuZXcgZnJhbWUuCiAgICAgICAgIGJvb2wgY2hhbmdlZEZvY3VzZWRGcmFtZSA9IG1f
ZnJhbWUucGFnZSgpICYmICZtX2ZyYW1lICE9ICZtX2ZyYW1lLnBhZ2UoKS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CkBAIC0yOTQ0LDcgKzI5NDQsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFs
S2V5RXZlbnQpCiAgICAgfQogCiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleVByZXNzRXZl
bnQgPSBpbml0aWFsS2V5RXZlbnQ7Ci0gICAga2V5UHJlc3NFdmVudC5kaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnQoUGxhdGZvcm1FdmVudDo6Q2hhciwgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSk7
CisgICAga2V5UHJlc3NFdmVudC5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVu
dFR5cGU6OkNoYXIsIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogICAgIGlmIChrZXlQcmVz
c0V2ZW50LnRleHQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBrZXlkb3duUmVzdWx0Owog
ICAgIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBrZXlwcmVzcyA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0
ZShrZXlQcmVzc0V2ZW50LCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwpAQCAt
MzEzOCw3ICszMTM4LDcgQEAgc3RhdGljIGJvb2wgRXhhY3RseU9uZUJpdFNldChEcmFnU291cmNl
QWN0aW9uIG4pCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBDaGVja0RyYWdIeXN0ZXJlc2lzIGNoZWNrRHJh
Z0h5c3RlcmVzaXMpCiB7Ci0gICAgaWYgKGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gTGVmdEJ1
dHRvbiB8fCBldmVudC5ldmVudCgpLnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
KSB7CisgICAgaWYgKGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCBldmVu
dC5ldmVudCgpLnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCkgewogICAg
ICAgICAvLyBJZiB3ZSBhbGxvd2VkIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBicmlkZ2UgdG8gaGFu
ZGxlIGEgZHJhZwogICAgICAgICAvLyBsYXN0IHRpbWUsIHRoZW4gbV9tb3VzZVByZXNzZWQgbWln
aHQgc3RpbGwgYmUgc2V0LiBTbyB3ZQogICAgICAgICAvLyBjbGVhciBpdCBub3cgdG8gbWFrZSBz
dXJlIHRoZSBuZXh0IG1vdmUgYWZ0ZXIgYSBkcmFnCkBAIC0zMTcxLDcgKzMxNzEsNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzJiBldmVudCwgQ2hlY2tEcgogICAgIC8vIEZvciBkcmFncyBzdGFydGluZyBpbiB0aGUgc2Vs
ZWN0aW9uLCB0aGUgdXNlciBtdXN0IHdhaXQgYmV0d2VlbiB0aGUgbW91c2Vkb3duIGFuZCBtb3Vz
ZWRyYWcsCiAgICAgLy8gb3IgZWxzZSB3ZSBiYWlsIG9uIHRoZSBkcmFnZ2luZyBzdHVmZiBhbmQg
YWxsb3cgc2VsZWN0aW9uIHRvIG9jY3VyCiAgICAgaWYgKG1fbW91c2VEb3duTWF5U3RhcnREcmFn
ICYmIG1fZHJhZ01heVN0YXJ0U2VsZWN0aW9uSW5zdGVhZCAmJiAoZHJhZ1N0YXRlKCkudHlwZSAm
IERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24pICYmIGV2ZW50LmV2ZW50KCkudGltZXN0YW1wKCkg
LSBtX21vdXNlRG93blRpbWVzdGFtcCA8IFRleHREcmFnRGVsYXkpIHsKLSAgICAgICAgQVNTRVJU
KGV2ZW50LmV2ZW50KCkudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQpOworICAg
ICAgICBBU1NFUlQoZXZlbnQuZXZlbnQoKS50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6Ok1v
dXNlTW92ZWQpOwogICAgICAgICBpZiAoKGRyYWdTdGF0ZSgpLnR5cGUgJiBEcmFnU291cmNlQWN0
aW9uSW1hZ2UpKSB7CiAgICAgICAgICAgICAvLyAuLi4gdW5sZXNzIHRoZSBtb3VzZSBpcyBvdmVy
IGFuIGltYWdlLCB0aGVuIHdlIHN0YXJ0IGRyYWdnaW5nIGp1c3QgdGhlIGltYWdlCiAgICAgICAg
ICAgICBkcmFnU3RhdGUoKS50eXBlID0gRHJhZ1NvdXJjZUFjdGlvbkltYWdlOwpAQCAtMzc0MCw4
ICszNzQwLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVu
dElmRW5hYmxlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQKICAgICBpZiAoIW1fZnJhbWUuc2V0
dGluZ3MoKS5pc1RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gZXZlbnQudHlwZSgp
OwotICAgIGlmIChldmVudFR5cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCAmJiBldmVu
dFR5cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkICYmIGV2ZW50VHlwZSAhPSBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkKQorICAgIFBsYXRmb3JtRXZlbnRUeXBlIGV2ZW50VHlw
ZSA9IGV2ZW50LnR5cGUoKTsKKyAgICBpZiAoZXZlbnRUeXBlICE9IFBsYXRmb3JtRXZlbnRUeXBl
OjpNb3VzZU1vdmVkICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVz
c2VkICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0
UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7
CkBAIC0zNzUwLDcgKzM3NTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hTeW50aGV0
aWNUb3VjaEV2ZW50SWZFbmFibGVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICAvLyBUaGUgb3JkZXIgaXMgaW1wb3J0YW50LiBUaGlzIGNoZWNr
IHNob3VsZCBmb2xsb3cgdGhlIHN1YmZyYW1lIHRlc3Q6IGh0dHA6Ly93ZWJraXQub3JnL2IvMTEx
MjkyLgotICAgIGlmIChldmVudFR5cGUgPT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCAmJiAh
bV90b3VjaFByZXNzZWQpCisgICAgaWYgKGV2ZW50VHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6
TW91c2VNb3ZlZCAmJiAhbV90b3VjaFByZXNzZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgU3ludGhldGljU2luZ2xlVG91Y2hFdmVudCB0b3VjaEV2ZW50KGV2ZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDY2NTE4NDllYjhjODdkN2E3ZWU4NWE4ZTU1OGZiYjMw
MTYzZDg2YzUuLmM1YmMyNWVhOWE3ZTg3OTc2NzkxMDEwZTRiYWJlZTE2YjYwZTc3ODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNTM2LDcgKzUzNiw3IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIAogICAgIGRvdWJsZSBtX21heE1vdXNlTW92ZWREdXJhdGlvbjsKLSAgICBQbGF0Zm9y
bUV2ZW50OjpUeXBlIG1fYmFzZUV2ZW50VHlwZTsKKyAgICBQbGF0Zm9ybUV2ZW50VHlwZSBtX2Jh
c2VFdmVudFR5cGU7CiAgICAgYm9vbCBtX2RpZFN0YXJ0RHJhZzsKICAgICBib29sIG1fZGlkTG9u
Z1ByZXNzSW52b2tlQ29udGV4dE1lbnU7CiAgICAgYm9vbCBtX2lzSGFuZGxpbmdXaGVlbEV2ZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDUzM2E5MjRkMTJj
ZjQwMzcxMzY0ODUxMGM3NmYxMGVhZmZhYjFhOTMuLjkxMGJlYmNiMjQzMDdhNmQ3NzEwOTYyNjlh
NjI3M2Q2ZmZlYTZiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgK
QEAgLTI4LDM1ICsyOCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBsYXRm
b3JtRXZlbnQgewotcHVibGljOgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIE5vVHlwZSA9IDAs
CitlbnVtIGNsYXNzIFBsYXRmb3JtRXZlbnRUeXBlIHsKKyAgICBOb1R5cGUgPSAwLAogCi0gICAg
ICAgIC8vIFBsYXRmb3JtS2V5Ym9hcmRFdmVudAotICAgICAgICBLZXlEb3duLAotICAgICAgICBL
ZXlVcCwKLSAgICAgICAgUmF3S2V5RG93biwKLSAgICAgICAgQ2hhciwKKyAgICAvLyBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQKKyAgICBLZXlEb3duLAorICAgIEtleVVwLAorICAgIFJhd0tleURvd24s
CisgICAgQ2hhciwKIAotICAgICAgICAvLyBQbGF0Zm9ybU1vdXNlRXZlbnQKLSAgICAgICAgTW91
c2VNb3ZlZCwKLSAgICAgICAgTW91c2VQcmVzc2VkLAotICAgICAgICBNb3VzZVJlbGVhc2VkLAot
ICAgICAgICBNb3VzZVNjcm9sbCwKKyAgICAvLyBQbGF0Zm9ybU1vdXNlRXZlbnQKKyAgICBNb3Vz
ZU1vdmVkLAorICAgIE1vdXNlUHJlc3NlZCwKKyAgICBNb3VzZVJlbGVhc2VkLAorICAgIE1vdXNl
U2Nyb2xsLAogCi0gICAgICAgIC8vIFBsYXRmb3JtV2hlZWxFdmVudAotICAgICAgICBXaGVlbCwK
KyAgICAvLyBQbGF0Zm9ybVdoZWVsRXZlbnQKKyAgICBXaGVlbCwKIAogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCi0gICAgICAgIC8vIFBsYXRmb3JtVG91Y2hFdmVudAotICAgICAgICBUb3VjaFN0
YXJ0LAotICAgICAgICBUb3VjaE1vdmUsCi0gICAgICAgIFRvdWNoRW5kLAotICAgICAgICBUb3Vj
aENhbmNlbCwKKyAgICAvLyBQbGF0Zm9ybVRvdWNoRXZlbnQKKyAgICBUb3VjaFN0YXJ0LAorICAg
IFRvdWNoTW92ZSwKKyAgICBUb3VjaEVuZCwKKyAgICBUb3VjaENhbmNlbCwKICNlbmRpZgotICAg
IH07Cit9OwogCitjbGFzcyBQbGF0Zm9ybUV2ZW50IHsKK3B1YmxpYzoKICAgICBlbnVtIE1vZGlm
aWVycyB7CiAgICAgICAgIEFsdEtleSAgICAgID0gMSA8PCAwLAogICAgICAgICBDdHJsS2V5ICAg
ICA9IDEgPDwgMSwKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgICAgICBTaGlmdEtleSAg
ICA9IDEgPDwgMywKICAgICB9OwogCi0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8VHlwZT4obV90eXBlKTsgfQorICAgIFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIGJvb2wgc2hpZnRLZXkoKSBjb25zdCB7IHJl
dHVybiBtX21vZGlmaWVycyAmIFNoaWZ0S2V5OyB9CiAgICAgYm9vbCBjdHJsS2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9tb2RpZmllcnMgJiBDdHJsS2V5OyB9CkBAIC03NywyNyArNzcsMjcgQEAgcHVi
bGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCi0gICAgICAgIDogbV90eXBl
KE5vVHlwZSkKKyAgICAgICAgOiBtX3R5cGUoUGxhdGZvcm1FdmVudFR5cGU6Ok5vVHlwZSkKICAg
ICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAsIG1fdGltZXN0YW1wKDApCiAgICAgewog
ICAgIH0KIAotICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlKQorICAgIGV4cGxp
Y2l0IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAsIG1fdGltZXN0YW1w
KDApCiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkK
ICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMp
CiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRmb3JtRXZl
bnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBi
b29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICA6IG1f
dHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZpZXJzKDApCiAgICAgICAgICwgbV90aW1lc3Rh
bXAodGltZXN0YW1wKQpAQCAtMTE4LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAg
fQogCi0gICAgdW5zaWduZWQgbV90eXBlOworICAgIFBsYXRmb3JtRXZlbnRUeXBlIG1fdHlwZTsK
ICAgICB1bnNpZ25lZCBtX21vZGlmaWVyczsKICAgICBkb3VibGUgbV90aW1lc3RhbXA7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAppbmRl
eCA2MDBiODcwZTNlODE3ZTk0YWY3M2FlMzk4NjdiZDVkMzdkYTBhZTYxLi4wM2IxNDczMTQyN2Y3
MmE4MjM5NmQ3Njc0MTQ2MjM5OTZjYTIwODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoK
ICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50KCkKLSAgICAgICAgICAgIDogUGxhdGZvcm1F
dmVudChQbGF0Zm9ybUV2ZW50OjpLZXlEb3duKQorICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50
KFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKQogICAgICAgICAgICAgLCBtX3dpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgwKQogICAgICAgICAgICAgLCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlKDApCiAg
ICAgICAgICAgICAsIG1fbWFjQ2hhckNvZGUoMCkKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgICAgICBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBT
dHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtl
eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDog
UGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwg
bV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRl
eHQpCkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAg
ICAgICB9CiAKLSAgICAgICAgdm9pZCBkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSwgYm9v
bCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2UpOyAvLyBPbmx5IHVzZWQgb24gcGxh
dGZvcm1zIHRoYXQgbmVlZCBpdCwgaS5lLiB0aG9zZSB0aGF0IGdlbmVyYXRlIEtleURvd24gZXZl
bnRzLgorICAgICAgICB2b2lkIGRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50
VHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2UpOyAvLyBPbmx5IHVz
ZWQgb24gcGxhdGZvcm1zIHRoYXQgbmVlZCBpdCwgaS5lLiB0aG9zZSB0aGF0IGdlbmVyYXRlIEtl
eURvd24gZXZlbnRzLgogCiAgICAgICAgIC8vIFRleHQgYXMgYXMgZ2VuZXJhdGVkIGJ5IHByb2Nl
c3NpbmcgYSB2aXJ0dWFsIGtleSBjb2RlIHdpdGggYSBrZXlib2FyZCBsYXlvdXQKICAgICAgICAg
Ly8gKGluIG1vc3QgY2FzZXMsIGp1c3QgYSBjaGFyYWN0ZXIgY29kZSwgYnV0IHRoZSBsYXlvdXQg
Y2FuIGVtaXQgc2V2ZXJhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNl
RXZlbnQuaAppbmRleCA0Zjc0Mzk5OTY5YzFlMmJhYTViODdjNTlkYTA3NzU4MDZkZDU3ZGQxLi5i
MTFhY2U1NzdiNDI1YWFlNzAwMzdiZTFiNTMyZWYxNzAyZWVkNDIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaApAQCAtNDksNyArNDksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50IDogcHVibGljIFBs
YXRmb3JtRXZlbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50KCkK
LSAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkKQor
ICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVk
KQogICAgICAgICAgICAgLCBtX2J1dHRvbihOb0J1dHRvbikKICAgICAgICAgICAgICwgbV9jbGlj
a0NvdW50KDApCiAgICAgICAgICAgICAsIG1fbW9kaWZpZXJGbGFncygwKQpAQCAtNjEsNyArNjEs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAg
IFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpU
eXBlIHR5cGUsCisgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9u
LCBQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJv
b2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVu
dCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAg
ICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCmluZGV4IDIxZTMwNmRkNWU5MmJmMmZkMjU1YzM1MDMx
YzFlODA0NGZjZGJhYzMuLmZiMTk4Yzk5MzI2OTFmZDY4OGY0NzhkM2MxNTFiMzIxOTBmMzIzNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCkBAIC0z
Miw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVu
dCA6IHB1YmxpYyBQbGF0Zm9ybUV2ZW50IHsKIHB1YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNoRXZl
bnQoKQotICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6VG91Y2hTdGFydCkK
KyAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0KQog
ICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2
ZW50LmgKaW5kZXggODFlYTI3NmRjMzFiZWYzN2FiZmJlZGJiNDFkNjEzZmY0ZGU3NjNjNi4uYjYy
MDljM2NkNzg1OGJjYmZmZjUwMmE3Yzk1YjZiMTVkODYxZjM5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTY4LDcgKzY4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudCA6IHB1YmxpYyBQbGF0
Zm9ybUV2ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudCgpCi0g
ICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwpCisgICAgICAg
ICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OldoZWVsKQogICAgICAgICAg
ICAgLCBtX2RlbHRhWCgwKQogICAgICAgICAgICAgLCBtX2RlbHRhWSgwKQogICAgICAgICAgICAg
LCBtX3doZWVsVGlja3NYKDApCkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQb2ludCBwb3NpdGlv
biwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBm
bG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVudEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wg
YWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIDApCisg
ICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OldoZWVsLCBzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQogICAgICAgICAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2RlbHRhWChkZWx0YVgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1LZXlib2FyZEV2ZW50RWZsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3BwCmluZGV4
IGM4MWRlM2Q4Mzc4MmYxOTZhNWRhNDA4ZjIyMjgzMDM0ZTM2ZWNhZWYuLjk1ZWNjMWNkOGQ3NGZm
NmRhN2FiMTM5ZDQ2ZWRkMTNlZGY1OTJiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3BwCkBAIC00MCw3ICs0
MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxh
dGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24qIGV2ZW50KQotICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpLZXlEb3duLCBldmFzX2tleV9tb2RpZmll
cl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lz
X3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19z
ZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZl
bnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKKyAgICA6IFBsYXRmb3JtRXZl
bnQoUGxhdGZvcm1FdmVudFR5cGU6OktleURvd24sIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChl
dmVudC0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50
LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+
bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZp
ZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQogICAgICwgbV90ZXh0KFN0cmluZzo6ZnJvbVVU
RjgoZXZlbnQtPnN0cmluZykpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KFN0cmluZzo6ZnJvbVVU
RjgoZXZlbnQtPnN0cmluZykpCiAgICAgLCBtX2tleUlkZW50aWZpZXIoa2V5SWRlbnRpZmllckZv
ckV2YXNLZXlOYW1lKFN0cmluZyhldmVudC0+a2V5KSkpCkBAIC01NCw3ICs1NCw3IEBAIFBsYXRm
b3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRf
S2V5X0Rvd24qIGV2ZW50KQogfQogCiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudChjb25zdCBFdmFzX0V2ZW50X0tleV9VcCogZXZlbnQpCi0gICAgOiBQbGF0Zm9y
bUV2ZW50KFBsYXRmb3JtRXZlbnQ6OktleVVwLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZl
bnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+
bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1v
ZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVy
cywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1F
dmVudFR5cGU6OktleVVwLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVy
cywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAi
Q29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFs
dCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwg
Y3VycmVudFRpbWUoKSkKICAgICAsIG1fdGV4dChTdHJpbmc6OmZyb21VVEY4KGV2ZW50LT5zdHJp
bmcpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dChTdHJpbmc6OmZyb21VVEY4KGV2ZW50LT5zdHJp
bmcpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKGtleUlkZW50aWZpZXJGb3JFdmFzS2V5TmFtZShT
dHJpbmcoZXZlbnQtPmtleSkpKQpAQCAtNjcsMTIgKzY3LDEyIEBAIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X1VwKiBldmVu
dCkKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChUeXBlIHR5cGUsIGJvb2wpCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlz
YW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUsIGJvb2wpCiB7CiAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKICAgICBtX3R5cGUgPSB0eXBlOwogCi0gICAg
aWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmICh0eXBlID09
IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIG1fdGV4dCA9IFN0cmlu
ZygpOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKCk7CiAgICAgfSBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybU1vdXNlRXZl
bnRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVu
dEVmbC5jcHAKaW5kZXggOWVkODk4OTVkOTAzNGE0YTA0NzExYTUyYzA0ZGZmNjQ5ZGE4ZjY3OC4u
MGE4ZDZhZGVmMzQ2ZjQzNzQwZTliZjdjMjQ2MzUyMjAxYTAzMTczMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVudEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVudEVmbC5jcHAKQEAg
LTQ4LDcgKzQ4LDcgQEAgdm9pZCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OnNldENsaWNrQ291bnQodW5z
aWduZWQgaW50IGZsYWdzKQogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VF
dmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2ZW50LCBJbnRQb2ludCBwb3NpdGlv
bikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCBldmFz
X2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5
X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9t
b2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmll
cl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKKyAgICA6
IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZCwgZXZhc19rZXlf
bW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlmdCIpLCBldmFzX2tleV9tb2Rp
Zmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wiKSwgZXZhc19rZXlfbW9kaWZp
ZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNf
c2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX3Bv
c2l0aW9uKEludFBvaW50KGV2ZW50LT5jYW52YXMueCAtIHBvc2l0aW9uLngoKSwgZXZlbnQtPmNh
bnZhcy55IC0gcG9zaXRpb24ueSgpKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oSW50UG9pbnQo
ZXZlbnQtPmNhbnZhcy54LCBldmVudC0+Y2FudmFzLnkpKQogICAgICwgbV9idXR0b24oTW91c2VC
dXR0b24oZXZlbnQtPmJ1dHRvbiAtIDEpKQpAQCAtNTcsNyArNTcsNyBAQCBQbGF0Zm9ybU1vdXNl
RXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2
ZW50LCBJbnRQbwogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChj
b25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKiBldmVudCwgSW50UG9pbnQgcG9zaXRpb24pCi0gICAg
OiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIGV2YXNfa2V5X21v
ZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZp
ZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVy
X2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3Nl
dChldmVudC0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQorICAgIDogUGxhdGZv
cm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZCwgZXZhc19rZXlfbW9kaWZp
ZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlmdCIpLCBldmFzX2tleV9tb2RpZmllcl9p
c19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNf
c2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2
ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX3Bvc2l0aW9u
KEludFBvaW50KGV2ZW50LT5jYW52YXMueCAtIHBvc2l0aW9uLngoKSwgZXZlbnQtPmNhbnZhcy55
IC0gcG9zaXRpb24ueSgpKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oSW50UG9pbnQoZXZlbnQt
PmNhbnZhcy54LCBldmVudC0+Y2FudmFzLnkpKQogICAgICwgbV9idXR0b24oTW91c2VCdXR0b24o
ZXZlbnQtPmJ1dHRvbiAtIDEpKQpAQCAtNjYsNyArNjYsNyBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQ6
OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKiBldmVudCwgSW50
UG9pbgogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBF
dmFzX0V2ZW50X01vdXNlX01vdmUqIGV2ZW50LCBJbnRQb2ludCBwb3NpdGlvbikKLSAgICA6IFBs
YXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgZXZhc19rZXlfbW9kaWZpZXJf
aXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlmdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19z
ZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0
KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50
LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50
KFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQo
ZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVu
dC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQt
Pm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlm
aWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKICAgICAsIG1fcG9zaXRpb24oSW50UG9pbnQo
ZXZlbnQtPmN1ci5jYW52YXMueCAtIHBvc2l0aW9uLngoKSwgZXZlbnQtPmN1ci5jYW52YXMueSAt
IHBvc2l0aW9uLnkoKSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKEludFBvaW50KGV2ZW50LT5j
dXIuY2FudmFzLngsIGV2ZW50LT5jdXIuY2FudmFzLnkpKQogICAgICwgbV9idXR0b24oTW91c2VC
dXR0b24oZXZlbnQtPmJ1dHRvbnMgLSAxKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKaW5kZXggYThhZGJkNzMzMWNlOWUw
ODYyNWQxOTM4ZDMwYzY1OWE2NDhiY2E4Ni4uNTMzNTBmYzAwNmFmNWM1ZmQwMDc2MTkyYmFkN2Y1
NTJhYmYyNmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRm
b3JtV2hlZWxFdmVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bs
YXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgZW51bSB7CiB9OwogCiBQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChjb25zdCBFdmFzX0V2ZW50X01v
dXNlX1doZWVsKiBldikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWws
IGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19r
ZXlfbW9kaWZpZXJfaXNfc2V0KGV2LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5X21v
ZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lz
X3NldChldi0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQorICAgIDogUGxhdGZv
cm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWwsIGV2YXNfa2V5X21vZGlmaWVyX2lzX3Nl
dChldi0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2LT5t
b2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZp
ZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiTWV0
YSIpLCBjdXJyZW50VGltZSgpKQogICAgICwgbV9wb3NpdGlvbihJbnRQb2ludChldi0+Y2FudmFz
LngsIGV2LT5jYW52YXMueSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKEludFBvaW50KGV2LT5j
YW52YXMueCwgZXYtPmNhbnZhcy55KSkKICAgICAsIG1fZ3JhbnVsYXJpdHkoU2Nyb2xsQnlQaXhl
bFdoZWVsRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IDcwNmQ2ZTI1Yzk5MDA1YTI0MjAwY2E5
ZDRmMDUwMjU1ZmUyMmY0YzYuLjA2NTViNzhlMGIxNDMyMjBiMGI5MmQ0Nzk0OWE5ZDZlZmZkM2Zm
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC01NTAsOSArNTUwLDkgQEAgU3RyaW5nIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICB9
CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIGV2ZW50VHlwZUZvckdka0tleUV2ZW50
KEdka0V2ZW50S2V5KiBldmVudCkKK3N0YXRpYyBQbGF0Zm9ybUV2ZW50VHlwZSBldmVudFR5cGVG
b3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIGV2ZW50LT50
eXBlID09IEdES19LRVlfUkVMRUFTRSA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxhdGZvcm1F
dmVudDo6S2V5RG93bjsKKyAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9SRUxFQVNF
ID8gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwIDogUGxhdGZvcm1FdmVudFR5cGU6OktleURvd247
CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yR2RrS2V5
RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50KQpAQCAtNTg5LDcgKzU4OSw3IEBAIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEdka0V2ZW50S2V5KiBldmVudCwgY29u
c3QgQ29tcG9zaXRpCiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfUFJPQ0VT
U0tFWTsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKK3ZvaWQg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1F
dmVudFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQogewogICAgIC8v
IENhbiBvbmx5IGNoYW5nZSB0eXBlIGZyb20gS2V5RG93biB0byBSYXdLZXlEb3duIG9yIENoYXIs
IGFzIHdlIGxhY2sgaW5mb3JtYXRpb24gZm9yIG90aGVyIGNvbnZlcnNpb25zLgogICAgIEFTU0VS
VChtX3R5cGUgPT0gS2V5RG93bik7CkBAIC01OTgsMTAgKzU5OCwxMCBAQCB2b2lkIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBi
YWNrd2FyZENvbQogICAgIGlmIChiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7Cisg
ICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAgICAgICAg
bV90ZXh0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsK
LSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhciAmJiBtX2NvbXBvc2l0
aW9uUmVzdWx0cy5jb21wb3NpdGlvblVwZGF0ZWQoKSkgeworICAgIH0gZWxzZSBpZiAodHlwZSA9
PSBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhciAmJiBtX2NvbXBvc2l0aW9uUmVzdWx0cy5jb21wb3Np
dGlvblVwZGF0ZWQoKSkgewogICAgICAgICAvLyBIYXZpbmcgZW1wdHkgdGV4dCwgcHJldmVudHMg
dGhpcyBDaGFyICh3aGljaCBpcyBhIERPTSBrZXlwcmVzcykgZXZlbnQKICAgICAgICAgLy8gZnJv
bSBnb2luZyB0byB0aGUgRE9NLiBLZXlzIHRoYXQgdHJpZ2dlciBjb21wb3NpdGlvbiBldmVudHMg
c2hvdWxkIG5vdAogICAgICAgICAvLyBmaXJlIGtleXByZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAppbmRleCAwNDEw
MWMxZmEzZDcyODY2Y2JjOTUzZjg0YjU3Mjg1OTM3ZjMyMTNkLi5jNjY0MGI2MTYyYzIzNDBmMGUw
ZTY0MWM1ZGEyNWE2OWRmZGI0ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcApAQCAtNTcsOSArNTcsOSBAQCBQbGF0
Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1dHRvbiogZXZlbnQp
CiAgICAgY2FzZSBHREtfMkJVVFRPTl9QUkVTUzoKICAgICBjYXNlIEdES18zQlVUVE9OX1BSRVNT
OgogICAgIGNhc2UgR0RLX0JVVFRPTl9SRUxFQVNFOgotICAgICAgICBtX3R5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBl
OjpNb3VzZVByZXNzZWQ7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSA9PSBHREtfQlVUVE9OX1JF
TEVBU0UpIHsKLSAgICAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFz
ZWQ7CisgICAgICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNl
ZDsKICAgICAgICAgICAgIG1fY2xpY2tDb3VudCA9IDA7CiAgICAgICAgIH0gZWxzZSBpZiAoZXZl
bnQtPnR5cGUgPT0gR0RLX0JVVFRPTl9QUkVTUykKICAgICAgICAgICAgIG1fY2xpY2tDb3VudCA9
IDE7CkBAIC05OSw3ICs5OSw3IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2
ZW50KEdka0V2ZW50TW90aW9uKiBtb3Rpb24pCiAKICAgICBzd2l0Y2ggKG1vdGlvbi0+dHlwZSkg
ewogICAgIGNhc2UgR0RLX01PVElPTl9OT1RJRlk6Ci0gICAgICAgIG1fdHlwZSA9IFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpN
b3VzZU1vdmVkOwogICAgICAgICBtX2J1dHRvbiA9IE5vQnV0dG9uOwogICAgICAgICBtX2NsaWNr
Q291bnQgPSAwOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKaW5kZXggNTIwYmY5YTg5ZDc2ZDA1
ZjUyOGVkMzQ5ZGUwNTM2NzI3MTJkZjhhNy4uMDc4ZTQ0MDliYjg2YmU1NmJiN2VhZDQ0MjM3Njgx
OGM0YjgxY2JjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtV2hlZWxFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bs
YXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgUGxhdGZvcm1XaGVlbEV2
ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2RrRXZlbnRTY3JvbGwqIGV2ZW50KQogewogICAgIHN0
YXRpYyBjb25zdCBmbG9hdCBkZWx0YSA9IDE7CiAKLSAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50
OjpXaGVlbDsKKyAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWw7CiAgICAgbV90
aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwogCiAgICAgbV9tb2RpZmllcnMgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCmluZGV4IDM5MWI2YWE5OTMwYjFi
YTRkMjA1MDBkN2ZhNzc2ZDBkNTI3NmNlODMuLjMxYWU1MDE0YzkyNjBmMGFiYzNlNDM4OGQwZjhk
ZGQwOWQ1MDEzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlF
dmVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1Mu
bW0KQEAgLTM0LDcgKzM0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93
bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQordm9pZCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2
ZW50VHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUpCiB7CiAgICAgLy8g
Q2FuIG9ubHkgY2hhbmdlIHR5cGUgZnJvbSBLZXlEb3duIHRvIFJhd0tleURvd24gb3IgQ2hhciwg
YXMgd2UgbGFjayBpbmZvcm1hdGlvbiBmb3Igb3RoZXIgY29udmVyc2lvbnMuCiAgICAgQVNTRVJU
KG1fdHlwZSA9PSBLZXlEb3duKTsKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dh
cmRDb20KICAgICBpZiAoYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlm
ICh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIG1fdGV4
dCA9IFN0cmluZygpOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKCk7CiAgICAg
fSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCA5NDk1MWRlMWM1M2ZlNDc4YmVjZDg0ZTMxOTg1Nzhi
YzI1MWZlNzU3Li45ZjI2ZjAzZjkxMGU3ZjgyYmFkNTRkNWMzN2JhNDAwMDEzMjI4ZmQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0
b3J5SU9TLm1tCkBAIC02MSwxOCArNjEsMTggQEAgc3RhdGljIGlubGluZSBJbnRQb2ludCBnbG9i
YWxQb2ludEZvckV2ZW50KFdlYkV2ZW50ICpldmVudCkKICAgICByZXR1cm4gcG9pbnRGb3JFdmVu
dChldmVudCk7CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBl
KFdlYkV2ZW50ICpldmVudCkKK3N0YXRpYyBQbGF0Zm9ybUV2ZW50VHlwZSBtb3VzZUV2ZW50VHlw
ZShXZWJFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChldmVudC50eXBlKSB7CiAgICAgY2Fz
ZSBXZWJFdmVudE1vdXNlRG93bjoKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZDsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7
CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlVXA6Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVJlbGVhc2VkOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNl
UmVsZWFzZWQ7CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlTW92ZWQ6Ci0gICAgICAgIHJldHVybiBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5
cGU6Ok1vdXNlTW92ZWQ7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAg
IHJldHVybiBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOwogICAgIH0KIH0KIApAQCAt
MTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChldmVudC50eXBl
ID09IFdlYkV2ZW50U2Nyb2xsV2hlZWwpOwogCi0gICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZl
bnQ6OldoZWVsOworICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWw7CiAg
ICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGlt
ZSgpOwogCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJU
KGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlEb3duIHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRL
ZXlVcCk7CiAKLSAgICAgICAgbV90eXBlID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/
IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxhdGZvcm1FdmVudDo6S2V5RG93bik7CisgICAgICAg
IG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50VHlw
ZTo6S2V5VXAgOiBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZp
ZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX3RpbWVzdGFtcCA9IGN1
cnJlbnRUaW1lKCk7CiAKQEAgLTE5NywyMCArMTk3LDIwIEBAIHN0YXRpYyBQbGF0Zm9ybVRvdWNo
UG9pbnQ6OlRvdWNoUGhhc2VUeXBlIGNvbnZlcnRUb3VjaFBoYXNlKE5TTnVtYmVyICp0b3VjaFBo
YXNlCiAgICAgcmV0dXJuIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQaGFzZUJlZ2FuOwogfQog
Ci1zdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSB0b3VjaEV2ZW50VHlwZShXZWJFdmVudCAqZXZl
bnQpCitzdGF0aWMgUGxhdGZvcm1FdmVudFR5cGUgdG91Y2hFdmVudFR5cGUoV2ViRXZlbnQgKmV2
ZW50KQogewogICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewogICAgIGNhc2UgV2ViRXZlbnRUb3Vj
aEJlZ2luOgotICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6VG91Y2hTdGFydDsKKyAgICAg
ICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0OwogICAgIGNhc2UgV2ViRXZl
bnRUb3VjaEVuZDoKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OlRvdWNoRW5kOworICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoRW5kOwogICAgIGNhc2UgV2ViRXZl
bnRUb3VjaENhbmNlbDoKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OlRvdWNoQ2FuY2Vs
OworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoQ2FuY2VsOwogICAgIGNh
c2UgV2ViRXZlbnRUb3VjaENoYW5nZToKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OlRv
dWNoTW92ZTsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaE1vdmU7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBQbGF0Zm9ybUV2ZW50OjpUb3VjaENhbmNlbDsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZl
bnRUeXBlOjpUb3VjaENhbmNlbDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbQppbmRleCAwYWY1MjEyOGE1M2FkNzEwMDBh
NzBkMGQxNmMzOGI0N2I1MTQwZTU5Li4xMzFjYjI1ZWUzMzNkYmE5MTkwNjhiMDk5MjkyZWJiOTEy
ZjA3NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsQW5p
bWF0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1h
dG9ySU9TLm1tCkBAIC01OCw3ICs1OCw3IEBAIFNjcm9sbEFuaW1hdG9ySU9TOjp+U2Nyb2xsQW5p
bWF0b3JJT1MoKQogCiBib29sIFNjcm9sbEFuaW1hdG9ySU9TOjpoYW5kbGVUb3VjaEV2ZW50KGNv
bnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIHsKLSAgICBpZiAodG91Y2hFdmVu
dC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6VG91Y2hTdGFydCAmJiB0b3VjaEV2ZW50LnRvdWNo
Q291bnQoKSA9PSAxKSB7CisgICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZl
bnRUeXBlOjpUb3VjaFN0YXJ0ICYmIHRvdWNoRXZlbnQudG91Y2hDb3VudCgpID09IDEpIHsKICAg
ICAgICAgbV9maXJzdFRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50LnRvdWNoTG9jYXRpb25BdEluZGV4
KDApOwogICAgICAgICBtX2xhc3RUb3VjaFBvaW50ID0gbV9maXJzdFRvdWNoUG9pbnQ7CiAgICAg
ICAgIG1faW5Ub3VjaFNlcXVlbmNlID0gdHJ1ZTsKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvcklPUzo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQm
IHRvdWNoRXZlbnQpCiAgICAgaWYgKCFtX2luVG91Y2hTZXF1ZW5jZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlRv
dWNoRW5kIHx8IHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlRvdWNoQ2FuY2Vs
KSB7CisgICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3Vj
aEVuZCB8fCB0b3VjaEV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hDYW5j
ZWwpIHsKICAgICAgICAgbV9pblRvdWNoU2VxdWVuY2UgPSBmYWxzZTsKICAgICAgICAgbV9zY3Jv
bGxhYmxlQXJlYUZvclRvdWNoU2VxdWVuY2UgPSAwOwogICAgICAgICBpZiAobV9zdGFydGVkU2Ny
b2xsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IDRi
ZGY2MjA3YjZjNTVmMTJlMjg3YTcxNDFhMjcwZWE5MmQyMmRlMmMuLjJlZDQ3MWM4NGEwY2RhNmY0
MzY5ZDc3ZjViYzgzZTQ2MzNmYTJmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9LZXlFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
S2V5RXZlbnRNYWMubW0KQEAgLTM3LDE2ICszNywxNiBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUpCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2
ZW50KFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9k
ZSkKIHsKICAgICAvLyBDYW4gb25seSBjaGFuZ2UgdHlwZSBmcm9tIEtleURvd24gdG8gUmF3S2V5
RG93biBvciBDaGFyLCBhcyB3ZSBsYWNrIGluZm9ybWF0aW9uIGZvciBvdGhlciBjb252ZXJzaW9u
cy4KLSAgICBBU1NFUlQobV90eXBlID09IEtleURvd24pOwotICAgIEFTU0VSVCh0eXBlID09IFJh
d0tleURvd24gfHwgdHlwZSA9PSBDaGFyKTsKKyAgICBBU1NFUlQobV90eXBlID09IFBsYXRmb3Jt
RXZlbnRUeXBlOjpLZXlEb3duKTsKKyAgICBBU1NFUlQodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6UmF3S2V5RG93biB8fCB0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyKTsKICAgICBt
X3R5cGUgPSB0eXBlOwogICAgIGlmIChiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAodHlwZSA9PSBSYXdLZXlEb3duKSB7CisgICAgaWYgKHR5cGUg
PT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAgICAgICAgbV90ZXh0ID0gU3Ry
aW5nKCk7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKICAgICB9IGVsc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLm1tCmluZGV4IGJlODJhOWE0MDQwMDRiZWM4ZjZmYzcyM2RmYjk0YzY2ODJiZjdm
MGYuLjhjZmFmOGU1ZTNmYmJmNzgzNDQ1Mzk1YTY1NjM0MTZkZjM4ZTViYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMu
bW0KQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91c2VCdXR0b25Gb3JF
dmVudChOU0V2ZW50ICpldmVudCkKICAgICB9CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpU
eXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCitzdGF0aWMgUGxhdGZv
cm1FdmVudFR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBldmVudCkKIHsKICAg
ICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dl
ZDoKQEAgLTEyNCwxNyArMTI0LDE3IEBAIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNl
RXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgICAgIGNhc2UgTlNNb3VzZU1v
dmVkOgogICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6CiAgICAgICAgIGNhc2UgTlNS
aWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZU1vdmVkOworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVk
OwogICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKICAgICAgICAgY2FzZSBOU1JpZ2h0TW91
c2VEb3duOgogICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAgICAgICAgICByZXR1
cm4gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOworICAgICAgICAgICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoK
ICAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKICAgICAgICAgY2FzZSBOU090aGVyTW91c2VV
cDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOworICAg
ICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkOwogICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7
CisgICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQ7CiAgICAg
fQogfQogCkBAIC00MjIsNyArNDIyLDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtV2hlZWxFdmVu
dEJ1aWxkZXIoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93VmlldykKICAgICB7CiAgICAg
ICAgIC8vIFBsYXRmb3JtRXZlbnQKLSAgICAgICAgbV90eXBlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKKyAgICAgICAgbV90eXBlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWw7CiAgICAgICAg
IG1fbW9kaWZpZXJzICAgICAgICAgICAgICAgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQpOwogICAgICAgICBtX3RpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKIApAQCAtNDYxLDcgKzQ2MSw3IEBAIHB1Ymxp
YzoKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKE5TRXZlbnQgKmV2ZW50KQogICAg
IHsKICAgICAgICAgLy8gUGxhdGZvcm1FdmVudAotICAgICAgICBtX3R5cGUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IGlzS2V5VXBFdmVudChldmVudCkgPyBQbGF0Zm9ybUV2ZW50OjpL
ZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd247CisgICAgICAgIG1fdHlwZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gaXNLZXlVcEV2ZW50KGV2ZW50KSA/IFBsYXRmb3JtRXZlbnRU
eXBlOjpLZXlVcCA6IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duOwogICAgICAgICBtX21vZGlm
aWVycyAgICAgICAgICAgICAgICAgICAgICAgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
ICAgICAgICAgbV90aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVT
dGFtcFNpbmNlMTk3MChldmVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9LZXlFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5
RXZlbnRXaW4uY3BwCmluZGV4IDAzYzhlYTI2N2VjNmYyMWEzNGI3ZDAwYjBiZTY1YTEwM2ZlMjQ1
ZGQuLjk4ZDVkNjQ4NDhlMWRjNDU0ZjhmYWNhNDIwYzhkMzA5MGRlMGU1NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApAQCAtMTQ2LDkgKzE0Niw5IEBA
IHN0YXRpYyBTdHJpbmcga2V5SWRlbnRpZmllckZvcldpbmRvd3NLZXlDb2RlKHVuc2lnbmVkIHNo
b3J0IGtleUNvZGUpCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBpc0tleXBhZEV2ZW50KFdQQVJB
TSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlKQorc3RhdGlj
IGJvb2wgaXNLZXlwYWRFdmVudChXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFBsYXRmb3Jt
RXZlbnRUeXBlIHR5cGUpCiB7Ci0gICAgaWYgKHR5cGUgIT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5
RG93biAmJiB0eXBlICE9IFBsYXRmb3JtRXZlbnQ6OktleVVwKQorICAgIGlmICh0eXBlICE9IFBs
YXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duICYmIHR5cGUgIT0gUGxhdGZvcm1FdmVudFR5cGU6
OktleVVwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKGNvZGUpIHsKQEAg
LTIyMSw5ICsyMjEsOSBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJp
bmcoVUNoYXIgYykKIAogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZl
bnQoSFdORCwgV1BBUkFNIGNvZGUsIExQQVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUsIGJvb2wgc3lz
dGVtS2V5KQogICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkg
JiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklU
X01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwg
ZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKLSAgICAsIG1fdGV4dCgodHlwZSA9PSBQ
bGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmlu
ZygpKQotICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFy
KSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQotICAgICwgbV9rZXlJ
ZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJ
ZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCisgICAgLCBtX3RleHQoKHR5cGUgPT0g
UGxhdGZvcm1FdmVudFR5cGU6OkNoYXIpID8gc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGNvZGUpIDog
U3RyaW5nKCkpCisgICAgLCBtX3VubW9kaWZpZWRUZXh0KCh0eXBlID09IFBsYXRmb3JtRXZlbnRU
eXBlOjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQorICAg
ICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyKSA/IFN0
cmluZygpIDoga2V5SWRlbnRpZmllckZvcldpbmRvd3NLZXlDb2RlKGNvZGUpKQogICAgICwgbV93
aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5cGUgPT0gUmF3S2V5RG93biB8fCB0eXBlID09IEtleVVw
KSA/IHdpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKGNvZGUsIGtleURhdGEpIDogMCkKICAgICAs
IG1fbmF0aXZlVmlydHVhbEtleUNvZGUobV93aW5kb3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBt
X21hY0NoYXJDb2RlKDApCkBAIC0yMzMsNyArMjMzLDcgQEAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQQVJBTSBrZXlEYXRh
LAogewogfQogCi12b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93
bkV2ZW50KFR5cGUsIGJvb2wpCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlLCBib29sKQogewogICAgIC8vIE5vIEtl
eURvd24gZXZlbnRzIG9uIFdpbmRvd3MgdG8gZGlzYW1iaWd1YXRlLgogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRm
b3JtTW91c2VFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZv
cm1Nb3VzZUV2ZW50V2luLmNwcAppbmRleCAwNTVjMmFhMDU5NWE5YzZhZjViMjMyZTY5MThlY2Jh
MTRlN2Q1ZDk3Li4wZjhjNTcyZWFiMzU5YmViNTQwNmUxNTQ4ZTU0ZTY5OGEyNDhkZGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50
V2luLmNwcApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb25G
b3JFdmVudChIV05EIGhXbmQsIExQQVJBTSBsUGFyYW0pCiAgICAgcmV0dXJuIHBvaW50OwogfQog
Ci1zdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSBtZXNzYWdlVG9FdmVudFR5cGUoVUlOVCBtZXNz
YWdlKQorc3RhdGljIFBsYXRmb3JtRXZlbnRUeXBlIG1lc3NhZ2VUb0V2ZW50VHlwZShVSU5UIG1l
c3NhZ2UpCiB7CiAgICAgc3dpdGNoIChtZXNzYWdlKSB7CiAgICAgICAgIGNhc2UgV01fTEJVVFRP
TkRCTENMSzoKQEAgLTU5LDIzICs1OSwyMyBAQCBzdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSBt
ZXNzYWdlVG9FdmVudFR5cGUoVUlOVCBtZXNzYWdlKQogICAgICAgICBjYXNlIFdNX0xCVVRUT05E
T1dOOgogICAgICAgICBjYXNlIFdNX1JCVVRUT05ET1dOOgogICAgICAgICBjYXNlIFdNX01CVVRU
T05ET1dOOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsK
KyAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOwogCiAg
ICAgICAgIGNhc2UgV01fTEJVVFRPTlVQOgogICAgICAgICBjYXNlIFdNX1JCVVRUT05VUDoKICAg
ICAgICAgY2FzZSBXTV9NQlVUVE9OVVA6Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVu
dDo6TW91c2VSZWxlYXNlZDsKKyAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50VHlwZTo6
TW91c2VSZWxlYXNlZDsKIAogI2lmICFPUyhXSU5DRSkKICAgICAgICAgY2FzZSBXTV9NT1VTRUxF
QVZFOgogI2VuZGlmCiAgICAgICAgIGNhc2UgV01fTU9VU0VNT1ZFOgotICAgICAgICAgICAgcmV0
dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgICAgICByZXR1cm4gUGxhdGZv
cm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQ7CiAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgLy9Nb3ZlIGlzIHJlbGF0aXZlbHkg
aGFybWxlc3MKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwor
ICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCmlu
ZGV4IDUyMjQ2OTcxOGQ5ZTViMzk0NDIxNjFkYWFmNTFjZjYxZTgzMjE4YWQuLmUyMDNiZTMxNjZl
YmYyZDI1MTIzZTlhNzk0NDk1MzBiZDQ4MTJlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIGludCB2
ZXJ0aWNhbFNjcm9sbExpbmVzKCkKIH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdo
ZWVsRXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFBv
aW50JiBsb2NhdGlvbikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWws
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCA6OkdldFRpY2tDb3VudCgpICogMC4wMDEpCisg
ICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpXaGVlbCwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKICAgICAsIG1fZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEud2lk
dGgoKTsKQEAgLTg1LDcgKzg1LDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVs
RXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQbGF0
Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3UGFy
YW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3JtRXZl
bnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19D
T05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtl
eVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQoKSAq
IDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWwsIHdQ
YXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5V
KSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRf
TUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKQogICAgICwgbV9wb3NpdGlvbihw
b3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGds
b2JhbFBvc2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1fZGlyZWN0aW9uSW52
ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKaW5kZXggOTlmMDk3NTVjZmUxNjI4Y2Y1ODA1
ZDVkODljYTA2YzMwNmQ3Y2M1OC4uMjkzYWE2YjQ4NWYzNzI1MzZhODM2MTc5ZTA0OTZkZWUyMDYz
YWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuY3BwCkBAIC0zMTgsNyArMzE4LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRFZmw6
OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAgICAg
RWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChpbnRlcnBy
ZXRLZXlFdmVudChldmVudCkpOwogCi0gICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRm
b3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhh
dmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21tYW5kcyB0
aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQgYmUgdHJl
YXRlZCwKICAgICAgICAgLy8gc28gd2UgbGVhdmUgaXQgdXBvbiBXZWJDb3JlIHRvIGVpdGhlciBo
YW5kbGUgdGhlbSBpbW1lZGlhdGVseSAoZS5nLiBUYWIgdGhhdCBjaGFuZ2VzIGZvY3VzKSBvciBs
ZXQgYSBrZXlwcmVzcyBldmVudCBiZSBnZW5lcmF0ZWQKICAgICAgICAgLy8gKGUuZy4gVGFiIHRo
YXQgaW5zZXJ0cyBhIFRhYiBjaGFyYWN0ZXIsIG9yIEVudGVyKS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdG91Y2hfZXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a190b3VjaF9ldmVudC5jcHAKaW5kZXggMjY2ZDE3OTY5YTFkYzllOWY0ZWJlYTM0NzU4
ZjZiODhiNGYzOTMxZS4uNjEzOTYyODdkMTNlNjk0NzU1OTE3MDNkNWIwZWY3ZDQwMGZjNTAyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190b3VjaF9ldmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190b3VjaF9ldmVudC5jcHAKQEAgLTcxLDE2ICs3
MSwxNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgICAg
ICBjYXNlIEVXS19UT1VDSF9TVEFSVDoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBs
YXRmb3JtRXZlbnQ6OlRvdWNoU3RhcnQ7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQ
bGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hTdGFydDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEVXS19UT1VDSF9NT1ZFOgotICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxh
dGZvcm1FdmVudDo6VG91Y2hNb3ZlOworICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxh
dGZvcm1FdmVudFR5cGU6OlRvdWNoTW92ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEVXS19UT1VDSF9FTkQ6Ci0gICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9y
bUV2ZW50OjpUb3VjaEVuZDsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3Jt
RXZlbnRUeXBlOjpUb3VjaEVuZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEVX
S19UT1VDSF9DQU5DRUw6Ci0gICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2
ZW50OjpUb3VjaENhbmNlbDsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3Jt
RXZlbnRUeXBlOjpUb3VjaENhbmNlbDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBiMTY3
NzU5NTE0ZGY2MWIyNzM4NGFjY2NiYTIyNWVhNGVlYzM4NWY1Li5mNmMzOGNkMjZlOTVjN2MwMzNm
NTFjMmM2MDMxZjk1Y2E3ZmE4ZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKQEAgLTQ0Myw3ICs0NDMsNyBAQCB2b2lk
IEVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkK
ICAgICAgICAgLy8gRHVyaW5nIFJhd0tleURvd24gZXZlbnRzIGlmIGFuIGVkaXRvciBjb21tYW5k
IHdpbGwgaW5zZXJ0IHRleHQsIGRlZmVyCiAgICAgICAgIC8vIHRoZSBpbnNlcnRpb24gdW50aWwg
dGhlIGtleXByZXNzIGV2ZW50LiBXZSB3YW50IGtleWRvd24gdG8gYnViYmxlIHVwCiAgICAgICAg
IC8vIHRocm91Z2ggdGhlIERPTSBmaXJzdC4KLSAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQtPnR5
cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgICAgIGlmIChwbGF0Zm9y
bUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAgICAg
ICAgICAgIGlmIChleGVjdXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKGZyYW1lLCBmYWxzZSkpCiAg
ICAgICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAwNzk3MTMxNmI3MGEyMmZmYzVm
NzY5ODM1OGU5NGM4NzczNTlkM2FkLi4zOWJmYWU1N2Y2ZDU0Y2M1NmZhMDU0MjQ5ZDg4N2M0NTkw
NTI3MDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBA
IC00NjksNyArNDY5LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19wb3B1cF9t
ZW51X2hhbmRsZXIoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgbG9jYXRpb24uc2hydW5rVG8oSW50
UG9pbnQodmlldy0+d2lkdGgoKSAtIGdDb250ZXh0TWVudU1hcmdpbiwgdmlldy0+aGVpZ2h0KCkg
LSBnQ29udGV4dE1lbnVNYXJnaW4pKTsKIAogICAgIEludFBvaW50IGdsb2JhbFBvaW50KGNvbnZl
cnRXaWRnZXRQb2ludFRvU2NyZWVuUG9pbnQod2lkZ2V0LCBsb2NhdGlvbikpOwotICAgIFBsYXRm
b3JtTW91c2VFdmVudCBldmVudChsb2NhdGlvbiwgZ2xvYmFsUG9pbnQsIFJpZ2h0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQobG9jYXRpb24sIGdsb2JhbFBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudFR5
cGU6Ok1vdXNlUHJlc3NlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGd0a19nZXRf
Y3VycmVudF9ldmVudF90aW1lKCkpOwogICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfZm9yd2Fy
ZF9jb250ZXh0X21lbnVfZXZlbnQoV0VCS0lUX1dFQl9WSUVXKHdpZGdldCksIGV2ZW50LCB0cnVl
KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCmluZGV4IGQ0MWZiYTAzODE3MzhlYzIzOWMyYjNhZjI2ZmExOGZjNWQ1
YTYxZjIuLjAwNWU5N2M2MzNhMzc1ZjA5NmUzM2IzYWNjY2IxM2Y2Yzc0ZWZlOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTY4LDcgKzk2OCw3IEBAIHN0YXRpYyBp
bmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQog
ICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtl
eXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgogICAgIFBsYXRm
b3JtTW91c2VFdmVudCBldmVudChJbnRQb2ludCh3aW5kb3dMb2MpLCBnbG9iYWxQb2ludCh3aW5k
b3dMb2MsIFt2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10pLAotICAgICAgICBMZWZ0QnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgY3VycmVudFRpbWUoKSk7CisgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnRU
eXBlOjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRp
bWUoKSk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJj
ZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDgxZjliOTg1ZWIyZGI3
MTkxZjU0MTg4NjU5MGM0OWExZTkzZTkwM2EuLjM3ODlkMGFhN2I5MDliOWQ2OWY0ZmMzODBiZjhl
NTljZWM1ZTBkMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpA
QCAtNDE2MCw3ICs0MTYwLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3Vy
cmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICBzd2l0Y2ggKFtldmVudCB0
eXBlXSkgewogICAgIGNhc2UgTlNLZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCBwbGF0Zm9ybUV2ZW50ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3Jt
S2V5Ym9hcmRFdmVudChldmVudCk7Ci0gICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRl
S2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOworICAgICAgICBwbGF0Zm9y
bUV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5
RG93bik7CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVu
dCwgY29yZUZyYW1lLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKTsKICAgICB9CiAgICAgY2Fz
ZSBOU0tleVVwOgpAQCAtNTgwMiw3ICs1ODAyLDcgQEAgc3RhdGljIEJPT0wgd3JpdGluZ0RpcmVj
dGlvbktleUJpbmRpbmdzRW5hYmxlZCgpCiAgICAgICAgIH0KICAgICAgICAgLy8gSWYgdGhlcmUg
YXJlIG5vIHRleHQgaW5zZXJ0aW9uIGNvbW1hbmRzLCBkZWZhdWx0IGtleWRvd24gaGFuZGxlciBp
cyB0aGUgcmlnaHQgdGltZSB0byBleGVjdXRlIHRoZSBjb21tYW5kcy4KICAgICAgICAgLy8gS2V5
cHJlc3MgKENoYXIgZXZlbnQpIGhhbmRsZXIgaXMgdGhlIGxhdGVzdCBvcHBvcnR1bml0eSB0byBl
eGVjdXRlLgotICAgICAgICBpZiAoIWhhdmVUZXh0SW5zZXJ0aW9uQ29tbWFuZHMgfHwgcGxhdGZv
cm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpCisgICAgICAgIGlmICghaGF2
ZVRleHRJbnNlcnRpb25Db21tYW5kcyB8fCBwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudFR5cGU6OkNoYXIpCiAgICAgICAgICAgICBbc2VsZiBfZXhlY3V0ZVNhdmVkS2V5cHJl
c3NDb21tYW5kc107CiAgICAgfQogICAgIF9wcml2YXRlLT5pbnRlcnByZXRLZXlFdmVudHNQYXJh
bWV0ZXJzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCA1
ZTIwZDYyMzIxOTM0YmJiODMwYjcxMWZiYzc2Y2RjZTNlOTlhZTFkLi4yNGJlNzU1NDI4MWEzM2Jh
Nzg4YzMyZDFiMmMyZGRjNTM0ZTk1NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
REZWaWV3Lm1tCkBAIC0xMDM4LDcgKzEwMzgsNyBAQCBzdGF0aWMgQk9PTCBpc0ZyYW1lSW5SYW5n
ZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIE5TS2V5RG93bjogewogICAgICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2
ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChuc0V2ZW50KTsKLSAgICAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0
Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKKyAgICAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bik7CiAgICAgICAgICAgICBldmVu
dCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEcm9wU291cmNlLmNwcAppbmRleCA1N2E4M2IzMWQ1ODVk
NTIzOGUwNWQ3ZDc0MmYyMzJiNWQxZTE4MDI3Li42MmU1NzY0NDVkODY2ZTZlNjM5ZTFkOWE0N2I2
NjUwYjBkY2YyNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEcm9wU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJEcm9wU291cmNlLmNwcApAQCAtMTAyLDcg
KzEwMiw3IEBAIFBsYXRmb3JtTW91c2VFdmVudCBnZW5lcmF0ZU1vdXNlRXZlbnQoV2ViVmlldyog
d2ViVmlldywgYm9vbCBpc0RyYWcpCiAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT52aWV3V2lu
ZG93KChPTEVfSEFORExFKikmdmlld1dpbmRvdykpKQogICAgICAgICA6OlNjcmVlblRvQ2xpZW50
KHZpZXdXaW5kb3csIChMUFBPSU5UKSZsb2NhbHB0KTsKICAgICByZXR1cm4gUGxhdGZvcm1Nb3Vz
ZUV2ZW50KEludFBvaW50KGxvY2FscHQueCwgbG9jYWxwdC55KSwgSW50UG9pbnQocHQueCwgcHQu
eSksCi0gICAgICAgIGlzRHJhZyA/IExlZnRCdXR0b24gOiBOb0J1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCkpOworICAgICAgICBpc0RyYWcgPyBMZWZ0QnV0dG9uIDogTm9CdXR0b24sIFBsYXRmb3JtRXZl
bnRUeXBlOjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVu
dFRpbWUoKSk7CiB9CiAKIFNURE1FVEhPRElNUCBXZWJEcm9wU291cmNlOjpRdWVyeUNvbnRpbnVl
RHJhZyhCT09MIGZFc2NhcGVQcmVzc2VkLCBEV09SRCBncmZLZXlTdGF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKaW5kZXggOTcwNzQ5ZGY2MmY5YTJlNjhhZmEzNzhjMmYwNDdlNWE2M2RmNTA0MS4uNDI1
NWI2Yzc2ZjgyMTg1MzlmN2I0Y2JiMTdkODJiMjU1ODg5ODM5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKQEAgLTE4NjEsNyArMTg2MSw3IEBAIGJvb2wgV2ViVmlldzo6ZXhlY0NvbW1hbmQoV1BBUkFN
IHdQYXJhbSwgTFBBUkFNIC8qbFBhcmFtKi8pCiAKIGJvb2wgV2ViVmlldzo6a2V5VXAoV1BBUkFN
IHZpcnR1YWxLZXlDb2RlLCBMUEFSQU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3duKQogewot
ICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3ZpZXdXaW5kb3csIHZpcnR1YWxL
ZXlDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50OjpLZXlVcCwgc3lzdGVtS2V5RG93bik7Cisg
ICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fdmlld1dpbmRvdywgdmlydHVhbEtl
eUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlVcCwgc3lzdGVtS2V5RG93bik7
CiAKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRP
ck1haW5GcmFtZSgpOwogICAgIG1fY3VycmVudENoYXJhY3RlckNvZGUgPSAwOwpAQCAtMjAwMyw3
ICsyMDAzLDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXli
b2FyZEV2ZW50KiBldnQpCiAKICAgICBFZGl0b3I6OkNvbW1hbmQgY29tbWFuZCA9IGZyYW1lLT5l
ZGl0b3IoKS5jb21tYW5kKGludGVycHJldEtleUV2ZW50KGV2dCkpOwogCi0gICAgaWYgKGtleUV2
ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmIChrZXlF
dmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAg
IC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8g
ZGVjaWRlIGhvdyBjb21tYW5kcyB0aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlh
IEVkaXRvciBzaG91bGQgYmUgdHJlYXRlZCwKICAgICAgICAgLy8gc28gd2UgbGVhdmUgaXQgdXBv
biBXZWJDb3JlIHRvIGVpdGhlciBoYW5kbGUgdGhlbSBpbW1lZGlhdGVseSAoZS5nLiBUYWIgdGhh
dCBjaGFuZ2VzIGZvY3VzKSBvciBsZXQgYSBrZXlwcmVzcyBldmVudCBiZSBnZW5lcmF0ZWQKICAg
ICAgICAgLy8gKGUuZy4gVGFiIHRoYXQgaW5zZXJ0cyBhIFRhYiBjaGFyYWN0ZXIsIG9yIEVudGVy
KS4KQEAgLTIwMzEsNyArMjAzMSw3IEBAIGJvb2wgV2ViVmlldzo6a2V5RG93bihXUEFSQU0gdmly
dHVhbEtleUNvZGUsIExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtleURvd24pCiAjZW5kaWYK
ICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpOwogCi0gICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fdmlld1dp
bmRvdywgdmlydHVhbEtleUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24s
IHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3Zp
ZXdXaW5kb3csIHZpcnR1YWxLZXlDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3
S2V5RG93biwgc3lzdGVtS2V5RG93bik7CiAgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUuZXZlbnRI
YW5kbGVyKCkua2V5RXZlbnQoa2V5RXZlbnQpOwogCiAgICAgLy8gVGhlc2UgZXZlbnRzIGNhbm5v
dCBiZSBjYW5jZWxlZCwgYW5kIHdlIGhhdmUgbm8gZGVmYXVsdCBoYW5kbGluZyBmb3IgdGhlbS4K
QEAgLTIxMDMsNyArMjEwMyw3IEBAIGJvb2wgV2ViVmlldzo6a2V5UHJlc3MoV1BBUkFNIGNoYXJD
b2RlLCBMUEFSQU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3duKQogewogICAgIEZyYW1lJiBm
cmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAK
LSAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5RXZlbnQobV92aWV3V2luZG93LCBjaGFyQ29k
ZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVudDo6Q2hhciwgc3lzdGVtS2V5RG93bik7CisgICAgUGxh
dGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fdmlld1dpbmRvdywgY2hhckNvZGUsIGtleURh
dGEsIFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyLCBzeXN0ZW1LZXlEb3duKTsKICAgICAvLyBJRSBk
b2VzIG5vdCBkaXNwYXRjaCBrZXlwcmVzcyBldmVudCBmb3IgV01fU1lTQ0hBUi4KICAgICBpZiAo
c3lzdGVtS2V5RG93bikKICAgICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZUFjY2Vzc0tleShrZXlFdmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCmluZGV4IDYxOWJmOTcxZTIzNmMw
ZmI4MzVkZWQzMjc3ZTVlZWFkNTRiYjczNjQuLjc5ZGFkOTBlOTgzZWFhMDYyMTM4YzdlMTY3MDY1
MmM3ZmYyNzdiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCkBAIC0zOTIsNyArMzkyLDcgQEAgYm9vbCBF
ZGl0b3JDbGllbnRXaW5DRTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCiAKICAgICBFZGl0b3I6OkNvbW1hbmQgY29tbWFuZCA9IGZyYW1lLT5lZGl0b3Io
KS5jb21tYW5kKGludGVycHJldEtleUV2ZW50KGV2ZW50KSk7CiAKLSAgICBpZiAoa2V5RXZlbnQt
PnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgaWYgKGtleUV2ZW50
LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAgICAgICAgLy8g
V2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9kZSB0byBkZWNp
ZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVjdXRlZCB2aWEgRWRp
dG9yIHNob3VsZCBiZSB0cmVhdGVkLAogICAgICAgICAvLyBzbyB3ZSBsZWF2ZSBpdCB1cG9uIFdl
YkNvcmUgdG8gZWl0aGVyIGhhbmRsZSB0aGVtIGltbWVkaWF0ZWx5IChlLmcuIFRhYiB0aGF0IGNo
YW5nZXMgZm9jdXMpIG9yIGxldCBhIGtleXByZXNzIGV2ZW50IGJlIGdlbmVyYXRlZAogICAgICAg
ICAvLyAoZS5nLiBUYWIgdGhhdCBpbnNlcnRzIGEgVGFiIGNoYXJhY3Rlciwgb3IgRW50ZXIpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViVmlldy5jcHAKaW5kZXggNjdmZTAzOGJlNDQ4NjQ3MjFhOGM4ODY3NjA0ODcw
OTA2ZWU3NGFiYy4uODk4M2FjZTNkZWIxY2Q4ZTk1YTE0NGM1ZTEzNDcyYTFmNDNkZDAxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYlZpZXcuY3BwCkBAIC0zNTAsNyArMzUwLDcgQEAgYm9vbCBXZWJWaWV3Ojpo
YW5kbGVLZXlEb3duKFdQQVJBTSB2aXJ0dWFsS2V5Q29kZSwgTFBBUkFNIGtleURhdGEsIGJvb2wg
c3lzdGVtS2UKIHsKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LmZvY3VzZWRPck1haW5GcmFtZSgpOwogCi0gICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2
ZW50KG1fd2luZG93SGFuZGxlLCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVu
dDo6UmF3S2V5RG93biwgc3lzdGVtS2V5RG93bik7CisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
IGtleUV2ZW50KG1fd2luZG93SGFuZGxlLCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0YSwgUGxhdGZv
cm1FdmVudFR5cGU6OlJhd0tleURvd24sIHN5c3RlbUtleURvd24pOwogICAgIGJvb2wgaGFuZGxl
ZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLmtleUV2ZW50KGtleUV2ZW50KTsKIAogICAgIC8vIFRo
ZXNlIGV2ZW50cyBjYW5ub3QgYmUgY2FuY2VsZWQsIGFuZCB3ZSBoYXZlIG5vIGRlZmF1bHQgaGFu
ZGxpbmcgZm9yIHRoZW0uCkBAIC0zNzIsNyArMzcyLDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVL
ZXlQcmVzcyhXUEFSQU0gY2hhckNvZGUsIExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtleURv
d24KIHsKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpOwogCi0gICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1f
d2luZG93SGFuZGxlLCBjaGFyQ29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVudDo6Q2hhciwgc3lz
dGVtS2V5RG93bik7CisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fd2luZG93
SGFuZGxlLCBjaGFyQ29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVudFR5cGU6OkNoYXIsIHN5c3Rl
bUtleURvd24pOwogICAgIC8vIElFIGRvZXMgbm90IGRpc3BhdGNoIGtleXByZXNzIGV2ZW50IGZv
ciBXTV9TWVNDSEFSLgogICAgIGlmIChzeXN0ZW1LZXlEb3duKQogICAgICAgICByZXR1cm4gZnJh
bWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlQWNjZXNzS2V5KGtleUV2ZW50KTsKQEAgLTM4NCw3ICsz
ODQsNyBAQCBib29sIFdlYlZpZXc6OmhhbmRsZUtleVByZXNzKFdQQVJBTSBjaGFyQ29kZSwgTFBB
UkFNIGtleURhdGEsIGJvb2wgc3lzdGVtS2V5RG93bgogCiBib29sIFdlYlZpZXc6OmhhbmRsZUtl
eVVwKFdQQVJBTSB2aXJ0dWFsS2V5Q29kZSwgTFBBUkFNIGtleURhdGEsIGJvb2wgc3lzdGVtS2V5
RG93bikKIHsKLSAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5RXZlbnQobV93aW5kb3dIYW5k
bGUsIHZpcnR1YWxLZXlDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50OjpLZXlVcCwgc3lzdGVt
S2V5RG93bik7CisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fd2luZG93SGFu
ZGxlLCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVudFR5cGU6OktleVVwLCBz
eXN0ZW1LZXlEb3duKTsKIAogICAgIEZyYW1lJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxl
cigpLmtleUV2ZW50KGtleUV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50
Q29udmVyc2lvbi5jcHAKaW5kZXggMDNmZDBlZGI1ZmUzMzc0NGM4YTYxY2M1OTFjOGUxOWYwZDRm
NjQzNC4uZGU1MTExNGZhMTZiNDQ0MzFmYjNhYmVhZTI2Mzg1ZDcxYjJhNjcxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTM3LDEzICszNywx
MyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFBsYXRmb3JtRXZlbnQKICAgICAgICAgc3dpdGNoICh3
ZWJFdmVudC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgotICAg
ICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwor
ICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJl
c3NlZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVw
OgotICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6TW91c2VSZWxl
YXNlZDsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpN
b3VzZVJlbGVhc2VkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViRXZlbnQ6
Ok1vdXNlTW92ZToKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQ7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
VHlwZTo6TW91c2VNb3ZlZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVi
bGljOgogICAgIFdlYktpdDJQbGF0Zm9ybVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYg
d2ViRXZlbnQpCiAgICAgewogICAgICAgICAvLyBQbGF0Zm9ybUV2ZW50Ci0gICAgICAgIG1fdHlw
ZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOworICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0
Zm9ybUV2ZW50VHlwZTo6V2hlZWw7CiAKICAgICAgICAgbV9tb2RpZmllcnMgPSAwOwogICAgICAg
ICBpZiAod2ViRXZlbnQuc2hpZnRLZXkoKSkKQEAgLTE1MSwxNiArMTUxLDE2IEBAIHB1YmxpYzoK
ICAgICAgICAgLy8gUGxhdGZvcm1FdmVudAogICAgICAgICBzd2l0Y2ggKHdlYkV2ZW50LnR5cGUo
KSkgewogICAgICAgICBjYXNlIFdlYkV2ZW50OjpLZXlEb3duOgotICAgICAgICAgICAgbV90eXBl
ID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6S2V5RG93bjsKKyAgICAgICAgICAgIG1fdHlwZSA9
IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgV2ViRXZlbnQ6OktleVVwOgotICAgICAgICAgICAgbV90eXBlID0gV2Vi
Q29yZTo6UGxhdGZvcm1FdmVudDo6S2V5VXA7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3Jl
OjpQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5VXA7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBXZWJFdmVudDo6UmF3S2V5RG93bjoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6
OlBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd247CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3Jl
OjpQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFdlYkV2ZW50OjpDaGFyOgotICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6
UGxhdGZvcm1FdmVudDo6Q2hhcjsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRm
b3JtRXZlbnRUeXBlOjpDaGFyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTI2NywxNiArMjY3LDE2IEBA
IHB1YmxpYzoKICAgICAgICAgLy8gUGxhdGZvcm1FdmVudAogICAgICAgICBzd2l0Y2ggKHdlYkV2
ZW50LnR5cGUoKSkgewogICAgICAgICBjYXNlIFdlYkV2ZW50OjpUb3VjaFN0YXJ0OiAKLSAgICAg
ICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlRvdWNoU3RhcnQ7CisgICAg
ICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hTdGFydDsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpUb3VjaE1vdmU6IAot
ICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hNb3ZlOwor
ICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoTW92
ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpUb3VjaEVuZDog
Ci0gICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpUb3VjaEVuZDsK
KyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaEVu
ZDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpUb3VjaENhbmNl
bDoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlRvdWNoQ2Fu
Y2VsOworICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OlRv
dWNoQ2FuY2VsOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRH
dGsuY3BwCmluZGV4IGFhY2QxZDU2NjE1NGQ2MjBjOWIxNGVhMzViM2U2OWUxZDZlMDY2NTguLjE0
MjM1NDBkNDk5MDYxOTg3MDI2YTZjODhjNjQ4MWY5ZWE5ZmE4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsv
V2ViRWRpdG9yQ2xpZW50R3RrLmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lkIFdlYkVkaXRvckNs
aWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAg
Ly8gRHVyaW5nIFJhd0tleURvd24gZXZlbnRzIGlmIGFuIGVkaXRvciBjb21tYW5kIHdpbGwgaW5z
ZXJ0IHRleHQsIGRlZmVyCiAgICAgICAgIC8vIHRoZSBpbnNlcnRpb24gdW50aWwgdGhlIGtleXBy
ZXNzIGV2ZW50LiBXZSB3YW50IGtleWRvd24gdG8gYnViYmxlIHVwCiAgICAgICAgIC8vIHRocm91
Z2ggdGhlIERPTSBmaXJzdC4KLSAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQtPnR5cGUoKSA9PSBQ
bGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50LT50
eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAgICAgICAgICAgIGlm
IChleGVjdXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKGZyYW1lLCBwZW5kaW5nRWRpdG9yQ29tbWFu
ZHMsIGZhbHNlKSkKICAgICAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGZlNDY1YTM1OWJiOTBhMGE5ZGY4ZmI3NDI0MjhlZTY2ZGM3ZjMzMzMuLmQzYWY1YzEzMzQyMzYz
Y2QzNmFiN2NjMDk2NWMzYmU0NTQ5N2Y3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1NjMsNyArMTU2Myw3IEBAIFdlYkNvbnRleHRN
ZW51KiBXZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJbnRQb2ludCYg
cG9pbnQpCiAgICAgY29yZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJh
dGUgdGhlIGNvcnJlY3QgbWVudS4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChw
b2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VFdmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
Y3VycmVudFRpbWUoKSk7CiAgICAgYm9vbCBoYW5kbGVkID0gY29yZVBhZ2UoKS0+bWFpbkZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAg
aWYgKCFoYW5kbGVkKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE2NDIsNyArMTY0Miw3IEBAIHN0
YXRpYyBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVu
dCwgV2ViUGFnZSogcGFnZSwgYm9vCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91
c2VFdmVudCA9IHBsYXRmb3JtKG1vdXNlRXZlbnQpOwogCiAgICAgc3dpdGNoIChwbGF0Zm9ybU1v
dXNlRXZlbnQudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVz
c2VkOiB7CisgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZDogewog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgICAgICAgICAgaWYgKGlzQ29udGV4dENsaWNr
KHBsYXRmb3JtTW91c2VFdmVudCkpCiAgICAgICAgICAgICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250ZXh0TWVudSgpOwpAQCAtMTY1NSwxMCAr
MTY1NSwxMCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogI2VuZGlmCiAgICAgICAgICAgICBy
ZXR1cm4gaGFuZGxlZDsKICAgICAgICAgfQotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlUmVsZWFzZWQ6CisgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFz
ZWQ6CiAgICAgICAgICAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VS
ZWxlYXNlRXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKIAotICAgICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ6CisgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNl
TW92ZWQ6CiAgICAgICAgICAgICBpZiAob25seVVwZGF0ZVNjcm9sbGJhcnMpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLnBhc3NNb3VzZU1vdmVkRXZlbnRUb1Nj
cm9sbGJhcnMocGxhdGZvcm1Nb3VzZUV2ZW50KTsKICAgICAgICAgICAgIHJldHVybiBmcmFtZS5l
dmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKHBsYXRmb3JtTW91c2VFdmVudCk7CkBAIC0yMDEzLDcg
KzIwMTMsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJv
b2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdlYgogCiAgICAgaWYgKGlzS2V5Ym9hcmRF
dmVudFZhbGlkICYmIGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6S2V5RG93bikgewogICAgICAg
ICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudChwbGF0Zm9ybShldmVudCkpOwot
ICAgICAgICBwbGF0Zm9ybUV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2
ZW50OjpSYXdLZXlEb3duKTsKKyAgICAgICAgcGxhdGZvcm1FdmVudC5kaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pOwogICAgICAgICBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLnNldEluaXRpYWxGb2N1cyhmb3J3YXJkID8gRm9jdXNEaXJlY3Rp
b25Gb3J3YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwgS2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KHBsYXRmb3JtRXZlbnQsIGZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpLmdldCgpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI2NTcsNyArMjY1Nyw3IEBAIGJvb2wgV2ViUGFn
ZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogCiAgICAg
RWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChpbnRlcnBy
ZXRLZXlFdmVudChldnQpKTsKIAotICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9y
bUV2ZW50VHlwZTo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZl
IGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhh
dCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0
ZWQsCiAgICAgICAgIC8vIHNvIHdlIGxlYXZlIGl0IHVwb24gV2ViQ29yZSB0byBlaXRoZXIgaGFu
ZGxlIHRoZW0gaW1tZWRpYXRlbHkgKGUuZy4gVGFiIHRoYXQgY2hhbmdlcyBmb2N1cykgb3IgbGV0
IGEga2V5cHJlc3MgZXZlbnQgYmUgZ2VuZXJhdGVkCiAgICAgICAgIC8vIChlLmcuIFRhYiB0aGF0
IGluc2VydHMgYSBUYWIgY2hhcmFjdGVyLCBvciBFbnRlcikuCkBAIC0yNzc0LDcgKzI3NzQsNyBA
QCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlv
biwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJu
OwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0
aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVm
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChh
ZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQppbmRleCBlNWJjNDUzZjJlNmE1ZDhmOTkzNTMwM2NhNWNkM2IzYmI1YzQxMGJl
Li5jNDk4YzgyZjlmZjU5YWUzODhlNTZiYmMyODRiNTZjOTg3ODI2MWRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0y
OTgsOSArMjk4LDkgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVUYXAoY29uc3QgSW50UG9pbnQmIHBv
aW50KQogICAgIG1haW5mcmFtZS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocG9pbnQsIGFk
anVzdGVkUG9pbnQpOwogICAgIEludFBvaW50IHJvdW5kZWRBZGp1c3RlZFBvaW50ID0gcm91bmRl
ZEludFBvaW50KGFkanVzdGVkUG9pbnQpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigp
Lm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3Vu
ZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7Ci0gICAgbWFpbmZyYW1lLmV2ZW50SGFu
ZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFk
anVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7Ci0g
ICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRm
b3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQs
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCAwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNl
TW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRq
dXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkLCAwLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCkpOworICAgIG1haW5mcmFtZS5ldmVudEhhbmRs
ZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1
c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDApKTsK
KyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxh
dGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2lu
dCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6dGFwSGlnaGxp
Z2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCmluZGV4IDg2MzVmNDU4OTk4YzVhZWE2YmNjMzJkZWU4NDNhMDIxYzIwYTUxOGUu
LmZjYjBkYjQxOWFmN2I3N2Y5MDY1ZTFlMjFkNmU1MTc1YzU0YjFkYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTE4
NCw3ICsxODQsNyBAQCBib29sIFdlYlBhZ2U6OmV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzSW50ZXJu
YWwoY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbQogICAgICAgICAgICAgICAgIGJv
b2wgY29tbWFuZEV4ZWN1dGVkQnlFZGl0b3IgPSBjb21tYW5kLmV4ZWN1dGUoZXZlbnQpOwogICAg
ICAgICAgICAgICAgIGV2ZW50V2FzSGFuZGxlZCB8PSBjb21tYW5kRXhlY3V0ZWRCeUVkaXRvcjsK
ICAgICAgICAgICAgICAgICBpZiAoIWNvbW1hbmRFeGVjdXRlZEJ5RWRpdG9yKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGJvb2wgcGVyZm9ybWVkTm9uRWRpdGluZ0JlaGF2aW9yID0gZXZlbnQtPmtl
eUV2ZW50KCktPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duICYmIHBlcmZvcm1O
b25FZGl0aW5nQmVoYXZpb3JGb3JTZWxlY3Rvcihjb21tYW5kc1tpXS5jb21tYW5kTmFtZSwgZXZl
bnQpOworICAgICAgICAgICAgICAgICAgICBib29sIHBlcmZvcm1lZE5vbkVkaXRpbmdCZWhhdmlv
ciA9IGV2ZW50LT5rZXlFdmVudCgpLT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tl
eURvd24gJiYgcGVyZm9ybU5vbkVkaXRpbmdCZWhhdmlvckZvclNlbGVjdG9yKGNvbW1hbmRzW2ld
LmNvbW1hbmROYW1lLCBldmVudCk7CiAgICAgICAgICAgICAgICAgICAgIGV2ZW50V2FzSGFuZGxl
ZCB8PSBwZXJmb3JtZWROb25FZGl0aW5nQmVoYXZpb3I7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSBlbHNlIHsKQEAgLTI0MCw3ICsyNDAsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRs
ZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIHNhdmVDb21t
YW5kcwogICAgICAgICB9CiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyB0ZXh0IGluc2VydGlv
biBjb21tYW5kcywgZGVmYXVsdCBrZXlkb3duIGhhbmRsZXIgaXMgdGhlIHJpZ2h0IHRpbWUgdG8g
ZXhlY3V0ZSB0aGUgY29tbWFuZHMuCiAgICAgICAgIC8vIEtleXByZXNzIChDaGFyIGV2ZW50KSBo
YW5kbGVyIGlzIHRoZSBsYXRlc3Qgb3Bwb3J0dW5pdHkgdG8gZXhlY3V0ZS4KLSAgICAgICAgaWYg
KCFoYXZlVGV4dEluc2VydGlvbkNvbW1hbmRzIHx8IHBsYXRmb3JtRXZlbnQtPnR5cGUoKSA9PSBQ
bGF0Zm9ybUV2ZW50OjpDaGFyKSB7CisgICAgICAgIGlmICghaGF2ZVRleHRJbnNlcnRpb25Db21t
YW5kcyB8fCBwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OkNoYXIp
IHsKICAgICAgICAgICAgIGV2ZW50V2FzSGFuZGxlZCA9IGV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRz
SW50ZXJuYWwoZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKSwgZXZlbnQpOwogICAgICAgICAgICAg
ZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKS5jbGVhcigpOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222996</attachid>
            <date>2014-02-03 10:10:56 -0800</date>
            <delta_ts>2014-02-03 11:41:33 -0800</delta_ts>
            <desc>EWS round two fight</desc>
            <filename>bug-128029-20140203101055.patch</filename>
            <type>text/plain</type>
            <size>87455</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUzNmExZDAxNjQ1NDdj
YWJkODAxMjNjYzAxM2EwNmZjODM1YTk5OS4uZjQwNzQ1NDRlYTRiYzMwZTE2MjE2YjA1NjMxNmYx
NGI5ZjMyYWY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDE0LTAyLTAzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUg
c2hvdWxkIGJlIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0tleWJvYXJk
RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUeXBlRm9yS2V5Ym9hcmRFdmVudFR5
cGUpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
dXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hL
ZXlFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnB1dEFnZW50OjpkaXNwYXRj
aE1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51
QXQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTW91c2VFdmVudCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhldGljVG91Y2hQb2ludDo6U3ludGhldGljVG91Y2hQb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTeW50aGV0aWNTaW5nbGVUb3VjaEV2ZW50OjpTeW50aGV0
aWNTaW5nbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2xlYXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVQYXN0ZUdsb2JhbFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppc0tleUV2ZW50QWxsb3dl
ZEluRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVudElmRW5h
YmxlZCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlBsYXRmb3JtRXZlbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2
ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hl
ZWxFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9y
bVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Q
bGF0Zm9ybU1vdXNlRXZlbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3Vz
ZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0
Zm9ybVdoZWVsRXZlbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2
ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZlbnRUeXBlRm9yR2Rr
S2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybU1v
dXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQ
bGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVs
RXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0
Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5
RG93bkV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2ZW50VHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG91Y2hFdmVudFR5
cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9ySU9TOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudCk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6bW91c2VFdmVudFR5cGVGb3JFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Om1lc3NhZ2VUb0V2ZW50VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0
Zm9ybVdoZWVsRXZlbnQpOgorCiAyMDE0LTAyLTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9yZSBpT1MgYnVpbGQgZml4aW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmlu
ZGV4IGU1M2YxYmY3M2VkNDk0OTRmOTQwZTZjMTM2OTI3MDQ0OGViMmYxNzIuLmNlNjBmMjgzMzVj
NTczNWU5NGQ1ZGNhYjQwOGYwYzFlNjc5OTdmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6
OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBld2svZXdrX3RvdWNoX2V2
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdFBsYXRmb3JtVG91Y2hFdmVudDo6V2ViS2l0UGxhdGZv
cm1Ub3VjaEV2ZW50KToKKwogMjAxNC0wMS0zMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZW1vdmUgaW5saW5lIG1lbWJlciBmdW5jdGlvbnMgb2YgRnJhbWVT
ZWxlY3Rpb24gdGhhdCBhY2Nlc3MgbV9zZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBiZWZj
ZWFkODNlNjJlZmM2MTY5MGViNGVmZmNjMDYwYjQ0M2Y4NDQ4Li5lNzMzYzc0NGNkNzk0MTRhMzE2
NDI2ZWFjNDMyM2YxMWE1YTcxOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTQtMDItMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUGxh
dGZvcm1FdmVudDo6VHlwZSBzaG91bGQgYmUgYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDI5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJv
YXJkRXZlbnQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIpOgorCiAyMDE0LTAxLTMxICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBG
aXhpbmcgdGhlIEdUSyBidWlsZCBhZnRlciByMTYzMjMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDZi
ODU5MTQxNTE4OGM1MWQ5MzFiNTJmNmQ5ODQyNjY2ZDgzZDgxOTIuLjNmMWM3ZDk1Y2JlNzQzZjFk
OTJkODU4NGI2NjUyYzU4MjkwZTA0YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06
CisgICAgICAgICgtW1dlYkZyYW1lIF9kcmFnU291cmNlRW5kZWRBdDpvcGVyYXRpb246XSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKGN1cnJlbnRLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2ludGVycHJldEtleUV2ZW50OnNhdmlu
Z0NvbW1hbmRzOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAg
KC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTQt
MDEtMzEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IGlubGluZSBtZW1iZXIgZnVuY3Rpb25zIG9mIEZyYW1lU2VsZWN0aW9uIHRoYXQgYWNjZXNzIG1f
c2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYTc2ODMyYjIxZmViZmRlZWVkZGE0ODY5YzEz
ZWMzNjliYmNhMThkMC4uMDk0YzdhMzUxZjdhMWY0M2QwYjkxZGM3M2QxOTAzYWY4YzM2NDFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAyLTAzICBCcmlhbiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgc2hvdWxk
IGJlIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6CisgICAgICAgIChnZW5lcmF0ZU1vdXNlRXZl
bnQpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6a2V5VXApOgor
ICAgICAgICAoV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgorICAgICAgICAo
V2ViVmlldzo6a2V5RG93bik6CisgICAgICAgIChXZWJWaWV3OjprZXlQcmVzcyk6CisKIDIwMTQt
MDItMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN0aWxsIG1v
cmUgY2hhcmFjdGVycyAtPiBkZXByZWNhdGVkQ2hhcmFjdGVycyAoRVdTIGtlZXBzIGZpbmRpbmcg
bW9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggODdkNjQ0YWZhMTlhNzM0OTkxNzg3ZDYzNGY5
MWE3M2EyYjI5Mzg1Zi4uMjZiY2QxNzUxOTQ5ZTU0YTViZmMwODgwOTFjMjY3MjhlYzQ0MjQ3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMi0wMyAgQnJpYW4g
QnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHNo
b3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZUtl
eURvd24pOgorICAgICAgICAoV2ViVmlldzo6aGFuZGxlS2V5UHJlc3MpOgorICAgICAgICAoV2Vi
Vmlldzo6aGFuZGxlS2V5VXApOgorCiAyMDE0LTAxLTMwICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJA
YWRvYmUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcg
ZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDdlNDU2YzU0OWRiNGIyY2M5ZDYxZmUzNTVjZWFlMmI3MjIzNWIx
N2UuLjc3ZjJlNzg2MWM3MzQ5ZmRjZjllZDkwMmJiMmM0ZTcwNTU4Mjg1NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZv
cm1Nb3VzZUV2ZW50OjpXZWJLaXQyUGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViS2l0MlBsYXRmb3JtV2hlZWxFdmVudDo6V2ViS2l0MlBsYXRmb3JtV2hlZWxFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OldlYktpdDJQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1U
b3VjaEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1Ub3VjaEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVN
b3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SW5pdGlhbEZvY3VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmFnRW5kZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aGFuZGxlVGFwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzSW50
ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudCk6CisKIDIwMTQtMDItMDMgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBGaXggd3JvbmcgbWl4IG9mIGZjbnRsIGNvbW1hbmRzIGFuZCBmbGFncwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCBkZmNhZjU1MDcwZGM2OWY0OWY0MjE4Y2MyZTQ2Y2ZjYmM4NGFl
NjRiLi5mYTEzNmNkZWZhNTRiYjI0ZTRkNzRmOTUzMGFlYTg3ZjdlMDhiNDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtODIyLDcgKzgyMiw3IEBAIF9fWk43V2ViQ29yZTIxTWVtb3J5UHJlc3N1
cmVIYW5kbGVyN2luc3RhbGxFdgogX19aTjdXZWJDb3JlMjFOZXR3b3JrU3RvcmFnZVNlc3Npb24y
MWRlZmF1bHRTdG9yYWdlU2Vzc2lvbkV2CiBfX1pON1dlYkNvcmUyMU5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjI1c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbkV2CiBfX1pON1dlYkNvcmUyMU5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjI4Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkVSS04zV1RGNlN0cmlu
Z0UKLV9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50MjRkaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnRFTlNfMTNQbGF0Zm9ybUV2ZW50NFR5cGVFYgorX19aTjdXZWJDb3JlMjFQbGF0Zm9y
bUtleWJvYXJkRXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xN1BsYXRmb3JtRXZl
bnRUeXBlRWIKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRp
bmdSZXF1ZXN0c0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdXZWJDb3JlMjFSZXNv
dXJjZUxvYWRTY2hlZHVsZXIyMHNlcnZlUGVuZGluZ1JlcXVlc3RzRVBOUzBfMTVIb3N0SW5mb3Jt
YXRpb25FTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VM
b2FkU2NoZWR1bGVyMjFyZXN1bWVQZW5kaW5nUmVxdWVzdHNFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJv
YXJkRXZlbnQuY3BwCmluZGV4IGMwZTE2Zjg0MTcyZDU3YTQ5Zjk3YWU2NzE1M2M3MGFjZDcwNGRh
YWUuLjQ5NGZjNDRlY2E4MjQ2ZTgyMTZlYWQ3Yzc5NTJmMzI0NDQyZWUzOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTMzLDIwICszMywyMCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGVG
b3JLZXlib2FyZEV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUpCitzdGF0aWMgaW5s
aW5lIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlRm9yS2V5Ym9hcmRFdmVudFR5cGUoUGxh
dGZvcm1FdmVudFR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2Fz
ZSBQbGF0Zm9ybUV2ZW50OjpLZXlVcDoKLSAgICAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCku
a2V5dXBFdmVudDsKLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duOgotICAg
ICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQ7Ci0gICAgICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6Q2hhcjoKLSAgICAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkua2V5
cHJlc3NFdmVudDsKLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpLZXlEb3duOgotICAgICAg
ICAgICAgLy8gVGhlIGNhbGxlciBzaG91bGQgZGlzYW1iaWd1YXRlIHRoZSBjb21iaW5lZCBldmVu
dCBpbnRvIFJhd0tleURvd24gb3IgQ2hhciBldmVudHMuCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1FdmVu
dFR5cGU6OktleVVwOgorICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmtleXVwRXZlbnQ7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bjoKKyAgICAgICAgcmV0dXJuIGV2
ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQ7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hh
cjoKKyAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50OworICAgIGNhc2Ug
UGxhdGZvcm1FdmVudFR5cGU6OktleURvd246CisgICAgICAgIC8vIFRoZSBjYWxsZXIgc2hvdWxk
IGRpc2FtYmlndWF0ZSB0aGUgY29tYmluZWQgZXZlbnQgaW50byBSYXdLZXlEb3duIG9yIENoYXIg
ZXZlbnRzLgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggNTY4MmY4YTUzNDg1
Yzc3NGM5NzY5NzY4OWJmYmE0ZWNhZjZlNWMxNi4uYWYwY2RmMzEzYWUwMzUwMDRjMmJkMTkwNWYy
ZjYxZjk3NDNlOWI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtNTQsNyArNTQs
NyBAQCBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IE1vdXNlRQogCiBQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IE1v
dXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0
cjxBYnN0cmFjdFZpZXc+IHZpZXcsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIGlu
dCBkZXRhaWwsIFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCkKIHsKLSAgICBBU1NFUlQo
ZXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQgfHwgZXZlbnQuYnV0dG9u
KCkgIT0gTm9CdXR0b24pOworICAgIEFTU0VSVChldmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlTW92ZWQgfHwgZXZlbnQuYnV0dG9uKCkgIT0gTm9CdXR0b24pOwogCiAgICAg
Ym9vbCBpc01vdXNlRW50ZXJPckxlYXZlID0gZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZWVudGVyRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZWxlYXZlRXZlbnQ7
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCmluZGV4IGM0NWEwNDAzMDQ4MTlmZTE5
NzYzMjdjMmU2OWNiNjZjNmNiNzc0MzkuLjA1NGVjNmY0ZmMxNWI0MTc0ZDU1NDhkMzVhMmM5MmQ1
MGY5NDI0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnB1dEFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5w
dXRBZ2VudC5jcHAKQEAgLTc1LDE1ICs3NSwxNSBAQCB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzbwog
CiB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNoS2V5RXZlbnQoRXJyb3JTdHJpbmcq
IGVycm9yLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBk
b3VibGUqIHRpbWVzdGFtcCwgY29uc3QgU3RyaW5nKiB0ZXh0LCBjb25zdCBTdHJpbmcqIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcqIGtleUlkZW50aWZpZXIsIGNvbnN0IGludCogd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBjb25zdCBpbnQqIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBjb25zdCBp
bnQqIG1hY0NoYXJDb2RlLCBjb25zdCBib29sKiBhdXRvUmVwZWF0LCBjb25zdCBib29sKiBpc0tl
eXBhZCwgY29uc3QgYm9vbCogaXNTeXN0ZW1LZXkpCiB7Ci0gICAgUGxhdGZvcm1FdmVudDo6VHlw
ZSBjb252ZXJ0ZWRUeXBlOworICAgIFBsYXRmb3JtRXZlbnRUeXBlIGNvbnZlcnRlZFR5cGU7CiAg
ICAgaWYgKHR5cGUgPT0gImtleURvd24iKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZv
cm1FdmVudDo6S2V5RG93bjsKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRU
eXBlOjpLZXlEb3duOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gImtleVVwIikKLSAgICAgICAgY29u
dmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6OktleVVwOworICAgICAgICBjb252ZXJ0ZWRUeXBl
ID0gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gImNoYXIi
KQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudDo6Q2hhcjsKKyAgICAgICAg
Y29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyOwogICAgIGVsc2UgaWYgKHR5
cGUgPT0gInJhd0tleURvd24iKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVu
dDo6UmF3S2V5RG93bjsKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBl
OjpSYXdLZXlEb3duOwogICAgIGVsc2UgewogICAgICAgICAqZXJyb3IgPSAiVW5yZWNvZ25pemVk
IHR5cGU6ICIgKyB0eXBlOwogICAgICAgICByZXR1cm47CkBAIC0xMDcsMTMgKzEwNywxMyBAQCB2
b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3BhdGNoS2V5RXZlbnQoRXJyb3JTdHJpbmcqIGVy
cm9yLCBjb25zdCBTdHJpbmcmIHR5cAogCiB2b2lkIEluc3BlY3RvcklucHV0QWdlbnQ6OmRpc3Bh
dGNoTW91c2VFdmVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdHlwZSwgaW50
IHgsIGludCB5LCBjb25zdCBpbnQqIG1vZGlmaWVycywgY29uc3QgZG91YmxlKiB0aW1lc3RhbXAs
IGNvbnN0IFN0cmluZyogYnV0dG9uLCBjb25zdCBpbnQqIGNsaWNrQ291bnQpCiB7Ci0gICAgUGxh
dGZvcm1FdmVudDo6VHlwZSBjb252ZXJ0ZWRUeXBlOworICAgIFBsYXRmb3JtRXZlbnRUeXBlIGNv
bnZlcnRlZFR5cGU7CiAgICAgaWYgKHR5cGUgPT0gIm1vdXNlUHJlc3NlZCIpCi0gICAgICAgIGNv
bnZlcnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgIGNvbnZl
cnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOwogICAgIGVsc2UgaWYg
KHR5cGUgPT0gIm1vdXNlUmVsZWFzZWQiKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZv
cm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3Jt
RXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkOwogICAgIGVsc2UgaWYgKHR5cGUgPT0gIm1vdXNlTW92
ZWQiKQotICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
KyAgICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOwog
ICAgIGVsc2UgewogICAgICAgICAqZXJyb3IgPSAiVW5yZWNvZ25pemVkIHR5cGU6ICIgKyB0eXBl
OwogICAgICAgICByZXR1cm47CkBAIC0xNTQsMTMgKzE1NCwxMyBAQCB2b2lkIEluc3BlY3Rvcklu
cHV0QWdlbnQ6OmRpc3BhdGNoTW91c2VFdmVudChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0
cmluZyYgdAogCiAgICAgRXZlbnRIYW5kbGVyJiBldmVudEhhbmRsZXIgPSBtX3BhZ2UtPm1haW5G
cmFtZSgpLmV2ZW50SGFuZGxlcigpOwogICAgIHN3aXRjaCAoY29udmVydGVkVHlwZSkgewotICAg
IGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOgorICAgIGNhc2UgUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlUHJlc3NlZDoKICAgICAgICAgZXZlbnRIYW5kbGVyLmhhbmRsZU1vdXNlUHJl
c3NFdmVudChldmVudCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6
TW91c2VSZWxlYXNlZDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2Vk
OgogICAgICAgICBldmVudEhhbmRsZXIuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoZXZlbnQpOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6CisgICAg
Y2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZDoKICAgICAgICAgZXZlbnRIYW5kbGVy
LmhhbmRsZU1vdXNlTW92ZUV2ZW50KGV2ZW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA5MjI1ZTljMWE0MWRiM2I4ZTAzY2FhODFjNGEwNDM3ZmU2ODVkZjExLi5hNjIwYTY1NmRmMzM5
N2I5MDBlYzlmN2Q2N2RkZGMzZGZlMDZkM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xNDA0LDcgKzE0MDQsNyBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUqIGZyYW1lLCBjb25zdCBJ
bnRQb2ludCYgY2xpYwogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAvLyBTaW11
bGF0ZSBhIGNsaWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0Lgot
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQs
IFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
bW91c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1F
dmVudFR5cGU6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1
cnJlbnRUaW1lKCkpOwogICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQobW91c2VFdmVudCk7CiAgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUtPmV2ZW50SGFuZGxl
cigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA1MzM3NmY2YzgwNGYxY2Ez
ZjY1MTllYzRjMmI2OTY2MDQ0MmIwZTJkLi42ZWQ1YzZmOGU3YWU2ZTNkZTI3NWZlMjYxM2EyMGFh
YTQ4NTFlNWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtOTUs
NyArOTUsNyBAQCBzdGF0aWMgUGxhdGZvcm1Nb3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoRHJh
Z0RhdGEmIGRyYWdEYXRhKQogICAgIG1ldGFLZXkgPSBzdGF0aWNfY2FzdDxib29sPihrZXlTdGF0
ZSAmIFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXkpOwogCiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VF
dmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1v
dmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCBjOGQ1YTZlNWVjMjhkY2JhMWVlYTM0NDczZjA0NjFjMjNlZjQx
NmNjLi5hZGY1ZWIwZDMxYjJlNTZhNjMwNjY3NjY3Nzk0MjY3MGY0YTM5YjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yMjEsMTggKzIyMSwxOCBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fcm90YXRpb25BbmdsZSA9IHJvdGF0aW9uQW5nbGVEZWZhdWx0VmFsdWU7CiAgICAg
ICAgIG1fZm9yY2UgPSBmb3JjZURlZmF1bHRWYWx1ZTsKIAotICAgICAgICBQbGF0Zm9ybUV2ZW50
OjpUeXBlIHR5cGUgPSBldmVudC50eXBlKCk7Ci0gICAgICAgIEFTU0VSVCh0eXBlID09IFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQgfHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQgfHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkKTsKKyAgICAgICAgUGxh
dGZvcm1FdmVudFR5cGUgdHlwZSA9IGV2ZW50LnR5cGUoKTsKKyAgICAgICAgQVNTRVJUKHR5cGUg
PT0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQgfHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50
VHlwZTo6TW91c2VQcmVzc2VkIHx8IHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVs
ZWFzZWQpOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQ6Ci0gICAgICAgICAgICBtX3N0YXRlID0gVG91Y2hNb3ZlZDsKKyAg
ICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZDoKKyAgICAgICAgICAgIG1f
c3RhdGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hNb3ZlZDsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDoKLSAgICAgICAgICAg
IG1fc3RhdGUgPSBUb3VjaFByZXNzZWQ7CisgICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6
Ok1vdXNlUHJlc3NlZDoKKyAgICAgICAgICAgIG1fc3RhdGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6
VG91Y2hQcmVzc2VkOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6TW91c2VSZWxlYXNlZDoKLSAgICAgICAgICAgIG1fc3RhdGUgPSBUb3VjaFJlbGVhc2Vk
OworICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkOgorICAgICAg
ICAgICAgbV9zdGF0ZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFJlbGVhc2VkOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTI0NiwxNCArMjQ2LDE0IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBTeW50
aGV0aWNTaW5nbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAg
ICAgewogICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewotICAgICAgICBjYXNlIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQ6Ci0gICAgICAgICAgICBtX3R5cGUgPSBUb3VjaE1vdmU7Cisg
ICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQ6CisgICAgICAgICAgICBt
X3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hNb3ZlOwogICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOgotICAgICAgICAgICAg
bV90eXBlID0gVG91Y2hTdGFydDsKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91
c2VQcmVzc2VkOgorICAgICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudFR5cGU6OlRvdWNo
U3RhcnQ7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVJlbGVhc2VkOgotICAgICAgICAgICAgbV90eXBlID0gVG91Y2hFbmQ7CisgICAgICAgIGNh
c2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQ6CisgICAgICAgICAgICBtX3R5cGUg
PSBQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hFbmQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzY5LDcg
KzM2OSw3IEBAIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lJiBmcmFtZSkKICAgICAs
IG1fdG91Y2hQcmVzc2VkKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX21heE1vdXNlTW92ZWREdXJh
dGlvbigwKQotICAgICwgbV9iYXNlRXZlbnRUeXBlKFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSkKKyAg
ICAsIG1fYmFzZUV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50VHlwZTo6Tm9UeXBlKQogICAgICwgbV9k
aWRTdGFydERyYWcoZmFsc2UpCiAgICAgLCBtX2RpZExvbmdQcmVzc0ludm9rZUNvbnRleHRNZW51
KGZhbHNlKQogICAgICwgbV9pc0hhbmRsaW5nV2hlZWxFdmVudChmYWxzZSkKQEAgLTQ0OCw3ICs0
NDgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogICAgIG1fb3JpZ2luYXRpbmdUb3Vj
aFBvaW50VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9u
ID0gMDsKLSAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CisgICAg
bV9iYXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok5vVHlwZTsKICAgICBtX2RpZFN0
YXJ0RHJhZyA9IGZhbHNlOwogICAgIG1fZGlkTG9uZ1ByZXNzSW52b2tlQ29udGV4dE1lbnUgPSBm
YWxzZTsKIH0KQEAgLTE5ODYsMTAgKzE5ODYsMTAgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVBhc3RlR2xvYmFsU2VsZWN0aW9uKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmUK
ICAgICAvLyBjbGVhcnMgdGhlIHRleHQgYm94LiBTbyBpdCdzIGltcG9ydGFudCB0aGlzIGhhcHBl
bnMgYWZ0ZXIgdGhlIGV2ZW50CiAgICAgLy8gaGFuZGxlcnMgaGF2ZSBiZWVuIGZpcmVkLgogI2lm
IFBMQVRGT1JNKEdUSykKLSAgICBpZiAobW91c2VFdmVudC50eXBlKCkgIT0gUGxhdGZvcm1FdmVu
dDo6TW91c2VQcmVzc2VkKQorICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2
ZW50VHlwZTo6TW91c2VQcmVzc2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQotICAg
IGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkKQor
ICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxl
YXNlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKQEAgLTI1MTQsNyArMjUxNCw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZSkKICAgICAvLyBJbnN0ZWFkLCB0aGUgaGFuZGxlcnMgc2hvdWxkIGtub3cgY29u
dmVydCB2ZXJ0aWNhbCBzY3JvbGxzCiAgICAgLy8gYXBwcm9wcmlhdGVseS4KICAgICBQbGF0Zm9y
bVdoZWVsRXZlbnQgZXZlbnQgPSBlOwotICAgIGlmIChtX2Jhc2VFdmVudFR5cGUgPT0gUGxhdGZv
cm1FdmVudDo6Tm9UeXBlICYmIHNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250YWwo
cmVzdWx0LCBlKSkKKyAgICBpZiAobV9iYXNlRXZlbnRUeXBlID09IFBsYXRmb3JtRXZlbnRUeXBl
OjpOb1R5cGUgJiYgc2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChyZXN1bHQs
IGUpKQogICAgICAgICBldmVudCA9IGV2ZW50LmNvcHlUdXJuaW5nVmVydGljYWxUaWNrc0ludG9I
b3Jpem9udGFsVGlja3MoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI2ODAsOSArMjY4MCw5
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAg
Ly8gVGhpcyBpcyByZXF1aXJlZCBmb3Igd2ViIGNvbXBhdGliaWxpdHkuCiAKICNpZiBPUyhXSU5E
T1dTKQotICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6
TW91c2VSZWxlYXNlZDsKKyAgICBQbGF0Zm9ybUV2ZW50VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9y
bUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZDsKICNlbHNlCi0gICAgUGxhdGZvcm1FdmVudDo6VHlw
ZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgUGxhdGZvcm1F
dmVudFR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZDsKICNl
bmRpZgogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9zaXRpb24sIGdsb2Jh
bFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKQEAgLTI3NjcsNyArMjc2Nyw3IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFu
ZGxlcj4mIHRpbWVyKQogICAgIGJvb2wgYWx0S2V5OwogICAgIGJvb2wgbWV0YUtleTsKICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5LCBj
dHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91
c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xv
YmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKKyAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlv
biwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXks
IGN1cnJlbnRUaW1lKCkpOwogICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNlTW92ZUV2ZW50KTsKIH0K
IApAQCAtMjgyOSw3ICsyODI5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmlzS2V5RXZlbnRBbGxv
d2VkSW5GdWxsU2NyZWVuKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2UKICAgICBpZiAo
ZG9jdW1lbnQtPndlYmtpdEZ1bGxTY3JlZW5LZXlib2FyZElucHV0QWxsb3dlZCgpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChrZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpDaGFyKSB7CisgICAgaWYgKGtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2
ZW50VHlwZTo6Q2hhcikgewogICAgICAgICBpZiAoa2V5RXZlbnQudGV4dCgpLmxlbmd0aCgpICE9
IDEpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9
IGtleUV2ZW50LnRleHQoKVswXTsKQEAgLTI4NTksNyArMjg1OSw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVu
dCkKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICBpZiAobV9mcmFtZS5tYWluRnJhbWUo
KS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsKICAgICAgICAgLy8gSWYg
YSBrZXkgaXMgcHJlc3NlZCB3aGlsZSB0aGUgcGFuU2Nyb2xsIGlzIGluIHByb2dyZXNzIHRoZW4g
d2Ugd2FudCB0byBzdG9wCi0gICAgICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlwZSgpID09IFBs
YXRmb3JtRXZlbnQ6OktleURvd24gfHwgaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9y
bUV2ZW50OjpSYXdLZXlEb3duKQorICAgICAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9
PSBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93biB8fCBpbml0aWFsS2V5RXZlbnQudHlwZSgpID09
IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKQogICAgICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwogCiAgICAgICAgIC8vIElmIHdlIHdlcmUgaW4gcGFuc2Nyb2xsIG1vZGUsIHdl
IHN3YWxsb3cgdGhlIGtleSBldmVudApAQCAtMjg4OCwyNCArMjg4OCwyNCBAQCBib29sIEV2ZW50
SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5
RXZlbnQpCiAgICAgLy8gT24gV2luZG93cywgV2ViS2l0IGV4cGxpY2l0bHkgY2FsbHMgaGFuZGxl
QWNjZXNzS2V5KCkgaW5zdGVhZCBvZiBkaXNwYXRjaGluZyBhIGtleXByZXNzIGV2ZW50IGZvciBX
TV9TWVNDSEFSIG1lc3NhZ2VzLgogICAgIC8vIE90aGVyIHBsYXRmb3JtcyBjdXJyZW50bHkgbWF0
Y2ggZWl0aGVyIE1hYyBvciBXaW5kb3dzIGJlaGF2aW9yLCBkZXBlbmRpbmcgb24gd2hldGhlciB0
aGV5IHNlbmQgY29tYmluZWQgS2V5RG93biBldmVudHMuCiAgICAgYm9vbCBtYXRjaGVkQW5BY2Nl
c3NLZXkgPSBmYWxzZTsKLSAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9y
bUV2ZW50OjpLZXlEb3duKQorICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlwZSgpID09IFBsYXRm
b3JtRXZlbnRUeXBlOjpLZXlEb3duKQogICAgICAgICBtYXRjaGVkQW5BY2Nlc3NLZXkgPSBoYW5k
bGVBY2Nlc3NLZXkoaW5pdGlhbEtleUV2ZW50KTsKIAogICAgIC8vIEZJWE1FOiBpdCB3b3VsZCBi
ZSBmYWlyIHRvIGxldCBhbiBpbnB1dCBtZXRob2QgaGFuZGxlIEtleVVwIGV2ZW50cyBiZWZvcmUg
RE9NIGRpc3BhdGNoLgotICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlwZSgpID09IFBsYXRmb3Jt
RXZlbnQ6OktleVVwIHx8IGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6
Q2hhcikKKyAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6S2V5VXAgfHwgaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6
Q2hhcikKICAgICAgICAgcmV0dXJuICFlbGVtZW50LT5kaXNwYXRjaEtleUV2ZW50KGluaXRpYWxL
ZXlFdmVudCk7CiAKICAgICBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBuZWVkc0tl
eWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcygpOwogCiAgICAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50IGtleURvd25FdmVudCA9IGluaXRpYWxLZXlFdmVudDsgICAgCi0gICAgaWYgKGtleURv
d25FdmVudC50eXBlKCkgIT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikKLSAgICAgICAga2V5
RG93bkV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duLCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKTsKKyAgICBpZiAoa2V5RG93bkV2ZW50LnR5
cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bikKKyAgICAgICAga2V5RG93bkV2
ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93
biwgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAgICAgUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGtleWRvd24gPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoa2V5RG93bkV2ZW50LCBtX2ZyYW1lLmRv
Y3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIGlmIChtYXRjaGVkQW5BY2Nlc3NLZXkpCiAg
ICAgICAgIGtleWRvd24tPnNldERlZmF1bHRQcmV2ZW50ZWQodHJ1ZSk7CiAgICAga2V5ZG93bi0+
c2V0VGFyZ2V0KGVsZW1lbnQpOwogCi0gICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlw
ZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIGVsZW1lbnQt
PmRpc3BhdGNoRXZlbnQoa2V5ZG93biwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgICAgIC8vIElm
IGZyYW1lIGNoYW5nZWQgYXMgYSByZXN1bHQgb2Yga2V5ZG93biBkaXNwYXRjaCwgdGhlbiByZXR1
cm4gdHJ1ZSB0byBhdm9pZCBzZW5kaW5nIGEgc3Vic2VxdWVudCBrZXlwcmVzcyBtZXNzYWdlIHRv
IHRoZSBuZXcgZnJhbWUuCiAgICAgICAgIGJvb2wgY2hhbmdlZEZvY3VzZWRGcmFtZSA9IG1fZnJh
bWUucGFnZSgpICYmICZtX2ZyYW1lICE9ICZtX2ZyYW1lLnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVy
KCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CkBAIC0yOTQ0LDcgKzI5NDQsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5
RXZlbnQpCiAgICAgfQogCiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleVByZXNzRXZlbnQg
PSBpbml0aWFsS2V5RXZlbnQ7Ci0gICAga2V5UHJlc3NFdmVudC5kaXNhbWJpZ3VhdGVLZXlEb3du
RXZlbnQoUGxhdGZvcm1FdmVudDo6Q2hhciwgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSk7Cisg
ICAga2V5UHJlc3NFdmVudC5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudFR5
cGU6OkNoYXIsIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogICAgIGlmIChrZXlQcmVzc0V2
ZW50LnRleHQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBrZXlkb3duUmVzdWx0OwogICAg
IFJlZlB0cjxLZXlib2FyZEV2ZW50PiBrZXlwcmVzcyA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShr
ZXlQcmVzc0V2ZW50LCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwpAQCAtMzEz
OCw3ICszMTM4LDcgQEAgc3RhdGljIGJvb2wgRXhhY3RseU9uZUJpdFNldChEcmFnU291cmNlQWN0
aW9uIG4pCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBDaGVja0RyYWdIeXN0ZXJlc2lzIGNoZWNrRHJhZ0h5
c3RlcmVzaXMpCiB7Ci0gICAgaWYgKGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gTGVmdEJ1dHRv
biB8fCBldmVudC5ldmVudCgpLnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkKSB7
CisgICAgaWYgKGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCBldmVudC5l
dmVudCgpLnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCkgewogICAgICAg
ICAvLyBJZiB3ZSBhbGxvd2VkIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBicmlkZ2UgdG8gaGFuZGxl
IGEgZHJhZwogICAgICAgICAvLyBsYXN0IHRpbWUsIHRoZW4gbV9tb3VzZVByZXNzZWQgbWlnaHQg
c3RpbGwgYmUgc2V0LiBTbyB3ZQogICAgICAgICAvLyBjbGVhciBpdCBub3cgdG8gbWFrZSBzdXJl
IHRoZSBuZXh0IG1vdmUgYWZ0ZXIgYSBkcmFnCkBAIC0zMTcxLDcgKzMxNzEsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRz
JiBldmVudCwgQ2hlY2tEcgogICAgIC8vIEZvciBkcmFncyBzdGFydGluZyBpbiB0aGUgc2VsZWN0
aW9uLCB0aGUgdXNlciBtdXN0IHdhaXQgYmV0d2VlbiB0aGUgbW91c2Vkb3duIGFuZCBtb3VzZWRy
YWcsCiAgICAgLy8gb3IgZWxzZSB3ZSBiYWlsIG9uIHRoZSBkcmFnZ2luZyBzdHVmZiBhbmQgYWxs
b3cgc2VsZWN0aW9uIHRvIG9jY3VyCiAgICAgaWYgKG1fbW91c2VEb3duTWF5U3RhcnREcmFnICYm
IG1fZHJhZ01heVN0YXJ0U2VsZWN0aW9uSW5zdGVhZCAmJiAoZHJhZ1N0YXRlKCkudHlwZSAmIERy
YWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24pICYmIGV2ZW50LmV2ZW50KCkudGltZXN0YW1wKCkgLSBt
X21vdXNlRG93blRpbWVzdGFtcCA8IFRleHREcmFnRGVsYXkpIHsKLSAgICAgICAgQVNTRVJUKGV2
ZW50LmV2ZW50KCkudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQpOworICAgICAg
ICBBU1NFUlQoZXZlbnQuZXZlbnQoKS50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNl
TW92ZWQpOwogICAgICAgICBpZiAoKGRyYWdTdGF0ZSgpLnR5cGUgJiBEcmFnU291cmNlQWN0aW9u
SW1hZ2UpKSB7CiAgICAgICAgICAgICAvLyAuLi4gdW5sZXNzIHRoZSBtb3VzZSBpcyBvdmVyIGFu
IGltYWdlLCB0aGVuIHdlIHN0YXJ0IGRyYWdnaW5nIGp1c3QgdGhlIGltYWdlCiAgICAgICAgICAg
ICBkcmFnU3RhdGUoKS50eXBlID0gRHJhZ1NvdXJjZUFjdGlvbkltYWdlOwpAQCAtMzc0MCw4ICsz
NzQwLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVudElm
RW5hYmxlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQKICAgICBpZiAoIW1fZnJhbWUuc2V0dGlu
Z3MoKS5pc1RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gZXZlbnQudHlwZSgpOwot
ICAgIGlmIChldmVudFR5cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCAmJiBldmVudFR5
cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVJlbGVhc2VkKQorICAgIFBsYXRmb3JtRXZlbnRUeXBlIGV2ZW50VHlwZSA9
IGV2ZW50LnR5cGUoKTsKKyAgICBpZiAoZXZlbnRUeXBlICE9IFBsYXRmb3JtRXZlbnRUeXBlOjpN
b3VzZU1vdmVkICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2Vk
ICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7CkBA
IC0zNzUwLDcgKzM3NTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hTeW50aGV0aWNU
b3VjaEV2ZW50SWZFbmFibGVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAvLyBUaGUgb3JkZXIgaXMgaW1wb3J0YW50LiBUaGlzIGNoZWNrIHNo
b3VsZCBmb2xsb3cgdGhlIHN1YmZyYW1lIHRlc3Q6IGh0dHA6Ly93ZWJraXQub3JnL2IvMTExMjky
LgotICAgIGlmIChldmVudFR5cGUgPT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCAmJiAhbV90
b3VjaFByZXNzZWQpCisgICAgaWYgKGV2ZW50VHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91
c2VNb3ZlZCAmJiAhbV90b3VjaFByZXNzZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
U3ludGhldGljU2luZ2xlVG91Y2hFdmVudCB0b3VjaEV2ZW50KGV2ZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCmluZGV4IDY2NTE4NDllYjhjODdkN2E3ZWU4NWE4ZTU1OGZiYjMwMTYz
ZDg2YzUuLmM1YmMyNWVhOWE3ZTg3OTc2NzkxMDEwZTRiYWJlZTE2YjYwZTc3ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNTM2LDcgKzUzNiw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIGRvdWJsZSBtX21heE1vdXNlTW92ZWREdXJhdGlvbjsKLSAgICBQbGF0Zm9ybUV2
ZW50OjpUeXBlIG1fYmFzZUV2ZW50VHlwZTsKKyAgICBQbGF0Zm9ybUV2ZW50VHlwZSBtX2Jhc2VF
dmVudFR5cGU7CiAgICAgYm9vbCBtX2RpZFN0YXJ0RHJhZzsKICAgICBib29sIG1fZGlkTG9uZ1By
ZXNzSW52b2tlQ29udGV4dE1lbnU7CiAgICAgYm9vbCBtX2lzSGFuZGxpbmdXaGVlbEV2ZW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDUzM2E5MjRkMTJjZjQw
MzcxMzY0ODUxMGM3NmYxMGVhZmZhYjFhOTMuLjkxMGJlYmNiMjQzMDdhNmQ3NzEwOTYyNjlhNjI3
M2Q2ZmZlYTZiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAg
LTI4LDM1ICsyOCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBsYXRmb3Jt
RXZlbnQgewotcHVibGljOgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIE5vVHlwZSA9IDAsCitl
bnVtIGNsYXNzIFBsYXRmb3JtRXZlbnRUeXBlIHsKKyAgICBOb1R5cGUgPSAwLAogCi0gICAgICAg
IC8vIFBsYXRmb3JtS2V5Ym9hcmRFdmVudAotICAgICAgICBLZXlEb3duLAotICAgICAgICBLZXlV
cCwKLSAgICAgICAgUmF3S2V5RG93biwKLSAgICAgICAgQ2hhciwKKyAgICAvLyBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQKKyAgICBLZXlEb3duLAorICAgIEtleVVwLAorICAgIFJhd0tleURvd24sCisg
ICAgQ2hhciwKIAotICAgICAgICAvLyBQbGF0Zm9ybU1vdXNlRXZlbnQKLSAgICAgICAgTW91c2VN
b3ZlZCwKLSAgICAgICAgTW91c2VQcmVzc2VkLAotICAgICAgICBNb3VzZVJlbGVhc2VkLAotICAg
ICAgICBNb3VzZVNjcm9sbCwKKyAgICAvLyBQbGF0Zm9ybU1vdXNlRXZlbnQKKyAgICBNb3VzZU1v
dmVkLAorICAgIE1vdXNlUHJlc3NlZCwKKyAgICBNb3VzZVJlbGVhc2VkLAorICAgIE1vdXNlU2Ny
b2xsLAogCi0gICAgICAgIC8vIFBsYXRmb3JtV2hlZWxFdmVudAotICAgICAgICBXaGVlbCwKKyAg
ICAvLyBQbGF0Zm9ybVdoZWVsRXZlbnQKKyAgICBXaGVlbCwKIAogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCi0gICAgICAgIC8vIFBsYXRmb3JtVG91Y2hFdmVudAotICAgICAgICBUb3VjaFN0YXJ0
LAotICAgICAgICBUb3VjaE1vdmUsCi0gICAgICAgIFRvdWNoRW5kLAotICAgICAgICBUb3VjaENh
bmNlbCwKKyAgICAvLyBQbGF0Zm9ybVRvdWNoRXZlbnQKKyAgICBUb3VjaFN0YXJ0LAorICAgIFRv
dWNoTW92ZSwKKyAgICBUb3VjaEVuZCwKKyAgICBUb3VjaENhbmNlbCwKICNlbmRpZgotICAgIH07
Cit9OwogCitjbGFzcyBQbGF0Zm9ybUV2ZW50IHsKK3B1YmxpYzoKICAgICBlbnVtIE1vZGlmaWVy
cyB7CiAgICAgICAgIEFsdEtleSAgICAgID0gMSA8PCAwLAogICAgICAgICBDdHJsS2V5ICAgICA9
IDEgPDwgMSwKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgICAgICBTaGlmdEtleSAgICA9
IDEgPDwgMywKICAgICB9OwogCi0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VHlwZT4obV90eXBlKTsgfQorICAgIFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIGJvb2wgc2hpZnRLZXkoKSBjb25zdCB7IHJldHVy
biBtX21vZGlmaWVycyAmIFNoaWZ0S2V5OyB9CiAgICAgYm9vbCBjdHJsS2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tb2RpZmllcnMgJiBDdHJsS2V5OyB9CkBAIC03NywyNyArNzcsMjcgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCi0gICAgICAgIDogbV90eXBlKE5v
VHlwZSkKKyAgICAgICAgOiBtX3R5cGUoUGxhdGZvcm1FdmVudFR5cGU6Ok5vVHlwZSkKICAgICAg
ICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAsIG1fdGltZXN0YW1wKDApCiAgICAgewogICAg
IH0KIAotICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlKQorICAgIGV4cGxpY2l0
IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAsIG1fdGltZXN0YW1wKDAp
CiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1F
dmVudFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKICAg
ICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAg
ICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKICAgICB9CiAKLSAgICBQbGF0
Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFs
dEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlw
ZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZpZXJzKDApCiAgICAgICAgICwgbV90aW1lc3RhbXAo
dGltZXN0YW1wKQpAQCAtMTE4LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQog
Ci0gICAgdW5zaWduZWQgbV90eXBlOworICAgIFBsYXRmb3JtRXZlbnRUeXBlIG1fdHlwZTsKICAg
ICB1bnNpZ25lZCBtX21vZGlmaWVyczsKICAgICBkb3VibGUgbV90aW1lc3RhbXA7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAppbmRleCA2
MDBiODcwZTNlODE3ZTk0YWY3M2FlMzk4NjdiZDVkMzdkYTBhZTYxLi41OWEwODFmOTllNjg3ZmZh
NDFkOTJmMGYzZTZhMDIyMmFkYjBmODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKICAg
ICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50KCkKLSAgICAgICAgICAgIDogUGxhdGZvcm1FdmVu
dChQbGF0Zm9ybUV2ZW50OjpLZXlEb3duKQorICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBs
YXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKQogICAgICAgICAgICAgLCBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSgwKQogICAgICAgICAgICAgLCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlKDApCiAgICAg
ICAgICAgICAsIG1fbWFjQ2hhckNvZGUoMCkKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFs
S2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wg
aXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJp
bmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwg
TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxh
dGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90
ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQp
CkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAg
ICB9CiAKLSAgICAgICAgdm9pZCBkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSwgYm9vbCBi
YWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2UpOyAvLyBPbmx5IHVzZWQgb24gcGxhdGZv
cm1zIHRoYXQgbmVlZCBpdCwgaS5lLiB0aG9zZSB0aGF0IGdlbmVyYXRlIEtleURvd24gZXZlbnRz
LgorICAgICAgICB2b2lkIGRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50VHlw
ZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2UpOyAvLyBPbmx5IHVzZWQg
b24gcGxhdGZvcm1zIHRoYXQgbmVlZCBpdCwgaS5lLiB0aG9zZSB0aGF0IGdlbmVyYXRlIEtleURv
d24gZXZlbnRzLgogCiAgICAgICAgIC8vIFRleHQgYXMgYXMgZ2VuZXJhdGVkIGJ5IHByb2Nlc3Np
bmcgYSB2aXJ0dWFsIGtleSBjb2RlIHdpdGggYSBrZXlib2FyZCBsYXlvdXQKICAgICAgICAgLy8g
KGluIG1vc3QgY2FzZXMsIGp1c3QgYSBjaGFyYWN0ZXIgY29kZSwgYnV0IHRoZSBsYXlvdXQgY2Fu
IGVtaXQgc2V2ZXJhbApAQCAtMTI4LDcgKzEyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
SFdORCwgV1BBUkFNLCBMUEFSQU0sIFR5cGUsIGJvb2wpOworICAgICAgICBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQoSFdORCwgV1BBUkFNLCBMUEFSQU0sIFBsYXRmb3JtRXZlbnRUeXBlLCBib29sKTsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCA0Zjc0Mzk5OTY5YzFlMmJhYTViODdjNTlkYTA3NzU4
MDZkZDU3ZGQxLi5iMTFhY2U1NzdiNDI1YWFlNzAwMzdiZTFiNTMyZWYxNzAyZWVkNDIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaApAQCAtNDksNyAr
NDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50
IDogcHVibGljIFBsYXRmb3JtRXZlbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgUGxhdGZvcm1N
b3VzZUV2ZW50KCkKLSAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpN
b3VzZU1vdmVkKQorICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBl
OjpNb3VzZU1vdmVkKQogICAgICAgICAgICAgLCBtX2J1dHRvbihOb0J1dHRvbikKICAgICAgICAg
ICAgICwgbV9jbGlja0NvdW50KDApCiAgICAgICAgICAgICAsIG1fbW9kaWZpZXJGbGFncygwKQpA
QCAtNjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAg
fQogCi0gICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCisgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VC
dXR0b24gYnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDog
UGxhdGZvcm1FdmVudCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0
aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCmluZGV4IDIxZTMwNmRkNWU5MmJm
MmZkMjU1YzM1MDMxYzFlODA0NGZjZGJhYzMuLmZiMTk4Yzk5MzI2OTFmZDY4OGY0NzhkM2MxNTFi
MzIxOTBmMzIzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
VG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hF
dmVudC5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBsYXRm
b3JtVG91Y2hFdmVudCA6IHB1YmxpYyBQbGF0Zm9ybUV2ZW50IHsKIHB1YmxpYzoKICAgICBQbGF0
Zm9ybVRvdWNoRXZlbnQoKQotICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6
VG91Y2hTdGFydCkKKyAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpU
b3VjaFN0YXJ0KQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmgKaW5kZXggODFlYTI3NmRjMzFiZWYzN2FiZmJlZGJiNDFkNjEzZmY0
ZGU3NjNjNi4uYjYyMDljM2NkNzg1OGJjYmZmZjUwMmE3Yzk1YjZiMTVkODYxZjM5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTY4LDcgKzY4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudCA6
IHB1YmxpYyBQbGF0Zm9ybUV2ZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCgpCi0gICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hl
ZWwpCisgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OldoZWVs
KQogICAgICAgICAgICAgLCBtX2RlbHRhWCgwKQogICAgICAgICAgICAgLCBtX2RlbHRhWSgwKQog
ICAgICAgICAgICAgLCBtX3doZWVsVGlja3NYKDApCkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQ
b2ludCBwb3NpdGlvbiwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxv
YXQgZGVsdGFZLCBmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3Jt
V2hlZWxFdmVudEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAgICAgICA6IFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1l
dGFLZXksIDApCisgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6
OldoZWVsLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQogICAgICAgICAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9u
KGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2RlbHRhWChkZWx0YVgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1LZXlib2FyZEV2ZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRF
ZmwuY3BwCmluZGV4IGM4MWRlM2Q4Mzc4MmYxOTZhNWRhNDA4ZjIyMjgzMDM0ZTM2ZWNhZWYuLjk1
ZWNjMWNkOGQ3NGZmNmRhN2FiMTM5ZDQ2ZWRkMTNlZGY1OTJiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3Bw
CkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24q
IGV2ZW50KQotICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpLZXlEb3duLCBldmFz
X2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5
X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9t
b2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmll
cl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKKyAgICA6
IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OktleURvd24sIGV2YXNfa2V5X21vZGlm
aWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJf
aXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVyX2lz
X3NldChldmVudC0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChl
dmVudC0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQogICAgICwgbV90ZXh0KFN0
cmluZzo6ZnJvbVVURjgoZXZlbnQtPnN0cmluZykpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KFN0
cmluZzo6ZnJvbVVURjgoZXZlbnQtPnN0cmluZykpCiAgICAgLCBtX2tleUlkZW50aWZpZXIoa2V5
SWRlbnRpZmllckZvckV2YXNLZXlOYW1lKFN0cmluZyhldmVudC0+a2V5KSkpCkBAIC01NCw3ICs1
NCw3IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0
IEV2YXNfRXZlbnRfS2V5X0Rvd24qIGV2ZW50KQogfQogCiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChjb25zdCBFdmFzX0V2ZW50X0tleV9VcCogZXZlbnQpCi0g
ICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OktleVVwLCBldmFzX2tleV9tb2RpZmll
cl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lz
X3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19z
ZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZl
bnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKKyAgICA6IFBsYXRmb3JtRXZl
bnQoUGxhdGZvcm1FdmVudFR5cGU6OktleVVwLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZl
bnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+
bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1v
ZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVy
cywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKICAgICAsIG1fdGV4dChTdHJpbmc6OmZyb21VVEY4
KGV2ZW50LT5zdHJpbmcpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dChTdHJpbmc6OmZyb21VVEY4
KGV2ZW50LT5zdHJpbmcpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKGtleUlkZW50aWZpZXJGb3JF
dmFzS2V5TmFtZShTdHJpbmcoZXZlbnQtPmtleSkpKQpAQCAtNjcsMTIgKzY3LDEyIEBAIFBsYXRm
b3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRf
S2V5X1VwKiBldmVudCkKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2Ft
YmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wpCit2b2lkIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUs
IGJvb2wpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKICAgICBtX3R5cGUgPSB0
eXBlOwogCi0gICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAg
IGlmICh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIG1f
dGV4dCA9IFN0cmluZygpOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKCk7CiAg
ICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0
Zm9ybU1vdXNlRXZlbnRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRm
b3JtTW91c2VFdmVudEVmbC5jcHAKaW5kZXggOWVkODk4OTVkOTAzNGE0YTA0NzExYTUyYzA0ZGZm
NjQ5ZGE4ZjY3OC4uMGE4ZDZhZGVmMzQ2ZjQzNzQwZTliZjdjMjQ2MzUyMjAxYTAzMTczMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVu
dEVmbC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OnNldENs
aWNrQ291bnQodW5zaWduZWQgaW50IGZsYWdzKQogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBs
YXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2ZW50LCBJbnRQ
b2ludCBwb3NpdGlvbikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6TW91c2VQ
cmVzc2VkLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0
IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIp
LCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFz
X2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRp
bWUoKSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3Nl
ZCwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlmdCIpLCBl
dmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wiKSwgZXZh
c19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZhc19rZXlf
bW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRUaW1lKCkp
CiAgICAgLCBtX3Bvc2l0aW9uKEludFBvaW50KGV2ZW50LT5jYW52YXMueCAtIHBvc2l0aW9uLngo
KSwgZXZlbnQtPmNhbnZhcy55IC0gcG9zaXRpb24ueSgpKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oSW50UG9pbnQoZXZlbnQtPmNhbnZhcy54LCBldmVudC0+Y2FudmFzLnkpKQogICAgICwgbV9i
dXR0b24oTW91c2VCdXR0b24oZXZlbnQtPmJ1dHRvbiAtIDEpKQpAQCAtNTcsNyArNTcsNyBAQCBQ
bGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01v
dXNlX0Rvd24qIGV2ZW50LCBJbnRQbwogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3Jt
TW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKiBldmVudCwgSW50UG9pbnQgcG9z
aXRpb24pCi0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQs
IGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZh
c19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNf
a2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21v
ZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQor
ICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZCwgZXZh
c19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlmdCIpLCBldmFzX2tl
eV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wiKSwgZXZhc19rZXlf
bW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZhc19rZXlfbW9kaWZp
ZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRUaW1lKCkpCiAgICAg
LCBtX3Bvc2l0aW9uKEludFBvaW50KGV2ZW50LT5jYW52YXMueCAtIHBvc2l0aW9uLngoKSwgZXZl
bnQtPmNhbnZhcy55IC0gcG9zaXRpb24ueSgpKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oSW50
UG9pbnQoZXZlbnQtPmNhbnZhcy54LCBldmVudC0+Y2FudmFzLnkpKQogICAgICwgbV9idXR0b24o
TW91c2VCdXR0b24oZXZlbnQtPmJ1dHRvbiAtIDEpKQpAQCAtNjYsNyArNjYsNyBAQCBQbGF0Zm9y
bU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1Vw
KiBldmVudCwgSW50UG9pbgogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VF
dmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX01vdmUqIGV2ZW50LCBJbnRQb2ludCBwb3NpdGlv
bikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgZXZhc19r
ZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlmdCIpLCBldmFzX2tleV9t
b2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wiKSwgZXZhc19rZXlfbW9k
aWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZhc19rZXlfbW9kaWZpZXJf
aXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQ
bGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkLCBldmFzX2tleV9tb2Rp
Zmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVy
X2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9p
c19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQo
ZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKICAgICAsIG1fcG9zaXRp
b24oSW50UG9pbnQoZXZlbnQtPmN1ci5jYW52YXMueCAtIHBvc2l0aW9uLngoKSwgZXZlbnQtPmN1
ci5jYW52YXMueSAtIHBvc2l0aW9uLnkoKSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKEludFBv
aW50KGV2ZW50LT5jdXIuY2FudmFzLngsIGV2ZW50LT5jdXIuY2FudmFzLnkpKQogICAgICwgbV9i
dXR0b24oTW91c2VCdXR0b24oZXZlbnQtPmJ1dHRvbnMgLSAxKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKaW5kZXggYThh
ZGJkNzMzMWNlOWUwODYyNWQxOTM4ZDMwYzY1OWE2NDhiY2E4Ni4uNTMzNTBmYzAwNmFmNWM1ZmQw
MDc2MTkyYmFkN2Y1NTJhYmYyNmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgZW51
bSB7CiB9OwogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChjb25zdCBF
dmFzX0V2ZW50X01vdXNlX1doZWVsKiBldikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1F
dmVudDo6V2hlZWwsIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiU2hp
ZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2LT5tb2RpZmllcnMsICJDb250cm9sIiks
IGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5
X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQor
ICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWwsIGV2YXNfa2V5X21v
ZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJf
aXNfc2V0KGV2LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3Nl
dChldi0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9k
aWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQogICAgICwgbV9wb3NpdGlvbihJbnRQb2lu
dChldi0+Y2FudmFzLngsIGV2LT5jYW52YXMueSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKElu
dFBvaW50KGV2LT5jYW52YXMueCwgZXYtPmNhbnZhcy55KSkKICAgICAsIG1fZ3JhbnVsYXJpdHko
U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IDcwNmQ2ZTI1Yzk5
MDA1YTI0MjAwY2E5ZDRmMDUwMjU1ZmUyMmY0YzYuLjA2NTViNzhlMGIxNDMyMjBiMGI5MmQ0Nzk0
OWE5ZDZlZmZkM2ZmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC01NTAsOSArNTUwLDkgQEAgU3Ry
aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKHVuc2lnbmVk
IHZhbCkKICAgICB9CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIGV2ZW50VHlwZUZv
ckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBldmVudCkKK3N0YXRpYyBQbGF0Zm9ybUV2ZW50VHlw
ZSBldmVudFR5cGVGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCiB7Ci0gICAgcmV0
dXJuIGV2ZW50LT50eXBlID09IEdES19LRVlfUkVMRUFTRSA/IFBsYXRmb3JtRXZlbnQ6OktleVVw
IDogUGxhdGZvcm1FdmVudDo6S2V5RG93bjsKKyAgICByZXR1cm4gZXZlbnQtPnR5cGUgPT0gR0RL
X0tFWV9SRUxFQVNFID8gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwIDogUGxhdGZvcm1FdmVudFR5
cGU6OktleURvd247CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMgbW9kaWZp
ZXJzRm9yR2RrS2V5RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50KQpAQCAtNTg5LDcgKzU4OSw3IEBA
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEdka0V2ZW50S2V5
KiBldmVudCwgY29uc3QgQ29tcG9zaXRpCiAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2Rl
ID0gVktfUFJPQ0VTU0tFWTsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2Ft
YmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5
TW9kZSkKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZl
bnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2Rl
KQogewogICAgIC8vIENhbiBvbmx5IGNoYW5nZSB0eXBlIGZyb20gS2V5RG93biB0byBSYXdLZXlE
b3duIG9yIENoYXIsIGFzIHdlIGxhY2sgaW5mb3JtYXRpb24gZm9yIG90aGVyIGNvbnZlcnNpb25z
LgogICAgIEFTU0VSVChtX3R5cGUgPT0gS2V5RG93bik7CkBAIC01OTgsMTAgKzU5OCwxMCBAQCB2
b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUg
dHlwZSwgYm9vbCBiYWNrd2FyZENvbQogICAgIGlmIChiYWNrd2FyZENvbXBhdGliaWxpdHlNb2Rl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdL
ZXlEb3duKSB7CisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24p
IHsKICAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQg
PSBTdHJpbmcoKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhciAm
JiBtX2NvbXBvc2l0aW9uUmVzdWx0cy5jb21wb3NpdGlvblVwZGF0ZWQoKSkgeworICAgIH0gZWxz
ZSBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhciAmJiBtX2NvbXBvc2l0aW9uUmVz
dWx0cy5jb21wb3NpdGlvblVwZGF0ZWQoKSkgewogICAgICAgICAvLyBIYXZpbmcgZW1wdHkgdGV4
dCwgcHJldmVudHMgdGhpcyBDaGFyICh3aGljaCBpcyBhIERPTSBrZXlwcmVzcykgZXZlbnQKICAg
ICAgICAgLy8gZnJvbSBnb2luZyB0byB0aGUgRE9NLiBLZXlzIHRoYXQgdHJpZ2dlciBjb21wb3Np
dGlvbiBldmVudHMgc2hvdWxkIG5vdAogICAgICAgICAvLyBmaXJlIGtleXByZXNzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNw
cAppbmRleCAwNDEwMWMxZmEzZDcyODY2Y2JjOTUzZjg0YjU3Mjg1OTM3ZjMyMTNkLi5jNjY0MGI2
MTYyYzIzNDBmMGUwZTY0MWM1ZGEyNWE2OWRmZGI0ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcApAQCAtNTcsOSAr
NTcsOSBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1
dHRvbiogZXZlbnQpCiAgICAgY2FzZSBHREtfMkJVVFRPTl9QUkVTUzoKICAgICBjYXNlIEdES18z
QlVUVE9OX1BSRVNTOgogICAgIGNhc2UgR0RLX0JVVFRPTl9SRUxFQVNFOgotICAgICAgICBtX3R5
cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgIG1fdHlwZSA9IFBsYXRm
b3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSA9PSBH
REtfQlVUVE9OX1JFTEVBU0UpIHsKLSAgICAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUmVsZWFzZWQ7CisgICAgICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6
TW91c2VSZWxlYXNlZDsKICAgICAgICAgICAgIG1fY2xpY2tDb3VudCA9IDA7CiAgICAgICAgIH0g
ZWxzZSBpZiAoZXZlbnQtPnR5cGUgPT0gR0RLX0JVVFRPTl9QUkVTUykKICAgICAgICAgICAgIG1f
Y2xpY2tDb3VudCA9IDE7CkBAIC05OSw3ICs5OSw3IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxh
dGZvcm1Nb3VzZUV2ZW50KEdka0V2ZW50TW90aW9uKiBtb3Rpb24pCiAKICAgICBzd2l0Y2ggKG1v
dGlvbi0+dHlwZSkgewogICAgIGNhc2UgR0RLX01PVElPTl9OT1RJRlk6Ci0gICAgICAgIG1fdHlw
ZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgIG1fdHlwZSA9IFBsYXRmb3Jt
RXZlbnRUeXBlOjpNb3VzZU1vdmVkOwogICAgICAgICBtX2J1dHRvbiA9IE5vQnV0dG9uOwogICAg
ICAgICBtX2NsaWNrQ291bnQgPSAwOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKaW5kZXggNTIw
YmY5YTg5ZDc2ZDA1ZjUyOGVkMzQ5ZGUwNTM2NzI3MTJkZjhhNy4uMDc4ZTQ0MDliYjg2YmU1NmJi
N2VhZDQ0MjM3NjgxOGM0YjgxY2JjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgUGxh
dGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2RrRXZlbnRTY3JvbGwqIGV2ZW50
KQogewogICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkZWx0YSA9IDE7CiAKLSAgICBtX3R5cGUgPSBQ
bGF0Zm9ybUV2ZW50OjpXaGVlbDsKKyAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6V2hl
ZWw7CiAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwogCiAgICAgbV9tb2RpZmllcnMg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCmluZGV4IDM5
MWI2YWE5OTMwYjFiYTRkMjA1MDBkN2ZhNzc2ZDBkNTI3NmNlODMuLjMxYWU1MDE0YzkyNjBmMGFi
YzNlNDM4OGQwZjhkZGQwOWQ1MDEzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9LZXlFdmVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
S2V5RXZlbnRJT1MubW0KQEAgLTM0LDcgKzM0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1i
aWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlN
b2RlKQordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVu
dChQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUp
CiB7CiAgICAgLy8gQ2FuIG9ubHkgY2hhbmdlIHR5cGUgZnJvbSBLZXlEb3duIHRvIFJhd0tleURv
d24gb3IgQ2hhciwgYXMgd2UgbGFjayBpbmZvcm1hdGlvbiBmb3Igb3RoZXIgY29udmVyc2lvbnMu
CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUs
IGJvb2wgYmFja3dhcmRDb20KICAgICBpZiAoYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93
bikgeworICAgIGlmICh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAg
ICAgICAgIG1fdGV4dCA9IFN0cmluZygpOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3Ry
aW5nKCk7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCA5NDk1MWRlMWM1M2ZlNDc4YmVj
ZDg0ZTMxOTg1NzhiYzI1MWZlNzU3Li45ZjI2ZjAzZjkxMGU3ZjgyYmFkNTRkNWMzN2JhNDAwMDEz
MjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1F
dmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRm
b3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC02MSwxOCArNjEsMTggQEAgc3RhdGljIGlubGluZSBJ
bnRQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KFdlYkV2ZW50ICpldmVudCkKICAgICByZXR1cm4g
cG9pbnRGb3JFdmVudChldmVudCk7CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1v
dXNlRXZlbnRUeXBlKFdlYkV2ZW50ICpldmVudCkKK3N0YXRpYyBQbGF0Zm9ybUV2ZW50VHlwZSBt
b3VzZUV2ZW50VHlwZShXZWJFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dpdGNoIChldmVudC50eXBl
KSB7CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlRG93bjoKLSAgICAgICAgcmV0dXJuIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpN
b3VzZVByZXNzZWQ7CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlVXA6Ci0gICAgICAgIHJldHVybiBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlUmVsZWFzZWQ7CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlTW92ZWQ6Ci0gICAg
ICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICByZXR1cm4gUGxh
dGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQ7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQ7CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOwogICAg
IH0KIH0KIApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VS
VChldmVudC50eXBlID09IFdlYkV2ZW50U2Nyb2xsV2hlZWwpOwogCi0gICAgICAgIG1fdHlwZSA9
IFBsYXRmb3JtRXZlbnQ6OldoZWVsOworICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6V2hlZWw7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgbV90aW1lc3RhbXAg
PSBjdXJyZW50VGltZSgpOwogCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlEb3duIHx8IGV2ZW50LnR5cGUg
PT0gV2ViRXZlbnRLZXlVcCk7CiAKLSAgICAgICAgbV90eXBlID0gKGV2ZW50LnR5cGUgPT0gV2Vi
RXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxhdGZvcm1FdmVudDo6S2V5RG93
bik7CisgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0
Zm9ybUV2ZW50VHlwZTo6S2V5VXAgOiBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93bik7CiAgICAg
ICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX3Rp
bWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CiAKQEAgLTE5NywyMCArMTk3LDIwIEBAIHN0YXRpYyBQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VUeXBlIGNvbnZlcnRUb3VjaFBoYXNlKE5TTnVt
YmVyICp0b3VjaFBoYXNlCiAgICAgcmV0dXJuIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQaGFz
ZUJlZ2FuOwogfQogCi1zdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSB0b3VjaEV2ZW50VHlwZShX
ZWJFdmVudCAqZXZlbnQpCitzdGF0aWMgUGxhdGZvcm1FdmVudFR5cGUgdG91Y2hFdmVudFR5cGUo
V2ViRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewogICAgIGNhc2Ug
V2ViRXZlbnRUb3VjaEJlZ2luOgotICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6VG91Y2hT
dGFydDsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0OwogICAg
IGNhc2UgV2ViRXZlbnRUb3VjaEVuZDoKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OlRv
dWNoRW5kOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoRW5kOwogICAg
IGNhc2UgV2ViRXZlbnRUb3VjaENhbmNlbDoKLSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6
OlRvdWNoQ2FuY2VsOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoQ2Fu
Y2VsOwogICAgIGNhc2UgV2ViRXZlbnRUb3VjaENoYW5nZToKLSAgICAgICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpU
b3VjaE1vdmU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpUb3VjaENhbmNlbDsKKyAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaENhbmNlbDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbQppbmRleCAwYWY1MjEy
OGE1M2FkNzEwMDBhNzBkMGQxNmMzOGI0N2I1MTQwZTU5Li4xMzFjYjI1ZWUzMzNkYmE5MTkwNjhi
MDk5MjkyZWJiOTEyZjA3NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvU2Nyb2xsQW5pbWF0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Njcm9sbEFuaW1hdG9ySU9TLm1tCkBAIC01OCw3ICs1OCw3IEBAIFNjcm9sbEFuaW1hdG9ySU9T
Ojp+U2Nyb2xsQW5pbWF0b3JJT1MoKQogCiBib29sIFNjcm9sbEFuaW1hdG9ySU9TOjpoYW5kbGVU
b3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKIHsKLSAgICBp
ZiAodG91Y2hFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6VG91Y2hTdGFydCAmJiB0b3Vj
aEV2ZW50LnRvdWNoQ291bnQoKSA9PSAxKSB7CisgICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09
IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0ICYmIHRvdWNoRXZlbnQudG91Y2hDb3VudCgp
ID09IDEpIHsKICAgICAgICAgbV9maXJzdFRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50LnRvdWNoTG9j
YXRpb25BdEluZGV4KDApOwogICAgICAgICBtX2xhc3RUb3VjaFBvaW50ID0gbV9maXJzdFRvdWNo
UG9pbnQ7CiAgICAgICAgIG1faW5Ub3VjaFNlcXVlbmNlID0gdHJ1ZTsKQEAgLTcyLDcgKzcyLDcg
QEAgYm9vbCBTY3JvbGxBbmltYXRvcklPUzo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9y
bVRvdWNoRXZlbnQmIHRvdWNoRXZlbnQpCiAgICAgaWYgKCFtX2luVG91Y2hTZXF1ZW5jZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRm
b3JtRXZlbnQ6OlRvdWNoRW5kIHx8IHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6
OlRvdWNoQ2FuY2VsKSB7CisgICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZl
bnRUeXBlOjpUb3VjaEVuZCB8fCB0b3VjaEV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6VG91Y2hDYW5jZWwpIHsKICAgICAgICAgbV9pblRvdWNoU2VxdWVuY2UgPSBmYWxzZTsKICAg
ICAgICAgbV9zY3JvbGxhYmxlQXJlYUZvclRvdWNoU2VxdWVuY2UgPSAwOwogICAgICAgICBpZiAo
bV9zdGFydGVkU2Nyb2xsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFj
Lm1tCmluZGV4IDRiZGY2MjA3YjZjNTVmMTJlMjg3YTcxNDFhMjcwZWE5MmQyMmRlMmMuLjJlZDQ3
MWM4NGEwY2RhNmY0MzY5ZDc3ZjViYzgzZTQ2MzNmYTJmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KQEAgLTM3LDE2ICszNywxNiBAQCB1c2luZyBuYW1l
c3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJk
Q29tcGF0aWJpbGl0eU1vZGUpCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21w
YXRpYmlsaXR5TW9kZSkKIHsKICAgICAvLyBDYW4gb25seSBjaGFuZ2UgdHlwZSBmcm9tIEtleURv
d24gdG8gUmF3S2V5RG93biBvciBDaGFyLCBhcyB3ZSBsYWNrIGluZm9ybWF0aW9uIGZvciBvdGhl
ciBjb252ZXJzaW9ucy4KLSAgICBBU1NFUlQobV90eXBlID09IEtleURvd24pOwotICAgIEFTU0VS
VCh0eXBlID09IFJhd0tleURvd24gfHwgdHlwZSA9PSBDaGFyKTsKKyAgICBBU1NFUlQobV90eXBl
ID09IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKTsKKyAgICBBU1NFUlQodHlwZSA9PSBQbGF0
Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93biB8fCB0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpD
aGFyKTsKICAgICBtX3R5cGUgPSB0eXBlOwogICAgIGlmIChiYWNrd2FyZENvbXBhdGliaWxpdHlN
b2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodHlwZSA9PSBSYXdLZXlEb3duKSB7Cisg
ICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAgICAgICAg
bV90ZXh0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsK
ICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGJlODJhOWE0MDQwMDRiZWM4ZjZmYzcyM2Rm
Yjk0YzY2ODJiZjdmMGYuLjhjZmFmOGU1ZTNmYmJmNzgzNDQ1Mzk1YTY1NjM0MTZkZjM4ZTViYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgTW91c2VCdXR0b24gbW91
c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICB9CiB9CiAKLXN0YXRpYyBQbGF0
Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCitz
dGF0aWMgUGxhdGZvcm1FdmVudFR5cGUgbW91c2VFdmVudFR5cGVGb3JFdmVudChOU0V2ZW50KiBl
dmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogICAgICAgICBjYXNlIE5TTGVm
dE1vdXNlRHJhZ2dlZDoKQEAgLTEyNCwxNyArMTI0LDE3IEBAIHN0YXRpYyBQbGF0Zm9ybUV2ZW50
OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgICAgIGNh
c2UgTlNNb3VzZU1vdmVkOgogICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURyYWdnZWQ6CiAgICAg
ICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBl
OjpNb3VzZU1vdmVkOwogICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93bjoKICAgICAgICAgY2Fz
ZSBOU1JpZ2h0TW91c2VEb3duOgogICAgICAgICBjYXNlIE5TT3RoZXJNb3VzZURvd246Ci0gICAg
ICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOworICAgICAgICAgICAg
cmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgICAgIGNhc2UgTlNM
ZWZ0TW91c2VVcDoKICAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoKICAgICAgICAgY2FzZSBO
U090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJl
bGVhc2VkOworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVh
c2VkOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQ7CisgICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNl
TW92ZWQ7CiAgICAgfQogfQogCkBAIC00MjIsNyArNDIyLDcgQEAgcHVibGljOgogICAgIFBsYXRm
b3JtV2hlZWxFdmVudEJ1aWxkZXIoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG93VmlldykK
ICAgICB7CiAgICAgICAgIC8vIFBsYXRmb3JtRXZlbnQKLSAgICAgICAgbV90eXBlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKKyAgICAgICAgbV90
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6V2hl
ZWw7CiAgICAgICAgIG1fbW9kaWZpZXJzICAgICAgICAgICAgICAgICAgICAgICAgID0gbW9kaWZp
ZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX3RpbWVzdGFtcCAgICAgICAgICAgICAgICAg
ICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKIApAQCAtNDYxLDcgKzQ2
MSw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKE5TRXZlbnQg
KmV2ZW50KQogICAgIHsKICAgICAgICAgLy8gUGxhdGZvcm1FdmVudAotICAgICAgICBtX3R5cGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlzS2V5VXBFdmVudChldmVudCkgPyBQbGF0
Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd247CisgICAgICAgIG1fdHlw
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaXNLZXlVcEV2ZW50KGV2ZW50KSA/IFBs
YXRmb3JtRXZlbnRUeXBlOjpLZXlVcCA6IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duOwogICAg
ICAgICBtX21vZGlmaWVycyAgICAgICAgICAgICAgICAgICAgICAgICA9IG1vZGlmaWVyc0ZvckV2
ZW50KGV2ZW50KTsKICAgICAgICAgbV90aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCmluZGV4IDAzYzhlYTI2N2VjNmYyMWEzNGI3ZDAwYjBi
ZTY1YTEwM2ZlMjQ1ZGQuLjRmMDhiMWFiMTJmODJkN2VjY2M1ZDI5MWI2ZWJlZGRiYzhhNDk5YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApAQCAtMTQ2
LDkgKzE0Niw5IEBAIHN0YXRpYyBTdHJpbmcga2V5SWRlbnRpZmllckZvcldpbmRvd3NLZXlDb2Rl
KHVuc2lnbmVkIHNob3J0IGtleUNvZGUpCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBpc0tleXBh
ZEV2ZW50KFdQQVJBTSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwgUGxhdGZvcm1FdmVudDo6VHlwZSB0
eXBlKQorc3RhdGljIGJvb2wgaXNLZXlwYWRFdmVudChXUEFSQU0gY29kZSwgTFBBUkFNIGtleURh
dGEsIFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUpCiB7Ci0gICAgaWYgKHR5cGUgIT0gUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93biAmJiB0eXBlICE9IFBsYXRmb3JtRXZlbnQ6OktleVVwKQorICAgIGlm
ICh0eXBlICE9IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duICYmIHR5cGUgIT0gUGxhdGZv
cm1FdmVudFR5cGU6OktleVVwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2gg
KGNvZGUpIHsKQEAgLTIxOSwxMiArMjE5LDEyIEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHNpbmds
ZUNoYXJhY3RlclN0cmluZyhVQ2hhciBjKQogICAgIHJldHVybiBTdHJpbmcoJmMsIDEpOwogfQog
Ci1QbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChIV05ELCBXUEFS
QU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFR5cGUgdHlwZSwgYm9vbCBzeXN0ZW1LZXkpCitQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0gY29k
ZSwgTFBBUkFNIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUsIGJvb2wgc3lzdGVtS2V5
KQogICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdI
X0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklUX01BU0tf
U0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgZmFsc2Us
IDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKLSAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9y
bUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQot
ICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNp
bmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQotICAgICwgbV9rZXlJZGVudGlm
aWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJZGVudGlm
aWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCi0gICAgLCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSgodHlwZSA9PSBSYXdLZXlEb3duIHx8IHR5cGUgPT0gS2V5VXApID8gd2luZG93c0tleWNvZGVX
aXRoTG9jYXRpb24oY29kZSwga2V5RGF0YSkgOiAwKQorICAgICwgbV90ZXh0KCh0eXBlID09IFBs
YXRmb3JtRXZlbnRUeXBlOjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0
cmluZygpKQorICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBTdHJpbmcoKSkKKyAgICAs
IG1fa2V5SWRlbnRpZmllcigodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhcikgPyBTdHJp
bmcoKSA6IGtleUlkZW50aWZpZXJGb3JXaW5kb3dzS2V5Q29kZShjb2RlKSkKKyAgICAsIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlKCh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3du
IHx8IHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwKSA/IHdpbmRvd3NLZXljb2RlV2l0
aExvY2F0aW9uKGNvZGUsIGtleURhdGEpIDogMCkKICAgICAsIG1fbmF0aXZlVmlydHVhbEtleUNv
ZGUobV93aW5kb3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBtX21hY0NoYXJDb2RlKDApCiAgICAg
LCBtX2F1dG9SZXBlYXQoSElXT1JEKGtleURhdGEpICYgS0ZfUkVQRUFUKQpAQCAtMjMzLDcgKzIz
Myw3IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEhXTkQs
IFdQQVJBTSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlLCBib29sKQordm9pZCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50
VHlwZSwgYm9vbCkKIHsKICAgICAvLyBObyBLZXlEb3duIGV2ZW50cyBvbiBXaW5kb3dzIHRvIGRp
c2FtYmlndWF0ZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKaW5kZXggMDU1
YzJhYTA1OTVhOWM2YWY1YjIzMmU2OTE4ZWNiYTE0ZTdkNWQ5Ny4uMGY4YzU3MmVhYjM1OWJlYjU0
MDZlMTU0OGU1NGU2OThhMjQ4ZGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3Rh
dGljIEludFBvaW50IGdsb2JhbFBvc2l0aW9uRm9yRXZlbnQoSFdORCBoV25kLCBMUEFSQU0gbFBh
cmFtKQogICAgIHJldHVybiBwb2ludDsKIH0KIAotc3RhdGljIFBsYXRmb3JtRXZlbnQ6OlR5cGUg
bWVzc2FnZVRvRXZlbnRUeXBlKFVJTlQgbWVzc2FnZSkKK3N0YXRpYyBQbGF0Zm9ybUV2ZW50VHlw
ZSBtZXNzYWdlVG9FdmVudFR5cGUoVUlOVCBtZXNzYWdlKQogewogICAgIHN3aXRjaCAobWVzc2Fn
ZSkgewogICAgICAgICBjYXNlIFdNX0xCVVRUT05EQkxDTEs6CkBAIC01OSwyMyArNTksMjMgQEAg
c3RhdGljIFBsYXRmb3JtRXZlbnQ6OlR5cGUgbWVzc2FnZVRvRXZlbnRUeXBlKFVJTlQgbWVzc2Fn
ZSkKICAgICAgICAgY2FzZSBXTV9MQlVUVE9ORE9XTjoKICAgICAgICAgY2FzZSBXTV9SQlVUVE9O
RE9XTjoKICAgICAgICAgY2FzZSBXTV9NQlVUVE9ORE9XTjoKLSAgICAgICAgICAgIHJldHVybiBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudFR5cGU6Ok1vdXNlUHJlc3NlZDsKIAogICAgICAgICBjYXNlIFdNX0xCVVRUT05VUDoKICAg
ICAgICAgY2FzZSBXTV9SQlVUVE9OVVA6CiAgICAgICAgIGNhc2UgV01fTUJVVFRPTlVQOgotICAg
ICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgICAgICAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQ7CiAKICNpZiAhT1MoV0lO
Q0UpCiAgICAgICAgIGNhc2UgV01fTU9VU0VMRUFWRToKICNlbmRpZgogICAgICAgICBjYXNlIFdN
X01PVVNFTU9WRToKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
OworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOwogCiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIC8vTW92ZSBpcyByZWxhdGl2ZWx5IGhhcm1sZXNzCi0gICAgICAgICAgICByZXR1cm4g
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50VHlwZTo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcAppbmRleCA1MjI0Njk3MThkOWU1YjM5NDQyMTYxZGFh
ZjUxY2Y2MWU4MzIxOGFkLi5lMjAzYmUzMTY2ZWJmMmQyNTEyM2U5YTc5NDQ5NTMwYmQ0ODEyZWI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCkBA
IC02Niw3ICs2Niw3IEBAIHN0YXRpYyBpbnQgdmVydGljYWxTY3JvbGxMaW5lcygpCiB9CiAKIFBs
YXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQgaFduZCwgY29uc3QgRmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24pCi0gICAgOiBQbGF0Zm9y
bUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
OjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2
ZW50VHlwZTo6V2hlZWwsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCA6OkdldFRpY2tDb3Vu
dCgpICogMC4wMDEpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkK
IHsKICAgICBtX2RlbHRhWCA9IGRlbHRhLndpZHRoKCk7CkBAIC04NSw3ICs4NSw3IEBAIFBsYXRm
b3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQgaFduZCwgY29uc3QgRmxvYXRT
aXplJiBkZWx0YSwgY29uc3QKIH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVs
RXZlbnQoSFdORCBoV25kLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGlzTW91
c2VIV2hlZWwpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCB3UGFy
YW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkg
JiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01B
U0tfU0hPUlQsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudFR5cGU6OldoZWVsLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtf
Q09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRL
ZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIDo6R2V0VGlja0NvdW50KCkg
KiAwLjAwMSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0p
KQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQ
YXJhbSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3Bw
CmluZGV4IDk5ZjA5NzU1Y2ZlMTYyOGNmNTgwNWQ1ZDg5Y2EwNmMzMDZkN2NjNTguLjI5M2FhNmI0
ODVmMzcyNTM2YTgzNjE3OWUwNDk2ZGVlMjA2M2FlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcApAQCAtMzE4LDcgKzMx
OCw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChL
ZXlib2FyZEV2ZW50KiBldmVudCkKIAogICAgIEVkaXRvcjo6Q29tbWFuZCBjb21tYW5kID0gZnJh
bWUtPmVkaXRvcigpLmNvbW1hbmQoaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpKTsKIAotICAgIGlm
IChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICBp
ZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bikgewog
ICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBt
b2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1
dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0ZWQsCiAgICAgICAgIC8vIHNvIHdlIGxlYXZl
IGl0IHVwb24gV2ViQ29yZSB0byBlaXRoZXIgaGFuZGxlIHRoZW0gaW1tZWRpYXRlbHkgKGUuZy4g
VGFiIHRoYXQgY2hhbmdlcyBmb2N1cykgb3IgbGV0IGEga2V5cHJlc3MgZXZlbnQgYmUgZ2VuZXJh
dGVkCiAgICAgICAgIC8vIChlLmcuIFRhYiB0aGF0IGluc2VydHMgYSBUYWIgY2hhcmFjdGVyLCBv
ciBFbnRlcikuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RvdWNoX2V2
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdG91Y2hfZXZlbnQuY3BwCmluZGV4
IDI2NmQxNzk2OWExZGM5ZTlmNGViZWEzNDc1OGY2Yjg4YjRmMzkzMWUuLjYxMzk2Mjg3ZDEzZTY5
NDc1NTkxNzAzZDViMGVmN2Q0MDBmYzUwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdG91Y2hfZXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dG91Y2hfZXZlbnQuY3BwCkBAIC03MSwxNiArNzEsMTYgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgY2FzZSBFV0tfVE9VQ0hfU1RBUlQ6Ci0gICAg
ICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpUb3VjaFN0YXJ0OworICAg
ICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoU3RhcnQ7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFV0tfVE9VQ0hfTU9WRToKLSAgICAg
ICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAg
ICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaE1vdmU7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFV0tfVE9VQ0hfRU5EOgotICAgICAgICAg
ICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hFbmQ7CisgICAgICAgICAg
ICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hFbmQ7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBFV0tfVE9VQ0hfQ0FOQ0VMOgotICAgICAgICAgICAg
bV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hDYW5jZWw7CisgICAgICAgICAg
ICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hDYW5jZWw7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHAKaW5kZXggYjE2Nzc1OTUxNGRmNjFiMjczODRhY2NjYmEyMjVlYTRl
ZWMzODVmNS4uZjZjMzhjZDI2ZTk1YzdjMDMzZjUxYzJjNjAzMWY5NWNhN2ZhOGQ1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwCkBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJk
RXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgIC8vIER1cmluZyBSYXdLZXlEb3du
IGV2ZW50cyBpZiBhbiBlZGl0b3IgY29tbWFuZCB3aWxsIGluc2VydCB0ZXh0LCBkZWZlcgogICAg
ICAgICAvLyB0aGUgaW5zZXJ0aW9uIHVudGlsIHRoZSBrZXlwcmVzcyBldmVudC4gV2Ugd2FudCBr
ZXlkb3duIHRvIGJ1YmJsZSB1cAogICAgICAgICAvLyB0aHJvdWdoIHRoZSBET00gZmlyc3QuCi0g
ICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5
RG93bikgeworICAgICAgICBpZiAocGxhdGZvcm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZl
bnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgICAgICBpZiAoZXhlY3V0ZVBlbmRpbmdFZGl0
b3JDb21tYW5kcyhmcmFtZSwgZmFsc2UpKQogICAgICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAKaW5kZXggMDc5NzEzMTZiNzBhMjJmZmM1Zjc2OTgzNThlOTRjODc3MzU5ZDNhZC4uMzliZmFl
NTdmNmQ1NGNjNTZmYTA1NDI0OWQ4ODdjNDU5MDUyNzAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNDY5LDcgKzQ2OSw3IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfd2ViX3ZpZXdfcG9wdXBfbWVudV9oYW5kbGVyKEd0a1dpZGdldCogd2lkZ2V0
KQogICAgIGxvY2F0aW9uLnNocnVua1RvKEludFBvaW50KHZpZXctPndpZHRoKCkgLSBnQ29udGV4
dE1lbnVNYXJnaW4sIHZpZXctPmhlaWdodCgpIC0gZ0NvbnRleHRNZW51TWFyZ2luKSk7CiAKICAg
ICBJbnRQb2ludCBnbG9iYWxQb2ludChjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KHdp
ZGdldCwgbG9jYXRpb24pKTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQobG9jYXRpb24s
IGdsb2JhbFBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZ3RrX2dldF9jdXJyZW50X2V2ZW50X3RpbWUo
KSk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGxvY2F0aW9uLCBnbG9iYWxQb2ludCwg
UmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSgpKTsKICAgICBy
ZXR1cm4gd2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51X2V2ZW50KFdFQktJVF9X
RUJfVklFVyh3aWRnZXQpLCBldmVudCwgdHJ1ZSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRF
WFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBkNDFmYmEw
MzgxNzM4ZWMyMzljMmIzYWYyNmZhMThmYzVkNWE2MWYyLi4wMDVlOTdjNjMzYTM3NWYwOTZlMzNi
M2FjY2NiMTNmNmM3NGVmZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0K
QEAgLTk2OCw3ICs5NjgsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3Vy
Y2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1F
OiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSBy
ZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQo
d2luZG93TG9jKSwgZ2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQo
KSB3aW5kb3ddKSwKLSAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3Zl
ZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOworICAgICAg
ICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwogICAgIF9wcml2YXRlLT5jb3JlRnJh
bWUtPmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VFbmRlZEF0KGV2ZW50LCAoRHJhZ09wZXJhdGlv
bilvcGVyYXRpb24pOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlldy5tbQppbmRleCA4MWY5Yjk4NWViMmRiNzE5MWY1NDE4ODY1OTBjNDlhMWU5M2U5MDNhLi4z
Nzg5ZDBhYTdiOTA5YjlkNjlmNGZjMzgwYmY4ZTU5Y2VjNWUwZDEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTQxNjAsNyArNDE2MCw3IEBAIHN0YXRpYyBQ
YXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3Jl
RnJhbWUpCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKICAgICBjYXNlIE5TS2V5RG93bjog
ewogICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudCA9IFBsYXRmb3Jt
RXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpOwotICAgICAg
ICBwbGF0Zm9ybUV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpS
YXdLZXlEb3duKTsKKyAgICAgICAgcGxhdGZvcm1FdmVudC5kaXNhbWJpZ3VhdGVLZXlEb3duRXZl
bnQoUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pOwogICAgICAgICByZXR1cm4gS2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSk7CiAgICAgfQogICAgIGNhc2UgTlNLZXlVcDoKQEAgLTU4MDIsNyArNTgwMiw3
IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5nc0VuYWJsZWQoKQogICAg
ICAgICB9CiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyB0ZXh0IGluc2VydGlvbiBjb21tYW5k
cywgZGVmYXVsdCBrZXlkb3duIGhhbmRsZXIgaXMgdGhlIHJpZ2h0IHRpbWUgdG8gZXhlY3V0ZSB0
aGUgY29tbWFuZHMuCiAgICAgICAgIC8vIEtleXByZXNzIChDaGFyIGV2ZW50KSBoYW5kbGVyIGlz
IHRoZSBsYXRlc3Qgb3Bwb3J0dW5pdHkgdG8gZXhlY3V0ZS4KLSAgICAgICAgaWYgKCFoYXZlVGV4
dEluc2VydGlvbkNvbW1hbmRzIHx8IHBsYXRmb3JtRXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2
ZW50OjpDaGFyKQorICAgICAgICBpZiAoIWhhdmVUZXh0SW5zZXJ0aW9uQ29tbWFuZHMgfHwgcGxh
dGZvcm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyKQogICAgICAgICAg
ICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdOwogICAgIH0KICAgICBfcHJp
dmF0ZS0+aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNWUyMGQ2MjMyMTkzNGJiYjgzMGI3MTFmYmM3NmNk
Y2UzZTk5YWUxZC4uMjRiZTc1NTQyODFhMzNiYTc4OGMzMmQxYjJjMmRkYzUzNGU5NTYzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQpAQCAtMTAzOCw3ICsxMDM4LDcg
QEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAq
cmFuZ2UpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOU0tleURvd246IHsKICAg
ICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Ci0gICAgICAgICAgICBwZS5k
aXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CisgICAg
ICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OlJh
d0tleURvd24pOwogICAgICAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUs
IDApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkRyb3BTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRHJvcFNv
dXJjZS5jcHAKaW5kZXggNTdhODNiMzFkNTg1ZDUyMzhlMDVkN2Q3NDJmMjMyYjVkMWUxODAyNy4u
NjJlNTc2NDQ1ZDg2NmU2ZTYzOWUxZDlhNDdiNjY1MGIwZGNmMjRmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViRHJvcFNvdXJjZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQg
Z2VuZXJhdGVNb3VzZUV2ZW50KFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgaXNEcmFnKQogICAgIGlm
IChTVUNDRUVERUQod2ViVmlldy0+dmlld1dpbmRvdygoT0xFX0hBTkRMRSopJnZpZXdXaW5kb3cp
KSkKICAgICAgICAgOjpTY3JlZW5Ub0NsaWVudCh2aWV3V2luZG93LCAoTFBQT0lOVCkmbG9jYWxw
dCk7CiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChJbnRQb2ludChsb2NhbHB0LngsIGxv
Y2FscHQueSksIEludFBvaW50KHB0LngsIHB0LnkpLAotICAgICAgICBpc0RyYWcgPyBMZWZ0QnV0
dG9uIDogTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKKyAgICAgICAgaXNEcmFnID8gTGVmdEJ1
dHRvbiA6IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwogfQogCiBTVERNRVRIT0RJTVAg
V2ViRHJvcFNvdXJjZTo6UXVlcnlDb250aW51ZURyYWcoQk9PTCBmRXNjYXBlUHJlc3NlZCwgRFdP
UkQgZ3JmS2V5U3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDk3MDc0OWRmNjJmOWEyZTY4
YWZhMzc4YzJmMDQ3ZTVhNjNkZjUwNDEuLjQyNTViNmM3NmY4MjE4NTM5ZjdiNGNiYjE3ZDgyYjI1
NTg4OTgzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0xODYxLDcgKzE4NjEsNyBAQCBib29s
IFdlYlZpZXc6OmV4ZWNDb21tYW5kKFdQQVJBTSB3UGFyYW0sIExQQVJBTSAvKmxQYXJhbSovKQog
CiBib29sIFdlYlZpZXc6OmtleVVwKFdQQVJBTSB2aXJ0dWFsS2V5Q29kZSwgTFBBUkFNIGtleURh
dGEsIGJvb2wgc3lzdGVtS2V5RG93bikKIHsKLSAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5
RXZlbnQobV92aWV3V2luZG93LCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVu
dDo6S2V5VXAsIHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlF
dmVudChtX3ZpZXdXaW5kb3csIHZpcnR1YWxLZXlDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50
VHlwZTo6S2V5VXAsIHN5c3RlbUtleURvd24pOwogCiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBtX2N1cnJlbnRD
aGFyYWN0ZXJDb2RlID0gMDsKQEAgLTIwMDMsNyArMjAwMyw3IEBAIGJvb2wgV2ViVmlldzo6aGFu
ZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogCiAgICAgRWRpdG9y
OjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChpbnRlcnByZXRLZXlF
dmVudChldnQpKTsKIAotICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6
OlJhd0tleURvd24pIHsKKyAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50
VHlwZTo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZlIGVub3Vn
aCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhhdCBqdXN0
IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0ZWQsCiAg
ICAgICAgIC8vIHNvIHdlIGxlYXZlIGl0IHVwb24gV2ViQ29yZSB0byBlaXRoZXIgaGFuZGxlIHRo
ZW0gaW1tZWRpYXRlbHkgKGUuZy4gVGFiIHRoYXQgY2hhbmdlcyBmb2N1cykgb3IgbGV0IGEga2V5
cHJlc3MgZXZlbnQgYmUgZ2VuZXJhdGVkCiAgICAgICAgIC8vIChlLmcuIFRhYiB0aGF0IGluc2Vy
dHMgYSBUYWIgY2hhcmFjdGVyLCBvciBFbnRlcikuCkBAIC0yMDMxLDcgKzIwMzEsNyBAQCBib29s
IFdlYlZpZXc6OmtleURvd24oV1BBUkFNIHZpcnR1YWxLZXlDb2RlLCBMUEFSQU0ga2V5RGF0YSwg
Ym9vbCBzeXN0ZW1LZXlEb3duKQogI2VuZGlmCiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAotICAgIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCBrZXlFdmVudChtX3ZpZXdXaW5kb3csIHZpcnR1YWxLZXlDb2RlLCBrZXlEYXRh
LCBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duLCBzeXN0ZW1LZXlEb3duKTsKKyAgICBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQga2V5RXZlbnQobV92aWV3V2luZG93LCB2aXJ0dWFsS2V5Q29kZSwga2V5
RGF0YSwgUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24sIHN5c3RlbUtleURvd24pOwogICAg
IGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLmtleUV2ZW50KGtleUV2ZW50KTsK
IAogICAgIC8vIFRoZXNlIGV2ZW50cyBjYW5ub3QgYmUgY2FuY2VsZWQsIGFuZCB3ZSBoYXZlIG5v
IGRlZmF1bHQgaGFuZGxpbmcgZm9yIHRoZW0uCkBAIC0yMTAzLDcgKzIxMDMsNyBAQCBib29sIFdl
YlZpZXc6OmtleVByZXNzKFdQQVJBTSBjaGFyQ29kZSwgTFBBUkFNIGtleURhdGEsIGJvb2wgc3lz
dGVtS2V5RG93bikKIHsKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwogCi0gICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtl
eUV2ZW50KG1fdmlld1dpbmRvdywgY2hhckNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnQ6OkNo
YXIsIHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudCht
X3ZpZXdXaW5kb3csIGNoYXJDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhciwg
c3lzdGVtS2V5RG93bik7CiAgICAgLy8gSUUgZG9lcyBub3QgZGlzcGF0Y2gga2V5cHJlc3MgZXZl
bnQgZm9yIFdNX1NZU0NIQVIuCiAgICAgaWYgKHN5c3RlbUtleURvd24pCiAgICAgICAgIHJldHVy
biBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkoa2V5RXZlbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdp
bkNFLmNwcAppbmRleCA2MTliZjk3MWUyMzZjMGZiODM1ZGVkMzI3N2U1ZWVhZDU0YmI3MzY0Li43
OWRhZDkwZTk4M2VhYTA2MjEzOGM3ZTE2NzA2NTJjN2ZmMjc3YmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNw
cApAQCAtMzkyLDcgKzM5Miw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50V2luQ0U6OmhhbmRsZUVkaXRp
bmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAgICAgRWRpdG9yOjpDb21t
YW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChpbnRlcnByZXRLZXlFdmVudChl
dmVudCkpOwogCi0gICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bikgeworICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBl
OjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0IGhhdmUgZW5vdWdoIGlu
Zm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21tYW5kcyB0aGF0IGp1c3QgaW5z
ZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQgYmUgdHJlYXRlZCwKICAgICAg
ICAgLy8gc28gd2UgbGVhdmUgaXQgdXBvbiBXZWJDb3JlIHRvIGVpdGhlciBoYW5kbGUgdGhlbSBp
bW1lZGlhdGVseSAoZS5nLiBUYWIgdGhhdCBjaGFuZ2VzIGZvY3VzKSBvciBsZXQgYSBrZXlwcmVz
cyBldmVudCBiZSBnZW5lcmF0ZWQKICAgICAgICAgLy8gKGUuZy4gVGFiIHRoYXQgaW5zZXJ0cyBh
IFRhYiBjaGFyYWN0ZXIsIG9yIEVudGVyKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwCmluZGV4IDY3
ZmUwMzhiZTQ0ODY0NzIxYThjODg2NzYwNDg3MDkwNmVlNzRhYmMuLjg5ODNhY2UzZGViMWNkOGU5
NWExNDRjNWUxMzQ3MmExZjQzZGQwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJWaWV3LmNwcApAQCAtMzUw
LDcgKzM1MCw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlS2V5RG93bihXUEFSQU0gdmlydHVhbEtl
eUNvZGUsIExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtlCiB7CiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAotICAg
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgdmlydHVhbEtl
eUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24sIHN5c3RlbUtleURvd24p
OworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgdmly
dHVhbEtleUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duLCBzeXN0
ZW1LZXlEb3duKTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5rZXlF
dmVudChrZXlFdmVudCk7CiAKICAgICAvLyBUaGVzZSBldmVudHMgY2Fubm90IGJlIGNhbmNlbGVk
LCBhbmQgd2UgaGF2ZSBubyBkZWZhdWx0IGhhbmRsaW5nIGZvciB0aGVtLgpAQCAtMzcyLDcgKzM3
Miw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlS2V5UHJlc3MoV1BBUkFNIGNoYXJDb2RlLCBMUEFS
QU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3duCiB7CiAgICAgRnJhbWUmIGZyYW1lID0gbV9w
YWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAotICAgIFBsYXRm
b3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgY2hhckNvZGUsIGtleURh
dGEsIFBsYXRmb3JtRXZlbnQ6OkNoYXIsIHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgY2hhckNvZGUsIGtleURhdGEsIFBs
YXRmb3JtRXZlbnRUeXBlOjpDaGFyLCBzeXN0ZW1LZXlEb3duKTsKICAgICAvLyBJRSBkb2VzIG5v
dCBkaXNwYXRjaCBrZXlwcmVzcyBldmVudCBmb3IgV01fU1lTQ0hBUi4KICAgICBpZiAoc3lzdGVt
S2V5RG93bikKICAgICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZUFjY2Vz
c0tleShrZXlFdmVudCk7CkBAIC0zODQsNyArMzg0LDcgQEAgYm9vbCBXZWJWaWV3OjpoYW5kbGVL
ZXlQcmVzcyhXUEFSQU0gY2hhckNvZGUsIExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtleURv
d24KIAogYm9vbCBXZWJWaWV3OjpoYW5kbGVLZXlVcChXUEFSQU0gdmlydHVhbEtleUNvZGUsIExQ
QVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtleURvd24pCiB7Ci0gICAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50IGtleUV2ZW50KG1fd2luZG93SGFuZGxlLCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0YSwg
UGxhdGZvcm1FdmVudDo6S2V5VXAsIHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgdmlydHVhbEtleUNvZGUsIGtleURhdGEs
IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlVcCwgc3lzdGVtS2V5RG93bik7CiAKICAgICBGcmFtZSYg
ZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwog
ICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIoKS5rZXlFdmVudChrZXlFdmVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDAzZmQwZWRi
NWZlMzM3NDRjOGE2MWNjNTkxYzhlMTlmMGQ0ZjY0MzQuLmRlNTExMTRmYTE2YjQ0NDMxZmIzYWJl
YWUyNjM4NWQ3MWIyYTY3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJF
dmVudENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENv
bnZlcnNpb24uY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgcHVibGljOgogICAgICAgICAvLyBQbGF0
Zm9ybUV2ZW50CiAgICAgICAgIHN3aXRjaCAod2ViRXZlbnQudHlwZSgpKSB7CiAgICAgICAgIGNh
c2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6
OlBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VVcDoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNv
cmU6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgICAgICAgICBtX3R5cGUgPSBX
ZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZDsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6Ci0gICAgICAgICAgICBtX3R5
cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICAgICAgbV90
eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQ7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICBXZWJLaXQyUGxhdGZvcm1XaGVl
bEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdlYkV2ZW50KQogICAgIHsKICAgICAgICAgLy8g
UGxhdGZvcm1FdmVudAotICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKKyAg
ICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OldoZWVsOwogCiAgICAg
ICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50LnNoaWZ0S2V5KCkpCkBA
IC0xNTEsMTYgKzE1MSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFBsYXRmb3JtRXZlbnQKICAg
ICAgICAgc3dpdGNoICh3ZWJFdmVudC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6
S2V5RG93bjoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Oktl
eURvd247CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6
S2V5RG93bjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpLZXlV
cDoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OktleVVwOwor
ICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OktleVVwOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViRXZlbnQ6OlJhd0tleURvd246Ci0g
ICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duOwor
ICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURv
d247CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6Q2hhcjoKLSAg
ICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OkNoYXI7CisgICAgICAg
ICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhcjsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0yNjcsMTYgKzI2NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFBsYXRmb3Jt
RXZlbnQKICAgICAgICAgc3dpdGNoICh3ZWJFdmVudC50eXBlKCkpIHsKICAgICAgICAgY2FzZSBX
ZWJFdmVudDo6VG91Y2hTdGFydDogCi0gICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0
Zm9ybUV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxh
dGZvcm1FdmVudFR5cGU6OlRvdWNoU3RhcnQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBXZWJFdmVudDo6VG91Y2hNb3ZlOiAKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6
OlBsYXRmb3JtRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6
OlBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaE1vdmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXZWJFdmVudDo6VG91Y2hFbmQ6IAotICAgICAgICAgICAgbV90eXBlID0gV2ViQ29y
ZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hFbmQ7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3Jl
OjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hFbmQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXZWJFdmVudDo6VG91Y2hDYW5jZWw6Ci0gICAgICAgICAgICBtX3R5cGUgPSBXZWJD
b3JlOjpQbGF0Zm9ybUV2ZW50OjpUb3VjaENhbmNlbDsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdl
YkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaENhbmNlbDsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9X
ZWJFZGl0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBhYWNkMWQ1NjYxNTRkNjIw
YzliMTRlYTM1YjNlNjllMWQ2ZTA2NjU4Li4xNDIzNTQwZDQ5OTA2MTk4NzAyNmE2Yzg4YzY0ODFm
OWVhOWZhOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKQEAgLTg3
LDcgKzg3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5
Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgIC8vIER1cmluZyBSYXdLZXlEb3duIGV2ZW50cyBp
ZiBhbiBlZGl0b3IgY29tbWFuZCB3aWxsIGluc2VydCB0ZXh0LCBkZWZlcgogICAgICAgICAvLyB0
aGUgaW5zZXJ0aW9uIHVudGlsIHRoZSBrZXlwcmVzcyBldmVudC4gV2Ugd2FudCBrZXlkb3duIHRv
IGJ1YmJsZSB1cAogICAgICAgICAvLyB0aHJvdWdoIHRoZSBET00gZmlyc3QuCi0gICAgICAgIGlm
IChwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgewor
ICAgICAgICBpZiAocGxhdGZvcm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpS
YXdLZXlEb3duKSB7CiAgICAgICAgICAgICBpZiAoZXhlY3V0ZVBlbmRpbmdFZGl0b3JDb21tYW5k
cyhmcmFtZSwgcGVuZGluZ0VkaXRvckNvbW1hbmRzLCBmYWxzZSkpCiAgICAgICAgICAgICAgICAg
ZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmZTQ2NWEzNTliYjkwYTBhOWRmOGZiNzQyNDI4
ZWU2NmRjN2YzMzMzLi5kM2FmNWMxMzM0MjM2M2NkMzZhYjdjYzA5NjVjM2JlNDU0OTdmN2RhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0x
NTYzLDcgKzE1NjMsNyBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4dE1lbnVBdFBv
aW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdlKCktPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAvLyBTaW11
bGF0ZSBhIG1vdXNlIGNsaWNrIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG1lbnUuCi0gICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
Y3VycmVudFRpbWUoKSk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQs
IHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZCwgMSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwogICAgIGJvb2wgaGFu
ZGxlZCA9IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0
TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmICghaGFuZGxlZCkKICAgICAgICAgcmV0dXJu
IDA7CkBAIC0xNjQyLDcgKzE2NDIsNyBAQCBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZUV2ZW50KGNv
bnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBhZ2UsIGJvbwogICAgIFBs
YXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgPSBwbGF0Zm9ybShtb3VzZUV2ZW50
KTsKIAogICAgIHN3aXRjaCAocGxhdGZvcm1Nb3VzZUV2ZW50LnR5cGUoKSkgewotICAgICAgICBj
YXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDogeworICAgICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ6IHsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAg
ICAgICAgICAgIGlmIChpc0NvbnRleHRDbGljayhwbGF0Zm9ybU1vdXNlRXZlbnQpKQogICAgICAg
ICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFy
Q29udGV4dE1lbnUoKTsKQEAgLTE2NTUsMTAgKzE2NTUsMTAgQEAgc3RhdGljIGJvb2wgaGFuZGxl
TW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBXZWJQYWdlKiBwYWdl
LCBib28KICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIGhhbmRsZWQ7CiAgICAgICAgIH0KLSAg
ICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgorICAgICAgICBjYXNlIFBs
YXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkOgogICAgICAgICAgICAgcmV0dXJuIGZyYW1l
LmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KHBsYXRmb3JtTW91c2VFdmVu
dCk7CiAKLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOgorICAgICAgICBj
YXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOgogICAgICAgICAgICAgaWYgKG9ubHlV
cGRhdGVTY3JvbGxiYXJzKQogICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRs
ZXIoKS5wYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKHBsYXRmb3JtTW91c2VFdmVudCk7
CiAgICAgICAgICAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChwbGF0
Zm9ybU1vdXNlRXZlbnQpOwpAQCAtMjAxMyw3ICsyMDEzLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJ
bml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29sIGlzS2V5Ym9hcmRFdmVudFZhbGlkLCBjb25z
dCBXZWIKIAogICAgIGlmIChpc0tleWJvYXJkRXZlbnRWYWxpZCAmJiBldmVudC50eXBlKCkgPT0g
V2ViRXZlbnQ6OktleURvd24pIHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBsYXRm
b3JtRXZlbnQocGxhdGZvcm0oZXZlbnQpKTsKLSAgICAgICAgcGxhdGZvcm1FdmVudC5kaXNhbWJp
Z3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7CisgICAgICAgIHBs
YXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpS
YXdLZXlEb3duKTsKICAgICAgICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRJbml0aWFs
Rm9jdXMoZm9yd2FyZCA/IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFj
a3dhcmQsIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBmcmFtZS5kb2N1bWVu
dCgpLT5kZWZhdWx0VmlldygpKS5nZXQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0y
NjU3LDcgKzI2NTcsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50
KEtleWJvYXJkRXZlbnQqIGV2dCkKIAogICAgIEVkaXRvcjo6Q29tbWFuZCBjb21tYW5kID0gZnJh
bWUtPmVkaXRvcigpLmNvbW1hbmQoaW50ZXJwcmV0S2V5RXZlbnQoZXZ0KSk7CiAKLSAgICBpZiAo
a2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgaWYg
KGtleUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pIHsKICAg
ICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQgbW9k
ZSB0byBkZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQgdGV4dCBpZiBleGVjdXRl
ZCB2aWEgRWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLAogICAgICAgICAvLyBzbyB3ZSBsZWF2ZSBp
dCB1cG9uIFdlYkNvcmUgdG8gZWl0aGVyIGhhbmRsZSB0aGVtIGltbWVkaWF0ZWx5IChlLmcuIFRh
YiB0aGF0IGNoYW5nZXMgZm9jdXMpIG9yIGxldCBhIGtleXByZXNzIGV2ZW50IGJlIGdlbmVyYXRl
ZAogICAgICAgICAvLyAoZS5nLiBUYWIgdGhhdCBpbnNlcnRzIGEgVGFiIGNoYXJhY3Rlciwgb3Ig
RW50ZXIpLgpAQCAtMjc3NCw3ICsyNzc0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmFnRW5kZWQoV2Vi
Q29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2IKICAg
ICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGZh
a2UgbW9kaWZpZXIga2V5cyBoZXJlLCBidXQgdGhleSBzaG91bGQgYmUgcmVhbCBvbmVzIGluc3Rl
YWQuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24s
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKKyAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0
ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92
ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKICAgICBt
X3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VFbmRlZEF0KGV2ZW50
LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTViYzQ1M2YyZTZh
NWQ4Zjk5MzUzMDNjYTVjZDNiM2JiNWM0MTBiZS4uYzQ5OGM4MmY5ZmY1OWFlMzg4ZTU2YmJjMjg0
YjU2Yzk4NzgyNjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk4LDkgKzI5OCw5IEBAIHZvaWQgV2ViUGFnZTo6
aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCkKICAgICBtYWluZnJhbWUubm9kZVJlc3Bv
bmRpbmdUb0NsaWNrRXZlbnRzKHBvaW50LCBhZGp1c3RlZFBvaW50KTsKICAgICBJbnRQb2ludCBy
b3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBvaW50KTsKIAot
ICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVu
dChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
MCkpOwotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQo
UGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQ
b2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCkpOwotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5o
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVk
UG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCkpOworICAgIG1h
aW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChyb3Vu
ZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9y
bUV2ZW50VHlwZTo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAp
KTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBs
YXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9p
bnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigp
LmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0
ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnRU
eXBlOjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCkpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVz
dElELCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA4NjM1ZjQ1ODk5OGM1
YWVhNmJjYzMyZGVlODQzYTAyMWMyMGE1MThlLi5mY2IwZGI0MTlhZjdiNzdmOTA2NWUxZTIxZDZl
NTE3NWM1NGIxZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xODQsNyArMTg0LDcgQEAgYm9vbCBXZWJQYWdlOjpl
eGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW0KICAgICAgICAgICAgICAgICBib29sIGNvbW1hbmRFeGVjdXRlZEJ5RWRpdG9yID0g
Y29tbWFuZC5leGVjdXRlKGV2ZW50KTsKICAgICAgICAgICAgICAgICBldmVudFdhc0hhbmRsZWQg
fD0gY29tbWFuZEV4ZWN1dGVkQnlFZGl0b3I7CiAgICAgICAgICAgICAgICAgaWYgKCFjb21tYW5k
RXhlY3V0ZWRCeUVkaXRvcikgewotICAgICAgICAgICAgICAgICAgICBib29sIHBlcmZvcm1lZE5v
bkVkaXRpbmdCZWhhdmlvciA9IGV2ZW50LT5rZXlFdmVudCgpLT50eXBlKCkgPT0gUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93biAmJiBwZXJmb3JtTm9uRWRpdGluZ0JlaGF2aW9yRm9yU2VsZWN0b3Io
Y29tbWFuZHNbaV0uY29tbWFuZE5hbWUsIGV2ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgYm9v
bCBwZXJmb3JtZWROb25FZGl0aW5nQmVoYXZpb3IgPSBldmVudC0+a2V5RXZlbnQoKS0+dHlwZSgp
ID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duICYmIHBlcmZvcm1Ob25FZGl0aW5nQmVo
YXZpb3JGb3JTZWxlY3Rvcihjb21tYW5kc1tpXS5jb21tYW5kTmFtZSwgZXZlbnQpOwogICAgICAg
ICAgICAgICAgICAgICBldmVudFdhc0hhbmRsZWQgfD0gcGVyZm9ybWVkTm9uRWRpdGluZ0JlaGF2
aW9yOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yNDAsNyAr
MjQwLDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCwgYm9vbCBzYXZlQ29tbWFuZHMKICAgICAgICAgfQogICAgICAgICAvLyBJ
ZiB0aGVyZSBhcmUgbm8gdGV4dCBpbnNlcnRpb24gY29tbWFuZHMsIGRlZmF1bHQga2V5ZG93biBo
YW5kbGVyIGlzIHRoZSByaWdodCB0aW1lIHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmRzLgogICAgICAg
ICAvLyBLZXlwcmVzcyAoQ2hhciBldmVudCkgaGFuZGxlciBpcyB0aGUgbGF0ZXN0IG9wcG9ydHVu
aXR5IHRvIGV4ZWN1dGUuCi0gICAgICAgIGlmICghaGF2ZVRleHRJbnNlcnRpb25Db21tYW5kcyB8
fCBwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6Q2hhcikgeworICAgICAg
ICBpZiAoIWhhdmVUZXh0SW5zZXJ0aW9uQ29tbWFuZHMgfHwgcGxhdGZvcm1FdmVudC0+dHlwZSgp
ID09IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyKSB7CiAgICAgICAgICAgICBldmVudFdhc0hhbmRs
ZWQgPSBleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKGV2ZW50LT5rZXlwcmVzc0NvbW1h
bmRzKCksIGV2ZW50KTsKICAgICAgICAgICAgIGV2ZW50LT5rZXlwcmVzc0NvbW1hbmRzKCkuY2xl
YXIoKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223003</attachid>
            <date>2014-02-03 11:41:36 -0800</date>
            <delta_ts>2014-03-28 15:48:50 -0700</delta_ts>
            <desc>round 3</desc>
            <filename>bug-128029-20140203114153.patch</filename>
            <type>text/plain</type>
            <size>87926</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTIwYTYyMTY5NTZkMmM0
OWM1MTNhODIzOWRlMWM3NDdhYjc1YjdkYS4uODhkZjdhZDJkMDNlODRiY2U3Y2U2NmE2NDg0MDIy
ZDc0OTQ3YjE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE0LTAyLTAzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUg
c2hvdWxkIGJlIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBQbGF0Zm9ybUV2ZW50OjpNZW1iZXIgd2l0
aCBQbGF0Zm9ybUV2ZW50VHlwZTo6TWVtYmVyLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZl
bnRUeXBlRm9yS2V5Ym9hcmRFdmVudFR5cGUpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnB1dEFnZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29u
dHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTW91c2VFdmVudCk6CisgICAgICAgICog
cGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ludGhldGljVG91Y2hQ
b2ludDo6U3ludGhldGljVG91Y2hQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTeW50aGV0aWNT
aW5nbGVUb3VjaEV2ZW50OjpTeW50aGV0aWNTaW5nbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5k
bGVQYXN0ZUdsb2JhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5k
Q29udGV4dE1lbnVFdmVudEZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleUV2ZW50QWxsb3dlZEluRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6aGFuZGxlRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNo
U3ludGhldGljVG91Y2hFdmVudElmRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUV2ZW50Ojp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZl
bnQ6OlBsYXRmb3JtRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9y
bUtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZl
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybU1vdXNlRXZlbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRFZmwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9LZXlFdmVudElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW06CisgICAgICAgIChXZWJDb3JlOjptb3VzZUV2
ZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyOjpQ
bGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5
Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6dG91Y2hFdmVudFR5cGUpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9TY3Jv
bGxBbmltYXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9ySU9TOjpo
YW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtl
eURvd25FdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6bW91c2VFdmVudFR5cGVGb3JFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybVdoZWVsRXZl
bnRCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxk
ZXI6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9LZXlFdmVudFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0tleXBhZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2
ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lc3NhZ2VUb0V2ZW50VHlwZSk6CisgICAg
ICAgICogcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorCiAyMDE0LTAyLTAzICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENhY2hl
ZEltYWdlTWFudWFsIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZTUzZjFiZjczZWQ0OTQ5NGY5
NDBlNmMxMzY5MjcwNDQ4ZWIyZjE3Mi4uZDY5MGIwMmJiZGY2ZmY3ZTJhMjhjMWJmYWNjYzlhZTJi
ZGE2M2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAyLTAzICBC
cmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgc2hvdWxkIGJlIGFuIGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBQbGF0Zm9ybUV2ZW50OjpNZW1iZXIg
d2l0aCBQbGF0Zm9ybUV2ZW50VHlwZTo6TWVtYmVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bDo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgorICAgICAgICAqIGV3ay9ld2tfdG91Y2hf
ZXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0UGxhdGZvcm1Ub3VjaEV2ZW50OjpXZWJLaXRQbGF0
Zm9ybVRvdWNoRXZlbnQpOgorCiAyMDE0LTAxLTMxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBpbmxpbmUgbWVtYmVyIGZ1bmN0aW9ucyBvZiBGcmFt
ZVNlbGVjdGlvbiB0aGF0IGFjY2VzcyBtX3NlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGJl
ZmNlYWQ4M2U2MmVmYzYxNjkwZWI0ZWZmY2MwNjBiNDQzZjg0NDguLjFkZTM5M2EyZTFjNzVjODQx
NWE4Y2E4MTEzNDQ3NGY1ZDkzMzU0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxNC0wMi0wMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgwMjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgUGxhdGZv
cm1FdmVudDo6TWVtYmVyIHdpdGggUGxhdGZvcm1FdmVudFR5cGU6Ok1lbWJlci4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3BvcHVwX21lbnVfaGFu
ZGxlcik6CisKIDIwMTQtMDEtMzEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeGluZyB0aGUgR1RLIGJ1aWxkIGFmdGVyIHIxNjMy
MzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNmI4NTkxNDE1MTg4YzUxZDkzMWI1MmY2ZDk4NDI2NjZk
ODNkODE5Mi4uMzExMjUzYzJjMTBhYWIzMDVhODhjNjVhMzFmNzZiMmM5NDE2YTM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAyLTAzICBCcmlhbiBCdXJnICA8YmJ1
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgc2hvdWxkIGJlIGFu
IGVudW0gY2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyODAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlcGxhY2UgdXNlcyBvZiBQbGF0Zm9ybUV2ZW50OjpNZW1iZXIgd2l0aCBQbGF0Zm9ybUV2
ZW50VHlwZTo6TWVtYmVyLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgX2RyYWdTb3VyY2VFbmRlZEF0Om9wZXJhdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoY3VycmVudEtleWJvYXJkRXZlbnQp
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfaW50ZXJwcmV0S2V5RXZlbnQ6c2F2aW5nQ29tbWFu
ZHM6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3Lm1tOgorICAgICAgICAoLVtXZWJQ
REZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6d2l0aFVSTDpdKToKKwogMjAxNC0wMS0zMSAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgaW5saW5l
IG1lbWJlciBmdW5jdGlvbnMgb2YgRnJhbWVTZWxlY3Rpb24gdGhhdCBhY2Nlc3MgbV9zZWxlY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCA4MTNhOWZiNzBjOGRkOWUzMjYzMjM1OTRjZjFlNDE4ZTVj
NjQzNzkwLi5lMTgyNTU4ZTIzNDkxZjE3ZjlkNDgwMTM3MTM2NmY1OTFlMjJiYjA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDItMDMgIEJyaWFuIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBzaG91bGQgYmUgYW4g
ZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI4MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVwbGFjZSB1c2VzIG9mIFBsYXRmb3JtRXZlbnQ6Ok1lbWJlciB3aXRoIFBsYXRmb3JtRXZl
bnRUeXBlOjpNZW1iZXIuCisKKyAgICAgICAgKiBXZWJEcm9wU291cmNlLmNwcDoKKyAgICAgICAg
KGdlbmVyYXRlTW91c2VFdmVudCk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChX
ZWJWaWV3OjprZXlVcCk6CisgICAgICAgIChXZWJWaWV3OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudCk6CisgICAgICAgIChXZWJWaWV3OjprZXlEb3duKToKKyAgICAgICAgKFdlYlZpZXc6Omtl
eVByZXNzKToKKwogMjAxNC0wMi0wMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgV2luQ2Fpcm8gYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CmluZGV4IDg3ZDY0NGFmYTE5YTczNDk5MTc4N2Q2MzRmOTFhNzNhMmIyOTM4NWYuLjgyYzFmYzQz
MzcyMzhjNTFjMTQ0M2NiZWUxMmYxODMyYjAwMTI0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTQtMDItMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBzaG91bGQgYmUgYW4gZW51bSBjbGFzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDI5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1
c2VzIG9mIFBsYXRmb3JtRXZlbnQ6Ok1lbWJlciB3aXRoIFBsYXRmb3JtRXZlbnRUeXBlOjpNZW1i
ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudCk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpoYW5kbGVL
ZXlEb3duKToKKyAgICAgICAgKFdlYlZpZXc6OmhhbmRsZUtleVByZXNzKToKKyAgICAgICAgKFdl
YlZpZXc6OmhhbmRsZUtleVVwKToKKwogMjAxNC0wMS0zMCAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3Vy
QGFkb2JlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
IGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA0NTEwNWZiYzk4YTA5ZWUzY2RhMzU4YzkzNTQyYjZkOWRjMWY5
NDNmLi4yYTQ5NjgwNmI5MmIwOWI2YmZmOGRiODgzYTM3Nzg5YzU2YjQ1ZjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDItMDMgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBzaG91bGQgYmUgYW4gZW51bSBjbGFz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSB1c2VzIG9mIFBsYXRmb3JtRXZlbnQ6Ok1lbWJlciB3aXRoIFBsYXRmb3JtRXZlbnRUeXBlOjpN
ZW1iZXIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0MlBsYXRmb3JtTW91
c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybVdoZWVsRXZlbnQ6Oldl
YktpdDJQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZv
cm1LZXlib2FyZEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0MlBsYXRmb3JtVG91Y2hFdmVudDo6V2ViS2l0MlBsYXRmb3JtVG91Y2hF
dmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRpdG9y
Q2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVL
ZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldEluaXRpYWxGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRs
ZUVkaXRpbmdLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0Vu
ZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVRhcCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpl
eGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgorCiAyMDE0LTAyLTAzICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IDMyLWJpdCBNYWMgYnVp
bGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRmY2FmNTUwNzBkYzY5ZjQ5ZjQyMThjYzJlNDZj
ZmNiYzg0YWU2NGIuLmZhMTM2Y2RlZmE1NGJiMjRlNGQ3NGY5NTMwYWVhODdmN2UwOGI0OTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC04MjIsNyArODIyLDcgQEAgX19aTjdXZWJDb3JlMjFNZW1v
cnlQcmVzc3VyZUhhbmRsZXI3aW5zdGFsbEV2CiBfX1pON1dlYkNvcmUyMU5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjIxZGVmYXVsdFN0b3JhZ2VTZXNzaW9uRXYKIF9fWk43V2ViQ29yZTIxTmV0d29ya1N0
b3JhZ2VTZXNzaW9uMjVzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uRXYKIF9fWk43V2ViQ29yZTIx
TmV0d29ya1N0b3JhZ2VTZXNzaW9uMjhjcmVhdGVQcml2YXRlQnJvd3NpbmdTZXNzaW9uRVJLTjNX
VEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJvYXJkRXZlbnQyNGRpc2FtYmln
dWF0ZUtleURvd25FdmVudEVOU18xM1BsYXRmb3JtRXZlbnQ0VHlwZUViCitfX1pON1dlYkNvcmUy
MVBsYXRmb3JtS2V5Ym9hcmRFdmVudDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5TXzE3UGxh
dGZvcm1FdmVudFR5cGVFYgogX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyMHNl
cnZlUGVuZGluZ1JlcXVlc3RzRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCiBfX1pON1dlYkNv
cmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIwc2VydmVQZW5kaW5nUmVxdWVzdHNFUE5TMF8xNUhv
c3RJbmZvcm1hdGlvbkVOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdXZWJDb3JlMjFS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIyMXJlc3VtZVBlbmRpbmdSZXF1ZXN0c0V2CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggYzBlMTZmODQxNzJkNTdhNDlmOTdhZTY3MTUzYzcw
YWNkNzA0ZGFhZS4uNDk0ZmM0NGVjYTgyNDZlODIxNmVhZDdjNzk1MmYzMjQ0NDJlZTM5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcApAQCAtMzMsMjAgKzMzLDIwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZUZvcktleWJvYXJkRXZlbnRUeXBlKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSkKK3N0
YXRpYyBpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGVGb3JLZXlib2FyZEV2ZW50
VHlwZShQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewotICAg
ICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6OktleVVwOgotICAgICAgICAgICAgcmV0dXJuIGV2ZW50
TmFtZXMoKS5rZXl1cEV2ZW50OwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6OlJhd0tleURv
d246Ci0gICAgICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmtleWRvd25FdmVudDsKLSAgICAg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpDaGFyOgotICAgICAgICAgICAgcmV0dXJuIGV2ZW50TmFt
ZXMoKS5rZXlwcmVzc0V2ZW50OwotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6OktleURvd246
Ci0gICAgICAgICAgICAvLyBUaGUgY2FsbGVyIHNob3VsZCBkaXNhbWJpZ3VhdGUgdGhlIGNvbWJp
bmVkIGV2ZW50IGludG8gUmF3S2V5RG93biBvciBDaGFyIGV2ZW50cy4KLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50VHlwZTo6S2V5VXA6CisgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkua2V5dXBF
dmVudDsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duOgorICAgICAgICBy
ZXR1cm4gZXZlbnROYW1lcygpLmtleWRvd25FdmVudDsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnRU
eXBlOjpDaGFyOgorICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQ7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93bjoKKyAgICAgICAgLy8gVGhlIGNhbGxl
ciBzaG91bGQgZGlzYW1iaWd1YXRlIHRoZSBjb21iaW5lZCBldmVudCBpbnRvIFJhd0tleURvd24g
b3IgQ2hhciBldmVudHMuCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZXZlbnRO
YW1lcygpLmtleWRvd25FdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAppbmRleCA1Njgy
ZjhhNTM0ODVjNzc0Yzk3Njk3Njg5YmZiYTRlY2FmNmU1YzE2Li5hZjBjZGYzMTNhZTAzNTAwNGMy
YmQxOTA1ZjJmNjFmOTc0M2U5YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCkBAIC01
NCw3ICs1NCw3IEBAIFBhc3NSZWZQdHI8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTW91c2VFCiAKIFBhc3NSZWZQdHI8TW91c2VF
dmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQ
YXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBl
dmVudCwgaW50IGRldGFpbCwgUGFzc1JlZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0KQogewotICAg
IEFTU0VSVChldmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCB8fCBldmVu
dC5idXR0b24oKSAhPSBOb0J1dHRvbik7CisgICAgQVNTRVJUKGV2ZW50LnR5cGUoKSA9PSBQbGF0
Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCB8fCBldmVudC5idXR0b24oKSAhPSBOb0J1dHRvbik7
CiAKICAgICBib29sIGlzTW91c2VFbnRlck9yTGVhdmUgPSBldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLm1vdXNlZW50ZXJFdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNlbGVh
dmVFdmVudDsKICAgICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVz
KCkubW91c2Vtb3ZlRXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAKaW5kZXggYzQ1YTA0MDMw
NDgxOWZlMTk3NjMyN2MyZTY5Y2I2NmM2Y2I3NzQzOS4uMDU0ZWM2ZjRmYzE1YjQxNzRkNTU0OGQz
NWEyYzkyZDUwZjk0MjQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvcklucHV0QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnB1dEFnZW50LmNwcApAQCAtNzUsMTUgKzc1LDE1IEBAIHZvaWQgSW5zcGVjdG9ySW5w
dXRBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVj
dFJlYXNvCiAKIHZvaWQgSW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hLZXlFdmVudChFcnJv
clN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgaW50KiBtb2RpZmllcnMs
IGNvbnN0IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJpbmcqIHRleHQsIGNvbnN0IFN0cmlu
ZyogdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyoga2V5SWRlbnRpZmllciwgY29uc3QgaW50
KiB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGNvbnN0IGludCogbmF0aXZlVmlydHVhbEtleUNvZGUs
IGNvbnN0IGludCogbWFjQ2hhckNvZGUsIGNvbnN0IGJvb2wqIGF1dG9SZXBlYXQsIGNvbnN0IGJv
b2wqIGlzS2V5cGFkLCBjb25zdCBib29sKiBpc1N5c3RlbUtleSkKIHsKLSAgICBQbGF0Zm9ybUV2
ZW50OjpUeXBlIGNvbnZlcnRlZFR5cGU7CisgICAgUGxhdGZvcm1FdmVudFR5cGUgY29udmVydGVk
VHlwZTsKICAgICBpZiAodHlwZSA9PSAia2V5RG93biIpCi0gICAgICAgIGNvbnZlcnRlZFR5cGUg
PSBQbGF0Zm9ybUV2ZW50OjpLZXlEb3duOworICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZv
cm1FdmVudFR5cGU6OktleURvd247CiAgICAgZWxzZSBpZiAodHlwZSA9PSAia2V5VXAiKQotICAg
ICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudDo6S2V5VXA7CisgICAgICAgIGNvbnZl
cnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5VXA7CiAgICAgZWxzZSBpZiAodHlwZSA9
PSAiY2hhciIpCi0gICAgICAgIGNvbnZlcnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpDaGFyOwor
ICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6OkNoYXI7CiAgICAgZWxz
ZSBpZiAodHlwZSA9PSAicmF3S2V5RG93biIpCi0gICAgICAgIGNvbnZlcnRlZFR5cGUgPSBQbGF0
Zm9ybUV2ZW50OjpSYXdLZXlEb3duOworICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1F
dmVudFR5cGU6OlJhd0tleURvd247CiAgICAgZWxzZSB7CiAgICAgICAgICplcnJvciA9ICJVbnJl
Y29nbml6ZWQgdHlwZTogIiArIHR5cGU7CiAgICAgICAgIHJldHVybjsKQEAgLTEwNywxMyArMTA3
LDEzIEBAIHZvaWQgSW5zcGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hLZXlFdmVudChFcnJvclN0
cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdHlwCiAKIHZvaWQgSW5zcGVjdG9ySW5wdXRBZ2Vu
dDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiB0
eXBlLCBpbnQgeCwgaW50IHksIGNvbnN0IGludCogbW9kaWZpZXJzLCBjb25zdCBkb3VibGUqIHRp
bWVzdGFtcCwgY29uc3QgU3RyaW5nKiBidXR0b24sIGNvbnN0IGludCogY2xpY2tDb3VudCkKIHsK
LSAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIGNvbnZlcnRlZFR5cGU7CisgICAgUGxhdGZvcm1FdmVu
dFR5cGUgY29udmVydGVkVHlwZTsKICAgICBpZiAodHlwZSA9PSAibW91c2VQcmVzc2VkIikKLSAg
ICAgICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAg
ICAgY29udmVydGVkVHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAg
ZWxzZSBpZiAodHlwZSA9PSAibW91c2VSZWxlYXNlZCIpCi0gICAgICAgIGNvbnZlcnRlZFR5cGUg
PSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOworICAgICAgICBjb252ZXJ0ZWRUeXBlID0g
UGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQ7CiAgICAgZWxzZSBpZiAodHlwZSA9PSAi
bW91c2VNb3ZlZCIpCi0gICAgICAgIGNvbnZlcnRlZFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZU1vdmVkOworICAgICAgICBjb252ZXJ0ZWRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNl
TW92ZWQ7CiAgICAgZWxzZSB7CiAgICAgICAgICplcnJvciA9ICJVbnJlY29nbml6ZWQgdHlwZTog
IiArIHR5cGU7CiAgICAgICAgIHJldHVybjsKQEAgLTE1NCwxMyArMTU0LDEzIEBAIHZvaWQgSW5z
cGVjdG9ySW5wdXRBZ2VudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KEVycm9yU3RyaW5nKiBlcnJvciwg
Y29uc3QgU3RyaW5nJiB0CiAKICAgICBFdmVudEhhbmRsZXImIGV2ZW50SGFuZGxlciA9IG1fcGFn
ZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCk7CiAgICAgc3dpdGNoIChjb252ZXJ0ZWRUeXBl
KSB7Ci0gICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ6CisgICAgY2FzZSBQbGF0
Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkOgogICAgICAgICBldmVudEhhbmRsZXIuaGFuZGxl
TW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVJlbGVhc2VkOgorICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNl
UmVsZWFzZWQ6CiAgICAgICAgIGV2ZW50SGFuZGxlci5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChl
dmVudCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VNb3Zl
ZDoKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOgogICAgICAgICBldmVu
dEhhbmRsZXIuaGFuZGxlTW91c2VNb3ZlRXZlbnQoZXZlbnQpOwogICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwCmluZGV4IDQ3NzRhNDMwNTk4NTc4OWI0ZmEzMWU2YzJiOWEyZjgwYTVlMjBhNjcuLmE2MTQx
NjJhNjE1NGZkMzZlYTRhYTg4ZTMwMGY2OTA0MzA4OTVlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTE0MDMsNyArMTQwMyw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSogZnJhbWUs
IGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAg
IC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBv
YmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xp
Y2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOworICAgIFBsYXRmb3JtTW91
c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgY3VycmVudFRpbWUoKSk7CiAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1v
dXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAgaWYgKGhh
bmRsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDUzMzc2ZjZj
ODA0ZjFjYTNmNjUxOWVjNGMyYjY5NjYwNDQyYjBlMmQuLjZlZDVjNmY4ZTdhZTZlM2RlMjc1ZmUy
NjEzYTIwYWFhNDg1MWU1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91c2VF
dmVudChEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgbWV0YUtleSA9IHN0YXRpY19jYXN0PGJvb2w+
KGtleVN0YXRlICYgUGxhdGZvcm1FdmVudDo6TWV0YUtleSk7CiAKICAgICByZXR1cm4gUGxhdGZv
cm1Nb3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBv
c2l0aW9uKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudFR5cGU6
Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXRhS2V5LCBjdXJyZW50VGltZSgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGM4ZDVhNmU1ZWMyOGRjYmExZWVhMzQ0NzNmMDQ2
MWMyM2VmNDE2Y2MuLjlmYzgxMjYwNjQ5M2YyYjBjNTE0YzU2YTFjODY5OGNkZjJkYjFhMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIyMSwxNyArMjIxLDE3IEBAIHB1
YmxpYzoKICAgICAgICAgbV9yb3RhdGlvbkFuZ2xlID0gcm90YXRpb25BbmdsZURlZmF1bHRWYWx1
ZTsKICAgICAgICAgbV9mb3JjZSA9IGZvcmNlRGVmYXVsdFZhbHVlOwogCi0gICAgICAgIFBsYXRm
b3JtRXZlbnQ6OlR5cGUgdHlwZSA9IGV2ZW50LnR5cGUoKTsKLSAgICAgICAgQVNTRVJUKHR5cGUg
PT0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCB8fCB0eXBlID09IFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlUHJlc3NlZCB8fCB0eXBlID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQpOworICAg
ICAgICBQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlID0gZXZlbnQudHlwZSgpOworICAgICAgICBBU1NF
UlQodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCB8fCB0eXBlID09IFBsYXRm
b3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQgfHwgdHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6
TW91c2VSZWxlYXNlZCk7CiAKICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2Ug
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6TW91c2VNb3ZlZDoKICAgICAgICAgICAgIG1fc3RhdGUgPSBUb3VjaE1vdmVkOwogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOgor
ICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ6CiAgICAgICAgICAg
ICBtX3N0YXRlID0gVG91Y2hQcmVzc2VkOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2
ZW50VHlwZTo6TW91c2VSZWxlYXNlZDoKICAgICAgICAgICAgIG1fc3RhdGUgPSBUb3VjaFJlbGVh
c2VkOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0yNDYsMTggKzI0
NiwxOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgU3ludGhldGljU2luZ2xlVG91Y2hFdmVudChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAgIHsKICAgICAgICAgc3dpdGNoIChl
dmVudC50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOgot
ICAgICAgICAgICAgbV90eXBlID0gVG91Y2hNb3ZlOworICAgICAgICBjYXNlIFBsYXRmb3JtRXZl
bnRUeXBlOjpNb3VzZU1vdmVkOgorICAgICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudFR5
cGU6OlRvdWNoTW92ZTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZDoKLSAgICAgICAgICAgIG1fdHlwZSA9IFRvdWNoU3RhcnQ7Cisg
ICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZDoKKyAgICAgICAgICAg
IG1fdHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0OwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDoKLSAgICAgICAg
ICAgIG1fdHlwZSA9IFRvdWNoRW5kOworICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpN
b3VzZVJlbGVhc2VkOgorICAgICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudFR5cGU6OlRv
dWNoRW5kOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIG1fdHlwZSA9IE5vVHlwZTsKKyAg
ICAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpOb1R5cGU7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBtX3RpbWVzdGFtcCA9IGV2ZW50LnRpbWVzdGFt
cCgpOwpAQCAtMzY5LDcgKzM2OSw3IEBAIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1l
JiBmcmFtZSkKICAgICAsIG1fdG91Y2hQcmVzc2VkKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX21h
eE1vdXNlTW92ZWREdXJhdGlvbigwKQotICAgICwgbV9iYXNlRXZlbnRUeXBlKFBsYXRmb3JtRXZl
bnQ6Ok5vVHlwZSkKKyAgICAsIG1fYmFzZUV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50VHlwZTo6Tm9U
eXBlKQogICAgICwgbV9kaWRTdGFydERyYWcoZmFsc2UpCiAgICAgLCBtX2RpZExvbmdQcmVzc0lu
dm9rZUNvbnRleHRNZW51KGZhbHNlKQogICAgICwgbV9pc0hhbmRsaW5nV2hlZWxFdmVudChmYWxz
ZSkKQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91
c2VNb3ZlZER1cmF0aW9uID0gMDsKLSAgICBtX2Jhc2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50
OjpOb1R5cGU7CisgICAgbV9iYXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok5vVHlw
ZTsKICAgICBtX2RpZFN0YXJ0RHJhZyA9IGZhbHNlOwogICAgIG1fZGlkTG9uZ1ByZXNzSW52b2tl
Q29udGV4dE1lbnUgPSBmYWxzZTsKIH0KQEAgLTE5ODYsMTAgKzE5ODYsMTAgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZVBhc3RlR2xvYmFsU2VsZWN0aW9uKGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgbW91c2VFdmUKICAgICAvLyBjbGVhcnMgdGhlIHRleHQgYm94LiBTbyBpdCdzIGltcG9y
dGFudCB0aGlzIGhhcHBlbnMgYWZ0ZXIgdGhlIGV2ZW50CiAgICAgLy8gaGFuZGxlcnMgaGF2ZSBi
ZWVuIGZpcmVkLgogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBpZiAobW91c2VFdmVudC50eXBlKCkg
IT0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkKQorICAgIGlmIChtb3VzZUV2ZW50LnR5cGUo
KSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VQcmVzc2VkKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAjZWxzZQotICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVJlbGVhc2VkKQorICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50
VHlwZTo6TW91c2VSZWxlYXNlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKQEAg
LTI1MTQsNyArMjUxNCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAvLyBJbnN0ZWFkLCB0aGUgaGFuZGxlcnMg
c2hvdWxkIGtub3cgY29udmVydCB2ZXJ0aWNhbCBzY3JvbGxzCiAgICAgLy8gYXBwcm9wcmlhdGVs
eS4KICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgZXZlbnQgPSBlOwotICAgIGlmIChtX2Jhc2VFdmVu
dFR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Tm9UeXBlICYmIHNob3VsZFR1cm5WZXJ0aWNhbFRpY2tz
SW50b0hvcml6b250YWwocmVzdWx0LCBlKSkKKyAgICBpZiAobV9iYXNlRXZlbnRUeXBlID09IFBs
YXRmb3JtRXZlbnRUeXBlOjpOb1R5cGUgJiYgc2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9y
aXpvbnRhbChyZXN1bHQsIGUpKQogICAgICAgICBldmVudCA9IGV2ZW50LmNvcHlUdXJuaW5nVmVy
dGljYWxUaWNrc0ludG9Ib3Jpem9udGFsVGlja3MoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAg
LTI2ODAsOSArMjY4MCw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVu
dEZvcktleSgpCiAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3Igd2ViIGNvbXBhdGliaWxpdHku
CiAKICNpZiBPUyhXSU5ET1dTKQotICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0g
UGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsKKyAgICBQbGF0Zm9ybUV2ZW50VHlwZSBldmVu
dFR5cGUgPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZDsKICNlbHNlCi0gICAgUGxh
dGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7
CisgICAgUGxhdGZvcm1FdmVudFR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudFR5cGU6Ok1v
dXNlUHJlc3NlZDsKICNlbmRpZgogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQo
cG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKQEAgLTI3NjcsNyAr
Mjc2Nyw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVk
KFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAgIGJvb2wgYWx0S2V5OwogICAgIGJvb2wg
bWV0YUtleTsKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0
YXRlKHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOwotICAgIFBsYXRmb3JtTW91
c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xh
c3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBjdXJyZW50VGlt
ZSgpKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtu
b3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRv
biwgUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBh
bHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCkpOwogICAgIG1vdXNlTW92ZWQoZmFrZU1vdXNl
TW92ZUV2ZW50KTsKIH0KIApAQCAtMjgyOSw3ICsyODI5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmlzS2V5RXZlbnRBbGxvd2VkSW5GdWxsU2NyZWVuKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYga2UKICAgICBpZiAoZG9jdW1lbnQtPndlYmtpdEZ1bGxTY3JlZW5LZXlib2FyZElucHV0QWxs
b3dlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChrZXlFdmVudC50eXBlKCkg
PT0gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpDaGFyKSB7CisgICAgaWYgKGtleUV2ZW50LnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhcikgewogICAgICAgICBpZiAoa2V5RXZlbnQudGV4
dCgpLmxlbmd0aCgpICE9IDEpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFVD
aGFyIGNoYXJhY3RlciA9IGtleUV2ZW50LnRleHQoKVswXTsKQEAgLTI4NTksNyArMjg1OSw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
IGluaXRpYWxLZXlFdmVudCkKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICBpZiAobV9m
cmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsK
ICAgICAgICAgLy8gSWYgYSBrZXkgaXMgcHJlc3NlZCB3aGlsZSB0aGUgcGFuU2Nyb2xsIGlzIGlu
IHByb2dyZXNzIHRoZW4gd2Ugd2FudCB0byBzdG9wCi0gICAgICAgIGlmIChpbml0aWFsS2V5RXZl
bnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OktleURvd24gfHwgaW5pdGlhbEtleUV2ZW50LnR5
cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKQorICAgICAgICBpZiAoaW5pdGlhbEtl
eUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5RG93biB8fCBpbml0aWFsS2V5
RXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKQogICAgICAgICAg
ICAgc3RvcEF1dG9zY3JvbGxUaW1lcigpOwogCiAgICAgICAgIC8vIElmIHdlIHdlcmUgaW4gcGFu
c2Nyb2xsIG1vZGUsIHdlIHN3YWxsb3cgdGhlIGtleSBldmVudApAQCAtMjg4OCwyNCArMjg4OCwy
NCBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAgICAgLy8gT24gV2luZG93cywgV2ViS2l0IGV4cGxpY2l0
bHkgY2FsbHMgaGFuZGxlQWNjZXNzS2V5KCkgaW5zdGVhZCBvZiBkaXNwYXRjaGluZyBhIGtleXBy
ZXNzIGV2ZW50IGZvciBXTV9TWVNDSEFSIG1lc3NhZ2VzLgogICAgIC8vIE90aGVyIHBsYXRmb3Jt
cyBjdXJyZW50bHkgbWF0Y2ggZWl0aGVyIE1hYyBvciBXaW5kb3dzIGJlaGF2aW9yLCBkZXBlbmRp
bmcgb24gd2hldGhlciB0aGV5IHNlbmQgY29tYmluZWQgS2V5RG93biBldmVudHMuCiAgICAgYm9v
bCBtYXRjaGVkQW5BY2Nlc3NLZXkgPSBmYWxzZTsKLSAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5
cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpLZXlEb3duKQorICAgIGlmIChpbml0aWFsS2V5RXZlbnQu
dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKQogICAgICAgICBtYXRjaGVkQW5B
Y2Nlc3NLZXkgPSBoYW5kbGVBY2Nlc3NLZXkoaW5pdGlhbEtleUV2ZW50KTsKIAogICAgIC8vIEZJ
WE1FOiBpdCB3b3VsZCBiZSBmYWlyIHRvIGxldCBhbiBpbnB1dCBtZXRob2QgaGFuZGxlIEtleVVw
IGV2ZW50cyBiZWZvcmUgRE9NIGRpc3BhdGNoLgotICAgIGlmIChpbml0aWFsS2V5RXZlbnQudHlw
ZSgpID09IFBsYXRmb3JtRXZlbnQ6OktleVVwIHx8IGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6Q2hhcikKKyAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQ
bGF0Zm9ybUV2ZW50VHlwZTo6S2V5VXAgfHwgaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0
Zm9ybUV2ZW50VHlwZTo6Q2hhcikKICAgICAgICAgcmV0dXJuICFlbGVtZW50LT5kaXNwYXRjaEtl
eUV2ZW50KGluaXRpYWxLZXlFdmVudCk7CiAKICAgICBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUgPSBuZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcygpOwogCiAgICAg
UGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleURvd25FdmVudCA9IGluaXRpYWxLZXlFdmVudDsgICAg
Ci0gICAgaWYgKGtleURvd25FdmVudC50eXBlKCkgIT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93
bikKLSAgICAgICAga2V5RG93bkV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9y
bUV2ZW50OjpSYXdLZXlEb3duLCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKTsKKyAgICBpZiAo
a2V5RG93bkV2ZW50LnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bikKKyAg
ICAgICAga2V5RG93bkV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50
VHlwZTo6UmF3S2V5RG93biwgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAgICAgUmVmUHRy
PEtleWJvYXJkRXZlbnQ+IGtleWRvd24gPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUoa2V5RG93bkV2
ZW50LCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCkpOwogICAgIGlmIChtYXRjaGVk
QW5BY2Nlc3NLZXkpCiAgICAgICAgIGtleWRvd24tPnNldERlZmF1bHRQcmV2ZW50ZWQodHJ1ZSk7
CiAgICAga2V5ZG93bi0+c2V0VGFyZ2V0KGVsZW1lbnQpOwogCi0gICAgaWYgKGluaXRpYWxLZXlF
dmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmIChpbml0
aWFsS2V5RXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAg
ICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoRXZlbnQoa2V5ZG93biwgSUdOT1JFX0VYQ0VQVElPTik7
CiAgICAgICAgIC8vIElmIGZyYW1lIGNoYW5nZWQgYXMgYSByZXN1bHQgb2Yga2V5ZG93biBkaXNw
YXRjaCwgdGhlbiByZXR1cm4gdHJ1ZSB0byBhdm9pZCBzZW5kaW5nIGEgc3Vic2VxdWVudCBrZXlw
cmVzcyBtZXNzYWdlIHRvIHRoZSBuZXcgZnJhbWUuCiAgICAgICAgIGJvb2wgY2hhbmdlZEZvY3Vz
ZWRGcmFtZSA9IG1fZnJhbWUucGFnZSgpICYmICZtX2ZyYW1lICE9ICZtX2ZyYW1lLnBhZ2UoKS0+
Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CkBAIC0yOTQ0LDcgKzI5NDQs
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAgICAgfQogCiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
IGtleVByZXNzRXZlbnQgPSBpbml0aWFsS2V5RXZlbnQ7Ci0gICAga2V5UHJlc3NFdmVudC5kaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6Q2hhciwgYmFja3dhcmRDb21wYXRp
YmlsaXR5TW9kZSk7CisgICAga2V5UHJlc3NFdmVudC5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQo
UGxhdGZvcm1FdmVudFR5cGU6OkNoYXIsIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUpOwogICAg
IGlmIChrZXlQcmVzc0V2ZW50LnRleHQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBrZXlk
b3duUmVzdWx0OwogICAgIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBrZXlwcmVzcyA9IEtleWJvYXJk
RXZlbnQ6OmNyZWF0ZShrZXlQcmVzc0V2ZW50LCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRW
aWV3KCkpOwpAQCAtMzEzOCw3ICszMTM4LDcgQEAgc3RhdGljIGJvb2wgRXhhY3RseU9uZUJpdFNl
dChEcmFnU291cmNlQWN0aW9uIG4pCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNv
bnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBDaGVja0RyYWdIeXN0ZXJl
c2lzIGNoZWNrRHJhZ0h5c3RlcmVzaXMpCiB7Ci0gICAgaWYgKGV2ZW50LmV2ZW50KCkuYnV0dG9u
KCkgIT0gTGVmdEJ1dHRvbiB8fCBldmVudC5ldmVudCgpLnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50
OjpNb3VzZU1vdmVkKSB7CisgICAgaWYgKGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gTGVmdEJ1
dHRvbiB8fCBldmVudC5ldmVudCgpLnR5cGUoKSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VN
b3ZlZCkgewogICAgICAgICAvLyBJZiB3ZSBhbGxvd2VkIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBi
cmlkZ2UgdG8gaGFuZGxlIGEgZHJhZwogICAgICAgICAvLyBsYXN0IHRpbWUsIHRoZW4gbV9tb3Vz
ZVByZXNzZWQgbWlnaHQgc3RpbGwgYmUgc2V0LiBTbyB3ZQogICAgICAgICAvLyBjbGVhciBpdCBu
b3cgdG8gbWFrZSBzdXJlIHRoZSBuZXh0IG1vdmUgYWZ0ZXIgYSBkcmFnCkBAIC0zMTcxLDcgKzMx
NzEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyhjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBldmVudCwgQ2hlY2tEcgogICAgIC8vIEZvciBkcmFncyBzdGFydGlu
ZyBpbiB0aGUgc2VsZWN0aW9uLCB0aGUgdXNlciBtdXN0IHdhaXQgYmV0d2VlbiB0aGUgbW91c2Vk
b3duIGFuZCBtb3VzZWRyYWcsCiAgICAgLy8gb3IgZWxzZSB3ZSBiYWlsIG9uIHRoZSBkcmFnZ2lu
ZyBzdHVmZiBhbmQgYWxsb3cgc2VsZWN0aW9uIHRvIG9jY3VyCiAgICAgaWYgKG1fbW91c2VEb3du
TWF5U3RhcnREcmFnICYmIG1fZHJhZ01heVN0YXJ0U2VsZWN0aW9uSW5zdGVhZCAmJiAoZHJhZ1N0
YXRlKCkudHlwZSAmIERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24pICYmIGV2ZW50LmV2ZW50KCku
dGltZXN0YW1wKCkgLSBtX21vdXNlRG93blRpbWVzdGFtcCA8IFRleHREcmFnRGVsYXkpIHsKLSAg
ICAgICAgQVNTRVJUKGV2ZW50LmV2ZW50KCkudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQpOworICAgICAgICBBU1NFUlQoZXZlbnQuZXZlbnQoKS50eXBlKCkgPT0gUGxhdGZvcm1F
dmVudFR5cGU6Ok1vdXNlTW92ZWQpOwogICAgICAgICBpZiAoKGRyYWdTdGF0ZSgpLnR5cGUgJiBE
cmFnU291cmNlQWN0aW9uSW1hZ2UpKSB7CiAgICAgICAgICAgICAvLyAuLi4gdW5sZXNzIHRoZSBt
b3VzZSBpcyBvdmVyIGFuIGltYWdlLCB0aGVuIHdlIHN0YXJ0IGRyYWdnaW5nIGp1c3QgdGhlIGlt
YWdlCiAgICAgICAgICAgICBkcmFnU3RhdGUoKS50eXBlID0gRHJhZ1NvdXJjZUFjdGlvbkltYWdl
OwpAQCAtMzc0MCw4ICszNzQwLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhl
dGljVG91Y2hFdmVudElmRW5hYmxlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQKICAgICBpZiAo
IW1fZnJhbWUuc2V0dGluZ3MoKS5pc1RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0g
ZXZlbnQudHlwZSgpOwotICAgIGlmIChldmVudFR5cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZCAmJiBldmVudFR5cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkICYmIGV2ZW50
VHlwZSAhPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkKQorICAgIFBsYXRmb3JtRXZlbnRU
eXBlIGV2ZW50VHlwZSA9IGV2ZW50LnR5cGUoKTsKKyAgICBpZiAoZXZlbnRUeXBlICE9IFBsYXRm
b3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6TW91c2VQcmVzc2VkICYmIGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VS
ZWxlYXNlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVx
dWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hh
ZG93Q29udGVudCk7CkBAIC0zNzUwLDcgKzM3NTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlz
cGF0Y2hTeW50aGV0aWNUb3VjaEV2ZW50SWZFbmFibGVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBUaGUgb3JkZXIgaXMgaW1wb3J0YW50
LiBUaGlzIGNoZWNrIHNob3VsZCBmb2xsb3cgdGhlIHN1YmZyYW1lIHRlc3Q6IGh0dHA6Ly93ZWJr
aXQub3JnL2IvMTExMjkyLgotICAgIGlmIChldmVudFR5cGUgPT0gUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCAmJiAhbV90b3VjaFByZXNzZWQpCisgICAgaWYgKGV2ZW50VHlwZSA9PSBQbGF0Zm9y
bUV2ZW50VHlwZTo6TW91c2VNb3ZlZCAmJiAhbV90b3VjaFByZXNzZWQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgU3ludGhldGljU2luZ2xlVG91Y2hFdmVudCB0b3VjaEV2ZW50KGV2ZW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDY2NTE4NDllYjhjODdkN2E3ZWU4
NWE4ZTU1OGZiYjMwMTYzZDg2YzUuLmM1YmMyNWVhOWE3ZTg3OTc2NzkxMDEwZTRiYWJlZTE2YjYw
ZTc3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNTM2LDcgKzUzNiw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGRvdWJsZSBtX21heE1vdXNlTW92ZWREdXJhdGlvbjsK
LSAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1fYmFzZUV2ZW50VHlwZTsKKyAgICBQbGF0Zm9ybUV2
ZW50VHlwZSBtX2Jhc2VFdmVudFR5cGU7CiAgICAgYm9vbCBtX2RpZFN0YXJ0RHJhZzsKICAgICBi
b29sIG1fZGlkTG9uZ1ByZXNzSW52b2tlQ29udGV4dE1lbnU7CiAgICAgYm9vbCBtX2lzSGFuZGxp
bmdXaGVlbEV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4
IDUzM2E5MjRkMTJjZjQwMzcxMzY0ODUxMGM3NmYxMGVhZmZhYjFhOTMuLjkxMGJlYmNiMjQzMDdh
NmQ3NzEwOTYyNjlhNjI3M2Q2ZmZlYTZiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmgKQEAgLTI4LDM1ICsyOCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIFBsYXRmb3JtRXZlbnQgewotcHVibGljOgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAg
IE5vVHlwZSA9IDAsCitlbnVtIGNsYXNzIFBsYXRmb3JtRXZlbnRUeXBlIHsKKyAgICBOb1R5cGUg
PSAwLAogCi0gICAgICAgIC8vIFBsYXRmb3JtS2V5Ym9hcmRFdmVudAotICAgICAgICBLZXlEb3du
LAotICAgICAgICBLZXlVcCwKLSAgICAgICAgUmF3S2V5RG93biwKLSAgICAgICAgQ2hhciwKKyAg
ICAvLyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQKKyAgICBLZXlEb3duLAorICAgIEtleVVwLAorICAg
IFJhd0tleURvd24sCisgICAgQ2hhciwKIAotICAgICAgICAvLyBQbGF0Zm9ybU1vdXNlRXZlbnQK
LSAgICAgICAgTW91c2VNb3ZlZCwKLSAgICAgICAgTW91c2VQcmVzc2VkLAotICAgICAgICBNb3Vz
ZVJlbGVhc2VkLAotICAgICAgICBNb3VzZVNjcm9sbCwKKyAgICAvLyBQbGF0Zm9ybU1vdXNlRXZl
bnQKKyAgICBNb3VzZU1vdmVkLAorICAgIE1vdXNlUHJlc3NlZCwKKyAgICBNb3VzZVJlbGVhc2Vk
LAorICAgIE1vdXNlU2Nyb2xsLAogCi0gICAgICAgIC8vIFBsYXRmb3JtV2hlZWxFdmVudAotICAg
ICAgICBXaGVlbCwKKyAgICAvLyBQbGF0Zm9ybVdoZWVsRXZlbnQKKyAgICBXaGVlbCwKIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgICAgIC8vIFBsYXRmb3JtVG91Y2hFdmVudAotICAg
ICAgICBUb3VjaFN0YXJ0LAotICAgICAgICBUb3VjaE1vdmUsCi0gICAgICAgIFRvdWNoRW5kLAot
ICAgICAgICBUb3VjaENhbmNlbCwKKyAgICAvLyBQbGF0Zm9ybVRvdWNoRXZlbnQKKyAgICBUb3Vj
aFN0YXJ0LAorICAgIFRvdWNoTW92ZSwKKyAgICBUb3VjaEVuZCwKKyAgICBUb3VjaENhbmNlbCwK
ICNlbmRpZgotICAgIH07Cit9OwogCitjbGFzcyBQbGF0Zm9ybUV2ZW50IHsKK3B1YmxpYzoKICAg
ICBlbnVtIE1vZGlmaWVycyB7CiAgICAgICAgIEFsdEtleSAgICAgID0gMSA8PCAwLAogICAgICAg
ICBDdHJsS2V5ICAgICA9IDEgPDwgMSwKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgICAg
ICBTaGlmdEtleSAgICA9IDEgPDwgMywKICAgICB9OwogCi0gICAgVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV90eXBlKTsgfQorICAgIFBsYXRmb3JtRXZlbnRU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIGJvb2wgc2hpZnRLZXko
KSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVycyAmIFNoaWZ0S2V5OyB9CiAgICAgYm9vbCBjdHJs
S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMgJiBDdHJsS2V5OyB9CkBAIC03NywyNyAr
NzcsMjcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCi0gICAg
ICAgIDogbV90eXBlKE5vVHlwZSkKKyAgICAgICAgOiBtX3R5cGUoUGxhdGZvcm1FdmVudFR5cGU6
Ok5vVHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAsIG1fdGltZXN0YW1w
KDApCiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBl
KQorICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSkKICAg
ICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAs
IG1fdGltZXN0YW1wKDApCiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0
eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVy
cyhtb2RpZmllcnMpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKICAg
ICB9CiAKLSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBj
dHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQorICAg
IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQog
ICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZpZXJzKDApCiAgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQpAQCAtMTE4LDcgKzExOCw3IEBAIHByb3RlY3RlZDoK
ICAgICB7CiAgICAgfQogCi0gICAgdW5zaWduZWQgbV90eXBlOworICAgIFBsYXRmb3JtRXZlbnRU
eXBlIG1fdHlwZTsKICAgICB1bnNpZ25lZCBtX21vZGlmaWVyczsKICAgICBkb3VibGUgbV90aW1l
c3RhbXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaAppbmRleCA2MDBiODcwZTNlODE3ZTk0YWY3M2FlMzk4NjdiZDVkMzdkYTBhZTYxLi41
OWEwODFmOTllNjg3ZmZhNDFkOTJmMGYzZTZhMDIyMmFkYjBmODJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtNjAsNyArNjAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
ICAgIHB1YmxpYzoKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50KCkKLSAgICAgICAgICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpLZXlEb3duKQorICAgICAgICAgICAgOiBQ
bGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKQogICAgICAgICAgICAgLCBt
X3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSgwKQogICAgICAgICAgICAgLCBtX25hdGl2ZVZpcnR1YWxL
ZXlDb2RlKDApCiAgICAgICAgICAgICAsIG1fbWFjQ2hhckNvZGUoMCkKQEAgLTczLDcgKzczLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgICAgICBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50
aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9v
bCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKICAg
ICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAg
ICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQo
dW5tb2RpZmllZFRleHQpCkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBkaXNhbWJpZ3VhdGVLZXlEb3duRXZl
bnQoVHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2UpOyAvLyBPbmx5
IHVzZWQgb24gcGxhdGZvcm1zIHRoYXQgbmVlZCBpdCwgaS5lLiB0aG9zZSB0aGF0IGdlbmVyYXRl
IEtleURvd24gZXZlbnRzLgorICAgICAgICB2b2lkIGRpc2FtYmlndWF0ZUtleURvd25FdmVudChQ
bGF0Zm9ybUV2ZW50VHlwZSwgYm9vbCBiYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlID0gZmFsc2Up
OyAvLyBPbmx5IHVzZWQgb24gcGxhdGZvcm1zIHRoYXQgbmVlZCBpdCwgaS5lLiB0aG9zZSB0aGF0
IGdlbmVyYXRlIEtleURvd24gZXZlbnRzLgogCiAgICAgICAgIC8vIFRleHQgYXMgYXMgZ2VuZXJh
dGVkIGJ5IHByb2Nlc3NpbmcgYSB2aXJ0dWFsIGtleSBjb2RlIHdpdGggYSBrZXlib2FyZCBsYXlv
dXQKICAgICAgICAgLy8gKGluIG1vc3QgY2FzZXMsIGp1c3QgYSBjaGFyYWN0ZXIgY29kZSwgYnV0
IHRoZSBsYXlvdXQgY2FuIGVtaXQgc2V2ZXJhbApAQCAtMTI4LDcgKzEyOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgICAgICBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNLCBMUEFSQU0sIFR5cGUsIGJvb2wpOworICAgICAg
ICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNLCBMUEFSQU0sIFBsYXRmb3JtRXZl
bnRUeXBlLCBib29sKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCA0Zjc0Mzk5OTY5YzFlMmJh
YTViODdjNTlkYTA3NzU4MDZkZDU3ZGQxLi5iMTFhY2U1NzdiNDI1YWFlNzAwMzdiZTFiNTMyZWYx
NzAyZWVkNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZl
bnQuaApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUGxh
dGZvcm1Nb3VzZUV2ZW50IDogcHVibGljIFBsYXRmb3JtRXZlbnQgewogICAgIHB1YmxpYzoKICAg
ICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50KCkKLSAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudChQ
bGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkKQorICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBs
YXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkKQogICAgICAgICAgICAgLCBtX2J1dHRvbihOb0J1
dHRvbikKICAgICAgICAgICAgICwgbV9jbGlja0NvdW50KDApCiAgICAgICAgICAgICAsIG1fbW9k
aWZpZXJGbGFncygwKQpAQCAtNjEsNyArNjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0
b24gYnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCisgICAgICAgIFBsYXRmb3JtTW91
c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkK
ICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCmluZGV4
IDIxZTMwNmRkNWU5MmJmMmZkMjU1YzM1MDMxYzFlODA0NGZjZGJhYzMuLmZiMTk4Yzk5MzI2OTFm
ZDY4OGY0NzhkM2MxNTFiMzIxOTBmMzIzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hFdmVudC5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVudCA6IHB1YmxpYyBQbGF0Zm9ybUV2ZW50IHsKIHB1
YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNoRXZlbnQoKQotICAgICAgICA6IFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudDo6VG91Y2hTdGFydCkKKyAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRm
b3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0KQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5kZXggODFlYTI3NmRjMzFiZWYzN2Fi
ZmJlZGJiNDFkNjEzZmY0ZGU3NjNjNi4uYjYyMDljM2NkNzg1OGJjYmZmZjUwMmE3Yzk1YjZiMTVk
ODYxZjM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVl
bEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50
LmgKQEAgLTY4LDcgKzY4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsYXRm
b3JtV2hlZWxFdmVudCA6IHB1YmxpYyBQbGF0Zm9ybUV2ZW50IHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIFBsYXRmb3JtV2hlZWxFdmVudCgpCi0gICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxh
dGZvcm1FdmVudDo6V2hlZWwpCisgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1F
dmVudFR5cGU6OldoZWVsKQogICAgICAgICAgICAgLCBtX2RlbHRhWCgwKQogICAgICAgICAgICAg
LCBtX2RlbHRhWSgwKQogICAgICAgICAgICAgLCBtX3doZWVsVGlja3NYKDApCkBAIC04Nyw3ICs4
Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogCiAgICAgICAgIFBsYXRmb3Jt
V2hlZWxFdmVudChJbnRQb2ludCBwb3NpdGlvbiwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxU
aWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVudEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNo
aWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAg
ICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJs
S2V5LCBhbHRLZXksIG1ldGFLZXksIDApCisgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxh
dGZvcm1FdmVudFR5cGU6OldoZWVsLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5
LCAwKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBt
X2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2RlbHRhWChk
ZWx0YVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGxhdGZvcm1L
ZXlib2FyZEV2ZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRFZmwuY3BwCmluZGV4IGM4MWRlM2Q4Mzc4MmYxOTZhNWRhNDA4ZjIyMjgz
MDM0ZTM2ZWNhZWYuLjk1ZWNjMWNkOGQ3NGZmNmRhN2FiMTM5ZDQ2ZWRkMTNlZGY1OTJiMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRFZmwuY3BwCkBAIC00MCw3ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNf
RXZlbnRfS2V5X0Rvd24qIGV2ZW50KQotICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50
OjpLZXlEb3duLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNo
aWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJv
bCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBl
dmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVu
dFRpbWUoKSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OktleURvd24s
IGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZh
c19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNf
a2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21v
ZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQog
ICAgICwgbV90ZXh0KFN0cmluZzo6ZnJvbVVURjgoZXZlbnQtPnN0cmluZykpCiAgICAgLCBtX3Vu
bW9kaWZpZWRUZXh0KFN0cmluZzo6ZnJvbVVURjgoZXZlbnQtPnN0cmluZykpCiAgICAgLCBtX2tl
eUlkZW50aWZpZXIoa2V5SWRlbnRpZmllckZvckV2YXNLZXlOYW1lKFN0cmluZyhldmVudC0+a2V5
KSkpCkBAIC01NCw3ICs1NCw3IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24qIGV2ZW50KQogfQogCiBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChjb25zdCBFdmFzX0V2ZW50X0tl
eV9VcCogZXZlbnQpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OktleVVwLCBl
dmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNf
a2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tl
eV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2Rp
Zmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKKyAg
ICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OktleVVwLCBldmFzX2tleV9tb2Rp
Zmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVy
X2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9p
c19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQo
ZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkKICAgICAsIG1fdGV4dChT
dHJpbmc6OmZyb21VVEY4KGV2ZW50LT5zdHJpbmcpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dChT
dHJpbmc6OmZyb21VVEY4KGV2ZW50LT5zdHJpbmcpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKGtl
eUlkZW50aWZpZXJGb3JFdmFzS2V5TmFtZShTdHJpbmcoZXZlbnQtPmtleSkpKQpAQCAtNjcsMTIg
KzY3LDEyIEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KGNv
bnN0IEV2YXNfRXZlbnRfS2V5X1VwKiBldmVudCkKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wpCit2b2lk
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3Jt
RXZlbnRUeXBlIHR5cGUsIGJvb2wpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsK
ICAgICBtX3R5cGUgPSB0eXBlOwogCi0gICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bikgeworICAgIGlmICh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3du
KSB7CiAgICAgICAgIG1fdGV4dCA9IFN0cmluZygpOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0
ID0gU3RyaW5nKCk7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9QbGF0Zm9ybU1vdXNlRXZlbnRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVudEVmbC5jcHAKaW5kZXggOWVkODk4OTVkOTAzNGE0
YTA0NzExYTUyYzA0ZGZmNjQ5ZGE4ZjY3OC4uMGE4ZDZhZGVmMzQ2ZjQzNzQwZTliZjdjMjQ2MzUy
MjAxYTAzMTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRm
b3JtTW91c2VFdmVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bs
YXRmb3JtTW91c2VFdmVudEVmbC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBQbGF0Zm9ybU1v
dXNlRXZlbnQ6OnNldENsaWNrQ291bnQodW5zaWduZWQgaW50IGZsYWdzKQogfQogCiBQbGF0Zm9y
bU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rv
d24qIGV2ZW50LCBJbnRQb2ludCBwb3NpdGlvbikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6TW91c2VQcmVzc2VkLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1v
ZGlmaWVycywgIlNoaWZ0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZp
ZXJzLCAiQ29udHJvbCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVy
cywgIkFsdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1l
dGEiKSwgY3VycmVudFRpbWUoKSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5
cGU6Ok1vdXNlUHJlc3NlZCwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmll
cnMsICJTaGlmdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywg
IkNvbnRyb2wiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJB
bHQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiks
IGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX3Bvc2l0aW9uKEludFBvaW50KGV2ZW50LT5jYW52YXMu
eCAtIHBvc2l0aW9uLngoKSwgZXZlbnQtPmNhbnZhcy55IC0gcG9zaXRpb24ueSgpKSkKICAgICAs
IG1fZ2xvYmFsUG9zaXRpb24oSW50UG9pbnQoZXZlbnQtPmNhbnZhcy54LCBldmVudC0+Y2FudmFz
LnkpKQogICAgICwgbV9idXR0b24oTW91c2VCdXR0b24oZXZlbnQtPmJ1dHRvbiAtIDEpKQpAQCAt
NTcsNyArNTcsNyBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25z
dCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2ZW50LCBJbnRQbwogfQogCiBQbGF0Zm9ybU1vdXNl
RXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKiBldmVu
dCwgSW50UG9pbnQgcG9zaXRpb24pCi0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUmVsZWFzZWQsIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJz
LCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJD
b250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQWx0
IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiTWV0YSIpLCBj
dXJyZW50VGltZSgpKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6TW91
c2VSZWxlYXNlZCwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJT
aGlmdCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRy
b2wiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwg
ZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJl
bnRUaW1lKCkpCiAgICAgLCBtX3Bvc2l0aW9uKEludFBvaW50KGV2ZW50LT5jYW52YXMueCAtIHBv
c2l0aW9uLngoKSwgZXZlbnQtPmNhbnZhcy55IC0gcG9zaXRpb24ueSgpKSkKICAgICAsIG1fZ2xv
YmFsUG9zaXRpb24oSW50UG9pbnQoZXZlbnQtPmNhbnZhcy54LCBldmVudC0+Y2FudmFzLnkpKQog
ICAgICwgbV9idXR0b24oTW91c2VCdXR0b24oZXZlbnQtPmJ1dHRvbiAtIDEpKQpAQCAtNjYsNyAr
NjYsNyBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFz
X0V2ZW50X01vdXNlX1VwKiBldmVudCwgSW50UG9pbgogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6
OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX01vdmUqIGV2ZW50LCBJ
bnRQb2ludCBwb3NpdGlvbikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJTaGlm
dCIpLCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkNvbnRyb2wi
KSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJBbHQiKSwgZXZh
c19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2ZW50LT5tb2RpZmllcnMsICJNZXRhIiksIGN1cnJlbnRU
aW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVk
LCBldmFzX2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIlNoaWZ0IiksIGV2
YXNfa2V5X21vZGlmaWVyX2lzX3NldChldmVudC0+bW9kaWZpZXJzLCAiQ29udHJvbCIpLCBldmFz
X2tleV9tb2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIkFsdCIpLCBldmFzX2tleV9t
b2RpZmllcl9pc19zZXQoZXZlbnQtPm1vZGlmaWVycywgIk1ldGEiKSwgY3VycmVudFRpbWUoKSkK
ICAgICAsIG1fcG9zaXRpb24oSW50UG9pbnQoZXZlbnQtPmN1ci5jYW52YXMueCAtIHBvc2l0aW9u
LngoKSwgZXZlbnQtPmN1ci5jYW52YXMueSAtIHBvc2l0aW9uLnkoKSkpCiAgICAgLCBtX2dsb2Jh
bFBvc2l0aW9uKEludFBvaW50KGV2ZW50LT5jdXIuY2FudmFzLngsIGV2ZW50LT5jdXIuY2FudmFz
LnkpKQogICAgICwgbV9idXR0b24oTW91c2VCdXR0b24oZXZlbnQtPmJ1dHRvbnMgLSAxKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QbGF0Zm9ybVdoZWVsRXZlbnRF
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVm
bC5jcHAKaW5kZXggYThhZGJkNzMzMWNlOWUwODYyNWQxOTM4ZDMwYzY1OWE2NDhiY2E4Ni4uNTMz
NTBmYzAwNmFmNWM1ZmQwMDc2MTkyYmFkN2Y1NTJhYmYyNmM2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1BsYXRmb3JtV2hlZWxFdmVudEVmbC5jcHAKQEAgLTQ0
LDcgKzQ0LDcgQEAgZW51bSB7CiB9OwogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hl
ZWxFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1doZWVsKiBldikKLSAgICA6IFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+
bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZhc19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2LT5tb2RpZmll
cnMsICJDb250cm9sIiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAi
QWx0IiksIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiTWV0YSIpLCBj
dXJyZW50VGltZSgpKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6V2hl
ZWwsIGV2YXNfa2V5X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiU2hpZnQiKSwgZXZh
c19rZXlfbW9kaWZpZXJfaXNfc2V0KGV2LT5tb2RpZmllcnMsICJDb250cm9sIiksIGV2YXNfa2V5
X21vZGlmaWVyX2lzX3NldChldi0+bW9kaWZpZXJzLCAiQWx0IiksIGV2YXNfa2V5X21vZGlmaWVy
X2lzX3NldChldi0+bW9kaWZpZXJzLCAiTWV0YSIpLCBjdXJyZW50VGltZSgpKQogICAgICwgbV9w
b3NpdGlvbihJbnRQb2ludChldi0+Y2FudmFzLngsIGV2LT5jYW52YXMueSkpCiAgICAgLCBtX2ds
b2JhbFBvc2l0aW9uKEludFBvaW50KGV2LT5jYW52YXMueCwgZXYtPmNhbnZhcy55KSkKICAgICAs
IG1fZ3JhbnVsYXJpdHkoU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmlu
ZGV4IDcwNmQ2ZTI1Yzk5MDA1YTI0MjAwY2E5ZDRmMDUwMjU1ZmUyMmY0YzYuLjA2NTViNzhlMGIx
NDMyMjBiMGI5MmQ0Nzk0OWE5ZDZlZmZkM2ZmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC01NTAs
OSArNTUwLDkgQEAgU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVy
U3RyaW5nKHVuc2lnbmVkIHZhbCkKICAgICB9CiB9CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpU
eXBlIGV2ZW50VHlwZUZvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBldmVudCkKK3N0YXRpYyBQ
bGF0Zm9ybUV2ZW50VHlwZSBldmVudFR5cGVGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZl
bnQpCiB7Ci0gICAgcmV0dXJuIGV2ZW50LT50eXBlID09IEdES19LRVlfUkVMRUFTRSA/IFBsYXRm
b3JtRXZlbnQ6OktleVVwIDogUGxhdGZvcm1FdmVudDo6S2V5RG93bjsKKyAgICByZXR1cm4gZXZl
bnQtPnR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFID8gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwIDog
UGxhdGZvcm1FdmVudFR5cGU6OktleURvd247CiB9CiAKIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpN
b2RpZmllcnMgbW9kaWZpZXJzRm9yR2RrS2V5RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50KQpAQCAt
NTg5LDcgKzU4OSw3IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50KEdka0V2ZW50S2V5KiBldmVudCwgY29uc3QgQ29tcG9zaXRpCiAgICAgICAgIG1fd2luZG93
c1ZpcnR1YWxLZXlDb2RlID0gVktfUFJPQ0VTU0tFWTsKIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dh
cmRDb21wYXRpYmlsaXR5TW9kZSkKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJp
Z3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENv
bXBhdGliaWxpdHlNb2RlKQogewogICAgIC8vIENhbiBvbmx5IGNoYW5nZSB0eXBlIGZyb20gS2V5
RG93biB0byBSYXdLZXlEb3duIG9yIENoYXIsIGFzIHdlIGxhY2sgaW5mb3JtYXRpb24gZm9yIG90
aGVyIGNvbnZlcnNpb25zLgogICAgIEFTU0VSVChtX3R5cGUgPT0gS2V5RG93bik7CkBAIC01OTgs
MTAgKzU5OCwxMCBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5
RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogICAgIGlmIChiYWNrd2FyZENv
bXBhdGliaWxpdHlNb2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodHlwZSA9PSBQbGF0
Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5
cGU6OlJhd0tleURvd24pIHsKICAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1f
dW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUGxhdGZv
cm1FdmVudDo6Q2hhciAmJiBtX2NvbXBvc2l0aW9uUmVzdWx0cy5jb21wb3NpdGlvblVwZGF0ZWQo
KSkgeworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6Q2hhciAmJiBt
X2NvbXBvc2l0aW9uUmVzdWx0cy5jb21wb3NpdGlvblVwZGF0ZWQoKSkgewogICAgICAgICAvLyBI
YXZpbmcgZW1wdHkgdGV4dCwgcHJldmVudHMgdGhpcyBDaGFyICh3aGljaCBpcyBhIERPTSBrZXlw
cmVzcykgZXZlbnQKICAgICAgICAgLy8gZnJvbSBnb2luZyB0byB0aGUgRE9NLiBLZXlzIHRoYXQg
dHJpZ2dlciBjb21wb3NpdGlvbiBldmVudHMgc2hvdWxkIG5vdAogICAgICAgICAvLyBmaXJlIGtl
eXByZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1N
b3VzZUV2ZW50R3RrLmNwcAppbmRleCAwNDEwMWMxZmEzZDcyODY2Y2JjOTUzZjg0YjU3Mjg1OTM3
ZjMyMTNkLi5jNjY0MGI2MTYyYzIzNDBmMGUwZTY0MWM1ZGEyNWE2OWRmZGI0ZjU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3Rr
LmNwcApAQCAtNTcsOSArNTcsOSBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VF
dmVudChHZGtFdmVudEJ1dHRvbiogZXZlbnQpCiAgICAgY2FzZSBHREtfMkJVVFRPTl9QUkVTUzoK
ICAgICBjYXNlIEdES18zQlVUVE9OX1BSRVNTOgogICAgIGNhc2UgR0RLX0JVVFRPTl9SRUxFQVNF
OgotICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAg
IG1fdHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgICAgIGlmIChl
dmVudC0+dHlwZSA9PSBHREtfQlVUVE9OX1JFTEVBU0UpIHsKLSAgICAgICAgICAgIG1fdHlwZSA9
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgICAgICAgICBtX3R5cGUgPSBQbGF0
Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZDsKICAgICAgICAgICAgIG1fY2xpY2tDb3VudCA9
IDA7CiAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUgPT0gR0RLX0JVVFRPTl9QUkVTUykK
ICAgICAgICAgICAgIG1fY2xpY2tDb3VudCA9IDE7CkBAIC05OSw3ICs5OSw3IEBAIFBsYXRmb3Jt
TW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEdka0V2ZW50TW90aW9uKiBtb3Rpb24pCiAK
ICAgICBzd2l0Y2ggKG1vdGlvbi0+dHlwZSkgewogICAgIGNhc2UgR0RLX01PVElPTl9OT1RJRlk6
Ci0gICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgIG1f
dHlwZSA9IFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOwogICAgICAgICBtX2J1dHRvbiA9
IE5vQnV0dG9uOwogICAgICAgICBtX2NsaWNrQ291bnQgPSAwOwogICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0
ay5jcHAKaW5kZXggNTIwYmY5YTg5ZDc2ZDA1ZjUyOGVkMzQ5ZGUwNTM2NzI3MTJkZjhhNy4uMDc4
ZTQ0MDliYjg2YmU1NmJiN2VhZDQ0MjM3NjgxOGM0YjgxY2JjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2RrRXZl
bnRTY3JvbGwqIGV2ZW50KQogewogICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkZWx0YSA9IDE7CiAK
LSAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKKyAgICBtX3R5cGUgPSBQbGF0Zm9y
bUV2ZW50VHlwZTo6V2hlZWw7CiAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwogCiAg
ICAgbV9tb2RpZmllcnMgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0tleUV2ZW50SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50
SU9TLm1tCmluZGV4IDM5MWI2YWE5OTMwYjFiYTRkMjA1MDBkN2ZhNzc2ZDBkNTI3NmNlODMuLjMx
YWU1MDE0YzkyNjBmMGFiYzNlNDM4OGQwZjhkZGQwOWQ1MDEzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KQEAgLTM0LDcgKzM0LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2Fy
ZENvbXBhdGliaWxpdHlNb2RlKQordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmln
dWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50VHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUpCiB7CiAgICAgLy8gQ2FuIG9ubHkgY2hhbmdlIHR5cGUgZnJvbSBLZXlE
b3duIHRvIFJhd0tleURvd24gb3IgQ2hhciwgYXMgd2UgbGFjayBpbmZvcm1hdGlvbiBmb3Igb3Ro
ZXIgY29udmVyc2lvbnMuCiAgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKQEAgLTQzLDcg
KzQzLDcgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25F
dmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICBpZiAoYmFja3dhcmRDb21wYXRp
YmlsaXR5TW9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bikgeworICAgIGlmICh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpS
YXdLZXlEb3duKSB7CiAgICAgICAgIG1fdGV4dCA9IFN0cmluZygpOwogICAgICAgICBtX3VubW9k
aWZpZWRUZXh0ID0gU3RyaW5nKCk7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCA5NDk1
MWRlMWM1M2ZlNDc4YmVjZDg0ZTMxOTg1NzhiYzI1MWZlNzU3Li45ZjI2ZjAzZjkxMGU3ZjgyYmFk
NTRkNWMzN2JhNDAwMDEzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC02MSwxOCArNjEsMTggQEAg
c3RhdGljIGlubGluZSBJbnRQb2ludCBnbG9iYWxQb2ludEZvckV2ZW50KFdlYkV2ZW50ICpldmVu
dCkKICAgICByZXR1cm4gcG9pbnRGb3JFdmVudChldmVudCk7CiB9CiAKLXN0YXRpYyBQbGF0Zm9y
bUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlKFdlYkV2ZW50ICpldmVudCkKK3N0YXRpYyBQbGF0
Zm9ybUV2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZShXZWJFdmVudCAqZXZlbnQpCiB7CiAgICAgc3dp
dGNoIChldmVudC50eXBlKSB7CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlRG93bjoKLSAgICAgICAg
cmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAgICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgY2FzZSBXZWJFdmVudE1vdXNlVXA6Ci0g
ICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOworICAgICAgICByZXR1
cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQ7CiAgICAgY2FzZSBXZWJFdmVudE1v
dXNlTW92ZWQ6Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAg
ICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92ZWQ7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91
c2VQcmVzc2VkOwogICAgIH0KIH0KIApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIEFTU0VSVChldmVudC50eXBlID09IFdlYkV2ZW50U2Nyb2xsV2hlZWwpOwogCi0g
ICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOworICAgICAgICBtX3R5cGUgPSBQ
bGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWw7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAg
ICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwogCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlEb3du
IHx8IGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCk7CiAKLSAgICAgICAgbV90eXBlID0gKGV2
ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxhdGZv
cm1FdmVudDo6S2V5RG93bik7CisgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2
ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5VXAgOiBQbGF0Zm9ybUV2ZW50VHlwZTo6
S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQp
OwogICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CiAKQEAgLTE5NywyMCArMTk3
LDIwIEBAIHN0YXRpYyBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUGhhc2VUeXBlIGNvbnZlcnRU
b3VjaFBoYXNlKE5TTnVtYmVyICp0b3VjaFBoYXNlCiAgICAgcmV0dXJuIFBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQaGFzZUJlZ2FuOwogfQogCi1zdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSB0
b3VjaEV2ZW50VHlwZShXZWJFdmVudCAqZXZlbnQpCitzdGF0aWMgUGxhdGZvcm1FdmVudFR5cGUg
dG91Y2hFdmVudFR5cGUoV2ViRXZlbnQgKmV2ZW50KQogewogICAgIHN3aXRjaCAoZXZlbnQudHlw
ZSkgewogICAgIGNhc2UgV2ViRXZlbnRUb3VjaEJlZ2luOgotICAgICAgICByZXR1cm4gUGxhdGZv
cm1FdmVudDo6VG91Y2hTdGFydDsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpU
b3VjaFN0YXJ0OwogICAgIGNhc2UgV2ViRXZlbnRUb3VjaEVuZDoKLSAgICAgICAgcmV0dXJuIFBs
YXRmb3JtRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6
OlRvdWNoRW5kOwogICAgIGNhc2UgV2ViRXZlbnRUb3VjaENhbmNlbDoKLSAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnQ6OlRvdWNoQ2FuY2VsOworICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVu
dFR5cGU6OlRvdWNoQ2FuY2VsOwogICAgIGNhc2UgV2ViRXZlbnRUb3VjaENoYW5nZToKLSAgICAg
ICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAgICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnRUeXBlOjpUb3VjaE1vdmU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpUb3VjaENhbmNlbDsK
KyAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaENhbmNlbDsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRv
cklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5t
bQppbmRleCAwYWY1MjEyOGE1M2FkNzEwMDBhNzBkMGQxNmMzOGI0N2I1MTQwZTU5Li4xMzFjYjI1
ZWUzMzNkYmE5MTkwNjhiMDk5MjkyZWJiOTEyZjA3NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsQW5pbWF0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tCkBAIC01OCw3ICs1OCw3IEBAIFNj
cm9sbEFuaW1hdG9ySU9TOjp+U2Nyb2xsQW5pbWF0b3JJT1MoKQogCiBib29sIFNjcm9sbEFuaW1h
dG9ySU9TOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hF
dmVudCkKIHsKLSAgICBpZiAodG91Y2hFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6VG91
Y2hTdGFydCAmJiB0b3VjaEV2ZW50LnRvdWNoQ291bnQoKSA9PSAxKSB7CisgICAgaWYgKHRvdWNo
RXZlbnQudHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaFN0YXJ0ICYmIHRvdWNoRXZl
bnQudG91Y2hDb3VudCgpID09IDEpIHsKICAgICAgICAgbV9maXJzdFRvdWNoUG9pbnQgPSB0b3Vj
aEV2ZW50LnRvdWNoTG9jYXRpb25BdEluZGV4KDApOwogICAgICAgICBtX2xhc3RUb3VjaFBvaW50
ID0gbV9maXJzdFRvdWNoUG9pbnQ7CiAgICAgICAgIG1faW5Ub3VjaFNlcXVlbmNlID0gdHJ1ZTsK
QEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvcklPUzo6aGFuZGxlVG91Y2hFdmVu
dChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIHRvdWNoRXZlbnQpCiAgICAgaWYgKCFtX2luVG91
Y2hTZXF1ZW5jZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHRvdWNoRXZlbnQu
dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlRvdWNoRW5kIHx8IHRvdWNoRXZlbnQudHlwZSgpID09
IFBsYXRmb3JtRXZlbnQ6OlRvdWNoQ2FuY2VsKSB7CisgICAgaWYgKHRvdWNoRXZlbnQudHlwZSgp
ID09IFBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaEVuZCB8fCB0b3VjaEV2ZW50LnR5cGUoKSA9PSBQ
bGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hDYW5jZWwpIHsKICAgICAgICAgbV9pblRvdWNoU2VxdWVu
Y2UgPSBmYWxzZTsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYUZvclRvdWNoU2VxdWVuY2UgPSAw
OwogICAgICAgICBpZiAobV9zdGFydGVkU2Nyb2xsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IDRiZGY2MjA3YjZjNTVmMTJlMjg3YTcxNDFhMjcwZWE5
MmQyMmRlMmMuLjJlZDQ3MWM4NGEwY2RhNmY0MzY5ZDc3ZjViYzgzZTQ2MzNmYTJmYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KQEAgLTM3LDE2ICszNywx
NiBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBl
LCBib29sIGJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUpCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUsIGJv
b2wgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKIHsKICAgICAvLyBDYW4gb25seSBjaGFuZ2Ug
dHlwZSBmcm9tIEtleURvd24gdG8gUmF3S2V5RG93biBvciBDaGFyLCBhcyB3ZSBsYWNrIGluZm9y
bWF0aW9uIGZvciBvdGhlciBjb252ZXJzaW9ucy4KLSAgICBBU1NFUlQobV90eXBlID09IEtleURv
d24pOwotICAgIEFTU0VSVCh0eXBlID09IFJhd0tleURvd24gfHwgdHlwZSA9PSBDaGFyKTsKKyAg
ICBBU1NFUlQobV90eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlEb3duKTsKKyAgICBBU1NF
UlQodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93biB8fCB0eXBlID09IFBsYXRm
b3JtRXZlbnRUeXBlOjpDaGFyKTsKICAgICBtX3R5cGUgPSB0eXBlOwogICAgIGlmIChiYWNrd2Fy
ZENvbXBhdGliaWxpdHlNb2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAodHlwZSA9PSBS
YXdLZXlEb3duKSB7CisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURv
d24pIHsKICAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CiAgICAgICAgIG1fdW5tb2RpZmllZFRl
eHQgPSBTdHJpbmcoKTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGJlODJhOWE0MDQw
MDRiZWM4ZjZmYzcyM2RmYjk0YzY2ODJiZjdmMGYuLjhjZmFmOGU1ZTNmYmJmNzgzNDQ1Mzk1YTY1
NjM0MTZkZjM4ZTViYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMg
TW91c2VCdXR0b24gbW91c2VCdXR0b25Gb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICB9CiB9
CiAKLXN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNF
dmVudCogZXZlbnQpCitzdGF0aWMgUGxhdGZvcm1FdmVudFR5cGUgbW91c2VFdmVudFR5cGVGb3JF
dmVudChOU0V2ZW50KiBldmVudCkKIHsKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkgewogICAg
ICAgICBjYXNlIE5TTGVmdE1vdXNlRHJhZ2dlZDoKQEAgLTEyNCwxNyArMTI0LDE3IEBAIHN0YXRp
YyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1vdXNlRXZlbnRUeXBlRm9yRXZlbnQoTlNFdmVudCogZXZl
bnQpCiAgICAgICAgIGNhc2UgTlNNb3VzZU1vdmVkOgogICAgICAgICBjYXNlIE5TT3RoZXJNb3Vz
ZURyYWdnZWQ6CiAgICAgICAgIGNhc2UgTlNSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICAgICAgICAg
IHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICAgICAgcmV0dXJuIFBs
YXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOwogICAgICAgICBjYXNlIE5TTGVmdE1vdXNlRG93
bjoKICAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VEb3duOgogICAgICAgICBjYXNlIE5TT3RoZXJN
b3VzZURvd246Ci0gICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2Vk
OworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAg
ICAgICAgIGNhc2UgTlNMZWZ0TW91c2VVcDoKICAgICAgICAgY2FzZSBOU1JpZ2h0TW91c2VVcDoK
ICAgICAgICAgY2FzZSBOU090aGVyTW91c2VVcDoKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVJlbGVhc2VkOworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRU
eXBlOjpNb3VzZVJlbGVhc2VkOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJu
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudFR5cGU6Ok1vdXNlTW92ZWQ7CiAgICAgfQogfQogCkBAIC00MjIsNyArNDIyLDcgQEAgcHVi
bGljOgogICAgIFBsYXRmb3JtV2hlZWxFdmVudEJ1aWxkZXIoTlNFdmVudCAqZXZlbnQsIE5TVmll
dyAqd2luZG93VmlldykKICAgICB7CiAgICAgICAgIC8vIFBsYXRmb3JtRXZlbnQKLSAgICAgICAg
bV90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBQbGF0Zm9ybUV2ZW50OjpXaGVl
bDsKKyAgICAgICAgbV90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBQbGF0Zm9y
bUV2ZW50VHlwZTo6V2hlZWw7CiAgICAgICAgIG1fbW9kaWZpZXJzICAgICAgICAgICAgICAgICAg
ICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX3RpbWVzdGFtcCAg
ICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsK
IApAQCAtNDYxLDcgKzQ2MSw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnRC
dWlsZGVyKE5TRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgLy8gUGxhdGZvcm1FdmVudAot
ICAgICAgICBtX3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlzS2V5VXBFdmVu
dChldmVudCkgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd247
CisgICAgICAgIG1fdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaXNLZXlVcEV2
ZW50KGV2ZW50KSA/IFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlVcCA6IFBsYXRmb3JtRXZlbnRUeXBl
OjpLZXlEb3duOwogICAgICAgICBtX21vZGlmaWVycyAgICAgICAgICAgICAgICAgICAgICAgICA9
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV90aW1lc3RhbXAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCmluZGV4IDAzYzhlYTI2N2Vj
NmYyMWEzNGI3ZDAwYjBiZTY1YTEwM2ZlMjQ1ZGQuLjRmMDhiMWFiMTJmODJkN2VjY2M1ZDI5MWI2
ZWJlZGRiYzhhNDk5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9L
ZXlFdmVudFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50
V2luLmNwcApAQCAtMTQ2LDkgKzE0Niw5IEBAIHN0YXRpYyBTdHJpbmcga2V5SWRlbnRpZmllckZv
cldpbmRvd3NLZXlDb2RlKHVuc2lnbmVkIHNob3J0IGtleUNvZGUpCiAgICAgfQogfQogCi1zdGF0
aWMgYm9vbCBpc0tleXBhZEV2ZW50KFdQQVJBTSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwgUGxhdGZv
cm1FdmVudDo6VHlwZSB0eXBlKQorc3RhdGljIGJvb2wgaXNLZXlwYWRFdmVudChXUEFSQU0gY29k
ZSwgTFBBUkFNIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUpCiB7Ci0gICAgaWYgKHR5
cGUgIT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93biAmJiB0eXBlICE9IFBsYXRmb3JtRXZlbnQ6
OktleVVwKQorICAgIGlmICh0eXBlICE9IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duICYm
IHR5cGUgIT0gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBzd2l0Y2ggKGNvZGUpIHsKQEAgLTIxOSwxMiArMjE5LDEyIEBAIHN0YXRpYyBpbmxp
bmUgU3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyhVQ2hhciBjKQogICAgIHJldHVybiBTdHJp
bmcoJmMsIDEpOwogfQogCi1QbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRF
dmVudChIV05ELCBXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFR5cGUgdHlwZSwgYm9vbCBz
eXN0ZW1LZXkpCitQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChI
V05ELCBXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlIHR5cGUs
IGJvb2wgc3lzdGVtS2V5KQogICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBHZXRLZXlTdGF0ZShW
S19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAm
IEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFT
S19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKLSAgICAsIG1fdGV4dCgo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2Rl
KSA6IFN0cmluZygpKQotICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2
ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQotICAg
ICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5n
KCkgOiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCi0gICAgLCBtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSgodHlwZSA9PSBSYXdLZXlEb3duIHx8IHR5cGUgPT0gS2V5VXApID8g
d2luZG93c0tleWNvZGVXaXRoTG9jYXRpb24oY29kZSwga2V5RGF0YSkgOiAwKQorICAgICwgbV90
ZXh0KCh0eXBlID09IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0
cmluZyhjb2RlKSA6IFN0cmluZygpKQorICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQ
bGF0Zm9ybUV2ZW50VHlwZTo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBT
dHJpbmcoKSkKKyAgICAsIG1fa2V5SWRlbnRpZmllcigodHlwZSA9PSBQbGF0Zm9ybUV2ZW50VHlw
ZTo6Q2hhcikgPyBTdHJpbmcoKSA6IGtleUlkZW50aWZpZXJGb3JXaW5kb3dzS2V5Q29kZShjb2Rl
KSkKKyAgICAsIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlKCh0eXBlID09IFBsYXRmb3JtRXZlbnRU
eXBlOjpSYXdLZXlEb3duIHx8IHR5cGUgPT0gUGxhdGZvcm1FdmVudFR5cGU6OktleVVwKSA/IHdp
bmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKGNvZGUsIGtleURhdGEpIDogMCkKICAgICAsIG1fbmF0
aXZlVmlydHVhbEtleUNvZGUobV93aW5kb3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBtX21hY0No
YXJDb2RlKDApCiAgICAgLCBtX2F1dG9SZXBlYXQoSElXT1JEKGtleURhdGEpICYgS0ZfUkVQRUFU
KQpAQCAtMjMzLDcgKzIzMyw3IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50KEhXTkQsIFdQQVJBTSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwKIHsKIH0KIAotdm9p
ZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlLCBi
b29sKQordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVu
dChQbGF0Zm9ybUV2ZW50VHlwZSwgYm9vbCkKIHsKICAgICAvLyBObyBLZXlEb3duIGV2ZW50cyBv
biBXaW5kb3dzIHRvIGRpc2FtYmlndWF0ZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdp
bi5jcHAKaW5kZXggMDU1YzJhYTA1OTVhOWM2YWY1YjIzMmU2OTE4ZWNiYTE0ZTdkNWQ5Ny4uMGY4
YzU3MmVhYjM1OWJlYjU0MDZlMTU0OGU1NGU2OThhMjQ4ZGRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtTW91c2VFdmVudFdpbi5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RhdGljIEludFBvaW50IGdsb2JhbFBvc2l0aW9uRm9yRXZlbnQoSFdORCBo
V25kLCBMUEFSQU0gbFBhcmFtKQogICAgIHJldHVybiBwb2ludDsKIH0KIAotc3RhdGljIFBsYXRm
b3JtRXZlbnQ6OlR5cGUgbWVzc2FnZVRvRXZlbnRUeXBlKFVJTlQgbWVzc2FnZSkKK3N0YXRpYyBQ
bGF0Zm9ybUV2ZW50VHlwZSBtZXNzYWdlVG9FdmVudFR5cGUoVUlOVCBtZXNzYWdlKQogewogICAg
IHN3aXRjaCAobWVzc2FnZSkgewogICAgICAgICBjYXNlIFdNX0xCVVRUT05EQkxDTEs6CkBAIC01
OSwyMyArNTksMjMgQEAgc3RhdGljIFBsYXRmb3JtRXZlbnQ6OlR5cGUgbWVzc2FnZVRvRXZlbnRU
eXBlKFVJTlQgbWVzc2FnZSkKICAgICAgICAgY2FzZSBXTV9MQlVUVE9ORE9XTjoKICAgICAgICAg
Y2FzZSBXTV9SQlVUVE9ORE9XTjoKICAgICAgICAgY2FzZSBXTV9NQlVUVE9ORE9XTjoKLSAgICAg
ICAgICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CisgICAgICAgICAgICBy
ZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUHJlc3NlZDsKIAogICAgICAgICBjYXNlIFdN
X0xCVVRUT05VUDoKICAgICAgICAgY2FzZSBXTV9SQlVUVE9OVVA6CiAgICAgICAgIGNhc2UgV01f
TUJVVFRPTlVQOgotICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFz
ZWQ7CisgICAgICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlUmVsZWFzZWQ7
CiAKICNpZiAhT1MoV0lOQ0UpCiAgICAgICAgIGNhc2UgV01fTU9VU0VMRUFWRToKICNlbmRpZgog
ICAgICAgICBjYXNlIFdNX01PVVNFTU9WRToKLSAgICAgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb3VzZU1vdmVkOworICAgICAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnRUeXBlOjpN
b3VzZU1vdmVkOwogCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgICAgIC8vTW92ZSBpcyByZWxhdGl2ZWx5IGhhcm1sZXNzCi0gICAg
ICAgICAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsKKyAgICAgICAgICAgIHJl
dHVybiBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZDsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcAppbmRleCA1MjI0Njk3MThk
OWU1YjM5NDQyMTYxZGFhZjUxY2Y2MWU4MzIxOGFkLi5lMjAzYmUzMTY2ZWJmMmQyNTEyM2U5YTc5
NDQ5NTMwYmQ0ODEyZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
V2hlZWxFdmVudFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBpbnQgdmVydGljYWxTY3JvbGxM
aW5lcygpCiB9CiAKIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQg
aFduZCwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRQb2ludCYgbG9jYXRpb24p
Ci0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1F
dmVudChQbGF0Zm9ybUV2ZW50VHlwZTo6V2hlZWwsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCA6OkdldFRpY2tDb3VudCgpICogMC4wMDEpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZShmYWxzZSkKIHsKICAgICBtX2RlbHRhWCA9IGRlbHRhLndpZHRoKCk7CkBAIC04NSw3
ICs4NSw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQgaFdu
ZCwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QKIH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50
OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25kLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtLCBib29sIGlzTW91c2VIV2hlZWwpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZl
bnQ6OldoZWVsLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5
U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5V
KSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6
IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OldoZWVsLCB3UGFyYW0gJiBNS19TSElG
VCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIDo6
R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVu
dChoV25kLCBsUGFyYW0pKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZv
ckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuY3BwCmluZGV4IDk5ZjA5NzU1Y2ZlMTYyOGNmNTgwNWQ1ZDg5Y2EwNmMzMDZk
N2NjNTguLjI5M2FhNmI0ODVmMzcyNTM2YTgzNjE3OWUwNDk2ZGVlMjA2M2FlYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNw
cApAQCAtMzE4LDcgKzMxOCw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVFZGl0aW5n
S2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIAogICAgIEVkaXRvcjo6Q29tbWFu
ZCBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoaW50ZXJwcmV0S2V5RXZlbnQoZXZl
bnQpKTsKIAotICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tl
eURvd24pIHsKKyAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50VHlwZTo6
UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9lc24ndCBoYXZlIGVub3VnaCBpbmZv
cm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29tbWFuZHMgdGhhdCBqdXN0IGluc2Vy
dCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxkIGJlIHRyZWF0ZWQsCiAgICAgICAg
IC8vIHNvIHdlIGxlYXZlIGl0IHVwb24gV2ViQ29yZSB0byBlaXRoZXIgaGFuZGxlIHRoZW0gaW1t
ZWRpYXRlbHkgKGUuZy4gVGFiIHRoYXQgY2hhbmdlcyBmb2N1cykgb3IgbGV0IGEga2V5cHJlc3Mg
ZXZlbnQgYmUgZ2VuZXJhdGVkCiAgICAgICAgIC8vIChlLmcuIFRhYiB0aGF0IGluc2VydHMgYSBU
YWIgY2hhcmFjdGVyLCBvciBFbnRlcikuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3RvdWNoX2V2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdG91Y2hf
ZXZlbnQuY3BwCmluZGV4IDI2NmQxNzk2OWExZGM5ZTlmNGViZWEzNDc1OGY2Yjg4YjRmMzkzMWUu
LjYxMzk2Mjg3ZDEzZTY5NDc1NTkxNzAzZDViMGVmN2Q0MDBmYzUwMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdG91Y2hfZXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdG91Y2hfZXZlbnQuY3BwCkBAIC03MSwxNiArNzEsMTYgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICAgY2FzZSBFV0tfVE9V
Q0hfU1RBUlQ6Ci0gICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpU
b3VjaFN0YXJ0OworICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5
cGU6OlRvdWNoU3RhcnQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFV0tfVE9V
Q0hfTU9WRToKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlRv
dWNoTW92ZTsKKyAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBl
OjpUb3VjaE1vdmU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFV0tfVE9VQ0hf
RU5EOgotICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hF
bmQ7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91
Y2hFbmQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFV0tfVE9VQ0hfQ0FOQ0VM
OgotICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hDYW5j
ZWw7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91
Y2hDYW5jZWw7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggYjE2Nzc1OTUxNGRmNjFiMjcz
ODRhY2NjYmEyMjVlYTRlZWMzODVmNS4uZjZjMzhjZDI2ZTk1YzdjMDMzZjUxYzJjNjAzMWY5NWNh
N2ZhOGQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwCkBAIC00NDMsNyArNDQzLDcgQEAgdm9pZCBFZGl0b3JDbGllbnQ6
OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgIC8vIER1
cmluZyBSYXdLZXlEb3duIGV2ZW50cyBpZiBhbiBlZGl0b3IgY29tbWFuZCB3aWxsIGluc2VydCB0
ZXh0LCBkZWZlcgogICAgICAgICAvLyB0aGUgaW5zZXJ0aW9uIHVudGlsIHRoZSBrZXlwcmVzcyBl
dmVudC4gV2Ugd2FudCBrZXlkb3duIHRvIGJ1YmJsZSB1cAogICAgICAgICAvLyB0aHJvdWdoIHRo
ZSBET00gZmlyc3QuCi0gICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudDo6UmF3S2V5RG93bikgeworICAgICAgICBpZiAocGxhdGZvcm1FdmVudC0+dHlwZSgp
ID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgICAgICBpZiAoZXhl
Y3V0ZVBlbmRpbmdFZGl0b3JDb21tYW5kcyhmcmFtZSwgZmFsc2UpKQogICAgICAgICAgICAgICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAKaW5kZXggMDc5NzEzMTZiNzBhMjJmZmM1Zjc2OTgzNThlOTRjODc3
MzU5ZDNhZC4uMzliZmFlNTdmNmQ1NGNjNTZmYTA1NDI0OWQ4ODdjNDU5MDUyNzAzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNDY5LDcgKzQ2OSw3
IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfcG9wdXBfbWVudV9oYW5kbGVyKEd0
a1dpZGdldCogd2lkZ2V0KQogICAgIGxvY2F0aW9uLnNocnVua1RvKEludFBvaW50KHZpZXctPndp
ZHRoKCkgLSBnQ29udGV4dE1lbnVNYXJnaW4sIHZpZXctPmhlaWdodCgpIC0gZ0NvbnRleHRNZW51
TWFyZ2luKSk7CiAKICAgICBJbnRQb2ludCBnbG9iYWxQb2ludChjb252ZXJ0V2lkZ2V0UG9pbnRU
b1NjcmVlblBvaW50KHdpZGdldCwgbG9jYXRpb24pKTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQobG9jYXRpb24sIGdsb2JhbFBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VQcmVzc2VkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZ3RrX2dldF9jdXJy
ZW50X2V2ZW50X3RpbWUoKSk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGxvY2F0aW9u
LCBnbG9iYWxQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNz
ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBndGtfZ2V0X2N1cnJlbnRfZXZlbnRf
dGltZSgpKTsKICAgICByZXR1cm4gd2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51
X2V2ZW50KFdFQktJVF9XRUJfVklFVyh3aWRnZXQpLCBldmVudCwgdHJ1ZSk7CiB9CiAjZW5kaWYg
Ly8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQppbmRleCBkNDFmYmEwMzgxNzM4ZWMyMzljMmIzYWYyNmZhMThmYzVkNWE2MWYyLi4wMDVlOTdj
NjMzYTM3NWYwOTZlMzNiM2FjY2NiMTNmNmM3NGVmZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KQEAgLTk2OCw3ICs5NjgsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFT
b3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgcmV0dXJu
OwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0
aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgZ2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+
cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSwKLSAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRU
aW1lKCkpOworICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3Zl
ZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwogICAgIF9w
cml2YXRlLT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VFbmRlZEF0KGV2ZW50
LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA4MWY5Yjk4NWViMmRiNzE5MWY1NDE4ODY1OTBj
NDlhMWU5M2U5MDNhLi4zNzg5ZDBhYTdiOTA5YjlkNjlmNGZjMzgwYmY4ZTU5Y2VjNWUwZDEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTQxNjAsNyArNDE2
MCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2
ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgc3dpdGNoIChbZXZlbnQgdHlwZV0pIHsKICAgICBj
YXNlIE5TS2V5RG93bjogewogICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1F
dmVudCA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
ZXZlbnQpOwotICAgICAgICBwbGF0Zm9ybUV2ZW50LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQ
bGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKKyAgICAgICAgcGxhdGZvcm1FdmVudC5kaXNhbWJp
Z3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24pOwogICAgICAg
ICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGNvcmVGcmFtZS0+
ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgfQogICAgIGNhc2UgTlNLZXlVcDoKQEAg
LTU4MDIsNyArNTgwMiw3IEBAIHN0YXRpYyBCT09MIHdyaXRpbmdEaXJlY3Rpb25LZXlCaW5kaW5n
c0VuYWJsZWQoKQogICAgICAgICB9CiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyB0ZXh0IGlu
c2VydGlvbiBjb21tYW5kcywgZGVmYXVsdCBrZXlkb3duIGhhbmRsZXIgaXMgdGhlIHJpZ2h0IHRp
bWUgdG8gZXhlY3V0ZSB0aGUgY29tbWFuZHMuCiAgICAgICAgIC8vIEtleXByZXNzIChDaGFyIGV2
ZW50KSBoYW5kbGVyIGlzIHRoZSBsYXRlc3Qgb3Bwb3J0dW5pdHkgdG8gZXhlY3V0ZS4KLSAgICAg
ICAgaWYgKCFoYXZlVGV4dEluc2VydGlvbkNvbW1hbmRzIHx8IHBsYXRmb3JtRXZlbnQtPnR5cGUo
KSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKQorICAgICAgICBpZiAoIWhhdmVUZXh0SW5zZXJ0aW9u
Q29tbWFuZHMgfHwgcGxhdGZvcm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpD
aGFyKQogICAgICAgICAgICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdOwog
ICAgIH0KICAgICBfcHJpdmF0ZS0+aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggNWUyMGQ2MjMyMTkzNGJi
YjgzMGI3MTFmYmM3NmNkY2UzZTk5YWUxZC4uMjRiZTc1NTQyODFhMzNiYTc4OGMzMmQxYjJjMmRk
YzUzNGU5NTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQREZW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQpAQCAt
MTAzOCw3ICsxMDM4LDcgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZy
YW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBO
U0tleURvd246IHsKICAgICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRm
b3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7Ci0g
ICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bik7CisgICAgICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZv
cm1FdmVudFR5cGU6OlJhd0tleURvd24pOwogICAgICAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2
ZW50OjpjcmVhdGUocGUsIDApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkRyb3BTb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViRHJvcFNvdXJjZS5jcHAKaW5kZXggNTdhODNiMzFkNTg1ZDUyMzhlMDVkN2Q3NDJm
MjMyYjVkMWUxODAyNy4uNjJlNTc2NDQ1ZDg2NmU2ZTYzOWUxZDlhNDdiNjY1MGIwZGNmMjRmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBQbGF0
Zm9ybU1vdXNlRXZlbnQgZ2VuZXJhdGVNb3VzZUV2ZW50KFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wg
aXNEcmFnKQogICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+dmlld1dpbmRvdygoT0xFX0hBTkRM
RSopJnZpZXdXaW5kb3cpKSkKICAgICAgICAgOjpTY3JlZW5Ub0NsaWVudCh2aWV3V2luZG93LCAo
TFBQT0lOVCkmbG9jYWxwdCk7CiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChJbnRQb2lu
dChsb2NhbHB0LngsIGxvY2FscHQueSksIEludFBvaW50KHB0LngsIHB0LnkpLAotICAgICAgICBp
c0RyYWcgPyBMZWZ0QnV0dG9uIDogTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQs
IDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpKTsKKyAgICAgICAg
aXNEcmFnID8gTGVmdEJ1dHRvbiA6IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VN
b3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkpOwogfQog
CiBTVERNRVRIT0RJTVAgV2ViRHJvcFNvdXJjZTo6UXVlcnlDb250aW51ZURyYWcoQk9PTCBmRXNj
YXBlUHJlc3NlZCwgRFdPUkQgZ3JmS2V5U3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDk3
MDc0OWRmNjJmOWEyZTY4YWZhMzc4YzJmMDQ3ZTVhNjNkZjUwNDEuLjQyNTViNmM3NmY4MjE4NTM5
ZjdiNGNiYjE3ZDgyYjI1NTg4OTgzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0xODYxLDcg
KzE4NjEsNyBAQCBib29sIFdlYlZpZXc6OmV4ZWNDb21tYW5kKFdQQVJBTSB3UGFyYW0sIExQQVJB
TSAvKmxQYXJhbSovKQogCiBib29sIFdlYlZpZXc6OmtleVVwKFdQQVJBTSB2aXJ0dWFsS2V5Q29k
ZSwgTFBBUkFNIGtleURhdGEsIGJvb2wgc3lzdGVtS2V5RG93bikKIHsKLSAgICBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQga2V5RXZlbnQobV92aWV3V2luZG93LCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0
YSwgUGxhdGZvcm1FdmVudDo6S2V5VXAsIHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCBrZXlFdmVudChtX3ZpZXdXaW5kb3csIHZpcnR1YWxLZXlDb2RlLCBrZXlEYXRh
LCBQbGF0Zm9ybUV2ZW50VHlwZTo6S2V5VXAsIHN5c3RlbUtleURvd24pOwogCiAgICAgRnJhbWUm
IGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsK
ICAgICBtX2N1cnJlbnRDaGFyYWN0ZXJDb2RlID0gMDsKQEAgLTIwMDMsNyArMjAwMyw3IEBAIGJv
b2wgV2ViVmlldzo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0
KQogCiAgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFu
ZChpbnRlcnByZXRLZXlFdmVudChldnQpKTsKIAotICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09
IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9
PSBQbGF0Zm9ybUV2ZW50VHlwZTo6UmF3S2V5RG93bikgewogICAgICAgICAvLyBXZWJLaXQgZG9l
c24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCBtb2RlIHRvIGRlY2lkZSBob3cgY29t
bWFuZHMgdGhhdCBqdXN0IGluc2VydCB0ZXh0IGlmIGV4ZWN1dGVkIHZpYSBFZGl0b3Igc2hvdWxk
IGJlIHRyZWF0ZWQsCiAgICAgICAgIC8vIHNvIHdlIGxlYXZlIGl0IHVwb24gV2ViQ29yZSB0byBl
aXRoZXIgaGFuZGxlIHRoZW0gaW1tZWRpYXRlbHkgKGUuZy4gVGFiIHRoYXQgY2hhbmdlcyBmb2N1
cykgb3IgbGV0IGEga2V5cHJlc3MgZXZlbnQgYmUgZ2VuZXJhdGVkCiAgICAgICAgIC8vIChlLmcu
IFRhYiB0aGF0IGluc2VydHMgYSBUYWIgY2hhcmFjdGVyLCBvciBFbnRlcikuCkBAIC0yMDMxLDcg
KzIwMzEsNyBAQCBib29sIFdlYlZpZXc6OmtleURvd24oV1BBUkFNIHZpcnR1YWxLZXlDb2RlLCBM
UEFSQU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3duKQogI2VuZGlmCiAgICAgRnJhbWUmIGZy
YW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAot
ICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3ZpZXdXaW5kb3csIHZpcnR1YWxL
ZXlDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duLCBzeXN0ZW1LZXlEb3du
KTsKKyAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5RXZlbnQobV92aWV3V2luZG93LCB2aXJ0
dWFsS2V5Q29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVudFR5cGU6OlJhd0tleURvd24sIHN5c3Rl
bUtleURvd24pOwogICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLmtleUV2
ZW50KGtleUV2ZW50KTsKIAogICAgIC8vIFRoZXNlIGV2ZW50cyBjYW5ub3QgYmUgY2FuY2VsZWQs
IGFuZCB3ZSBoYXZlIG5vIGRlZmF1bHQgaGFuZGxpbmcgZm9yIHRoZW0uCkBAIC0yMTAzLDcgKzIx
MDMsNyBAQCBib29sIFdlYlZpZXc6OmtleVByZXNzKFdQQVJBTSBjaGFyQ29kZSwgTFBBUkFNIGtl
eURhdGEsIGJvb2wgc3lzdGVtS2V5RG93bikKIHsKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwogCi0gICAgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fdmlld1dpbmRvdywgY2hhckNvZGUsIGtleURhdGEsIFBs
YXRmb3JtRXZlbnQ6OkNoYXIsIHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCBrZXlFdmVudChtX3ZpZXdXaW5kb3csIGNoYXJDb2RlLCBrZXlEYXRhLCBQbGF0Zm9ybUV2
ZW50VHlwZTo6Q2hhciwgc3lzdGVtS2V5RG93bik7CiAgICAgLy8gSUUgZG9lcyBub3QgZGlzcGF0
Y2gga2V5cHJlc3MgZXZlbnQgZm9yIFdNX1NZU0NIQVIuCiAgICAgaWYgKHN5c3RlbUtleURvd24p
CiAgICAgICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVBY2Nlc3NLZXkoa2V5
RXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFdpbkNFLmNwcAppbmRleCA2MTliZjk3MWUyMzZjMGZiODM1ZGVkMzI3N2U1
ZWVhZDU0YmI3MzY0Li43OWRhZDkwZTk4M2VhYTA2MjEzOGM3ZTE2NzA2NTJjN2ZmMjc3YmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmNwcApAQCAtMzkyLDcgKzM5Miw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50V2lu
Q0U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAg
ICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZChpbnRl
cnByZXRLZXlFdmVudChldmVudCkpOwogCi0gICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxh
dGZvcm1FdmVudDo6UmF3S2V5RG93bikgeworICAgIGlmIChrZXlFdmVudC0+dHlwZSgpID09IFBs
YXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgIC8vIFdlYktpdCBkb2Vzbid0
IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0IG1vZGUgdG8gZGVjaWRlIGhvdyBjb21tYW5k
cyB0aGF0IGp1c3QgaW5zZXJ0IHRleHQgaWYgZXhlY3V0ZWQgdmlhIEVkaXRvciBzaG91bGQgYmUg
dHJlYXRlZCwKICAgICAgICAgLy8gc28gd2UgbGVhdmUgaXQgdXBvbiBXZWJDb3JlIHRvIGVpdGhl
ciBoYW5kbGUgdGhlbSBpbW1lZGlhdGVseSAoZS5nLiBUYWIgdGhhdCBjaGFuZ2VzIGZvY3VzKSBv
ciBsZXQgYSBrZXlwcmVzcyBldmVudCBiZSBnZW5lcmF0ZWQKICAgICAgICAgLy8gKGUuZy4gVGFi
IHRoYXQgaW5zZXJ0cyBhIFRhYiBjaGFyYWN0ZXIsIG9yIEVudGVyKS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYlZp
ZXcuY3BwCmluZGV4IDY3ZmUwMzhiZTQ0ODY0NzIxYThjODg2NzYwNDg3MDkwNmVlNzRhYmMuLjg5
ODNhY2UzZGViMWNkOGU5NWExNDRjNWUxMzQ3MmExZjQzZGQwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJW
aWV3LmNwcApAQCAtMzUwLDcgKzM1MCw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlS2V5RG93bihX
UEFSQU0gdmlydHVhbEtleUNvZGUsIExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtlCiB7CiAg
ICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKIAotICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hh
bmRsZSwgdmlydHVhbEtleUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24s
IHN5c3RlbUtleURvd24pOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dp
bmRvd0hhbmRsZSwgdmlydHVhbEtleUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlOjpS
YXdLZXlEb3duLCBzeXN0ZW1LZXlEb3duKTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVu
dEhhbmRsZXIoKS5rZXlFdmVudChrZXlFdmVudCk7CiAKICAgICAvLyBUaGVzZSBldmVudHMgY2Fu
bm90IGJlIGNhbmNlbGVkLCBhbmQgd2UgaGF2ZSBubyBkZWZhdWx0IGhhbmRsaW5nIGZvciB0aGVt
LgpAQCAtMzcyLDcgKzM3Miw3IEBAIGJvb2wgV2ViVmlldzo6aGFuZGxlS2V5UHJlc3MoV1BBUkFN
IGNoYXJDb2RlLCBMUEFSQU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3duCiB7CiAgICAgRnJh
bWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUo
KTsKIAotICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwg
Y2hhckNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnQ6OkNoYXIsIHN5c3RlbUtleURvd24pOwor
ICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgY2hhckNv
ZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyLCBzeXN0ZW1LZXlEb3duKTsKICAg
ICAvLyBJRSBkb2VzIG5vdCBkaXNwYXRjaCBrZXlwcmVzcyBldmVudCBmb3IgV01fU1lTQ0hBUi4K
ICAgICBpZiAoc3lzdGVtS2V5RG93bikKICAgICAgICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxl
cigpLmhhbmRsZUFjY2Vzc0tleShrZXlFdmVudCk7CkBAIC0zODQsNyArMzg0LDcgQEAgYm9vbCBX
ZWJWaWV3OjpoYW5kbGVLZXlQcmVzcyhXUEFSQU0gY2hhckNvZGUsIExQQVJBTSBrZXlEYXRhLCBi
b29sIHN5c3RlbUtleURvd24KIAogYm9vbCBXZWJWaWV3OjpoYW5kbGVLZXlVcChXUEFSQU0gdmly
dHVhbEtleUNvZGUsIExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtleURvd24pCiB7Ci0gICAg
UGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1fd2luZG93SGFuZGxlLCB2aXJ0dWFsS2V5
Q29kZSwga2V5RGF0YSwgUGxhdGZvcm1FdmVudDo6S2V5VXAsIHN5c3RlbUtleURvd24pOworICAg
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgdmlydHVhbEtl
eUNvZGUsIGtleURhdGEsIFBsYXRmb3JtRXZlbnRUeXBlOjpLZXlVcCwgc3lzdGVtS2V5RG93bik7
CiAKICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRP
ck1haW5GcmFtZSgpOwogICAgIHJldHVybiBmcmFtZS5ldmVudEhhbmRsZXIoKS5rZXlFdmVudChr
ZXlFdmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252
ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3Bw
CmluZGV4IDAzZmQwZWRiNWZlMzM3NDRjOGE2MWNjNTkxYzhlMTlmMGQ0ZjY0MzQuLmRlNTExMTRm
YTE2YjQ0NDMxZmIzYWJlYWUyNjM4NWQ3MWIyYTY3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCkBAIC0zNywxMyArMzcsMTMgQEAgcHVibGljOgog
ICAgICAgICAvLyBQbGF0Zm9ybUV2ZW50CiAgICAgICAgIHN3aXRjaCAod2ViRXZlbnQudHlwZSgp
KSB7CiAgICAgICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKLSAgICAgICAgICAgIG1fdHlw
ZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAgICAgICAgIG1f
dHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6TW91c2VVcDoKLSAgICAgICAgICAg
IG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgICAg
ICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VSZWxlYXNlZDsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZU1vdmU6Ci0g
ICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwor
ICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6Ok1vdXNlTW92
ZWQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICBXZWJL
aXQyUGxhdGZvcm1XaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdlYkV2ZW50KQogICAg
IHsKICAgICAgICAgLy8gUGxhdGZvcm1FdmVudAotICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2
ZW50OjpXaGVlbDsKKyAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6
OldoZWVsOwogCiAgICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50
LnNoaWZ0S2V5KCkpCkBAIC0xNTEsMTYgKzE1MSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFBs
YXRmb3JtRXZlbnQKICAgICAgICAgc3dpdGNoICh3ZWJFdmVudC50eXBlKCkpIHsKICAgICAgICAg
Y2FzZSBXZWJFdmVudDo6S2V5RG93bjoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBs
YXRmb3JtRXZlbnQ6OktleURvd247CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0
Zm9ybUV2ZW50VHlwZTo6S2V5RG93bjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IFdlYkV2ZW50OjpLZXlVcDoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3Jt
RXZlbnQ6OktleVVwOworICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVu
dFR5cGU6OktleVVwOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2ViRXZlbnQ6
OlJhd0tleURvd246Ci0gICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
OjpSYXdLZXlEb3duOworICAgICAgICAgICAgbV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVu
dFR5cGU6OlJhd0tleURvd247CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJF
dmVudDo6Q2hhcjoKLSAgICAgICAgICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6
OkNoYXI7CisgICAgICAgICAgICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6
Q2hhcjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNjcsMTYgKzI2NywxNiBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIFBsYXRmb3JtRXZlbnQKICAgICAgICAgc3dpdGNoICh3ZWJFdmVudC50eXBlKCkpIHsK
ICAgICAgICAgY2FzZSBXZWJFdmVudDo6VG91Y2hTdGFydDogCi0gICAgICAgICAgICBtX3R5cGUg
PSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICAgICAgbV90eXBl
ID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudFR5cGU6OlRvdWNoU3RhcnQ7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6VG91Y2hNb3ZlOiAKLSAgICAgICAgICAgIG1f
dHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAgICAgICAgIG1f
dHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaE1vdmU7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6VG91Y2hFbmQ6IAotICAgICAgICAgICAg
bV90eXBlID0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2hFbmQ7CisgICAgICAgICAgICBt
X3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50VHlwZTo6VG91Y2hFbmQ7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBXZWJFdmVudDo6VG91Y2hDYW5jZWw6Ci0gICAgICAgICAg
ICBtX3R5cGUgPSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpUb3VjaENhbmNlbDsKKyAgICAgICAg
ICAgIG1fdHlwZSA9IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnRUeXBlOjpUb3VjaENhbmNlbDsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBh
YWNkMWQ1NjYxNTRkNjIwYzliMTRlYTM1YjNlNjllMWQ2ZTA2NjU4Li4xNDIzNTQwZDQ5OTA2MTk4
NzAyNmE2Yzg4YzY0ODFmOWVhOWZhOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVu
dEd0ay5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtl
eWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgIC8vIER1cmluZyBSYXdL
ZXlEb3duIGV2ZW50cyBpZiBhbiBlZGl0b3IgY29tbWFuZCB3aWxsIGluc2VydCB0ZXh0LCBkZWZl
cgogICAgICAgICAvLyB0aGUgaW5zZXJ0aW9uIHVudGlsIHRoZSBrZXlwcmVzcyBldmVudC4gV2Ug
d2FudCBrZXlkb3duIHRvIGJ1YmJsZSB1cAogICAgICAgICAvLyB0aHJvdWdoIHRoZSBET00gZmly
c3QuCi0gICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6
UmF3S2V5RG93bikgeworICAgICAgICBpZiAocGxhdGZvcm1FdmVudC0+dHlwZSgpID09IFBsYXRm
b3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKSB7CiAgICAgICAgICAgICBpZiAoZXhlY3V0ZVBlbmRp
bmdFZGl0b3JDb21tYW5kcyhmcmFtZSwgcGVuZGluZ0VkaXRvckNvbW1hbmRzLCBmYWxzZSkpCiAg
ICAgICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmZTQ2NWEzNTliYjkw
YTBhOWRmOGZiNzQyNDI4ZWU2NmRjN2YzMzMzLi5kM2FmNWMxMzM0MjM2M2NkMzZhYjdjYzA5NjVj
M2JlNDU0OTdmN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0xNTYzLDcgKzE1NjMsNyBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6
Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNv
cmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKICAg
ICAKICAgICAvLyBTaW11bGF0ZSBhIG1vdXNlIGNsaWNrIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0
IG1lbnUuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQocG9pbnQsIHBvaW50LCBS
aWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1v
dXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudFR5cGU6Ok1v
dXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCkp
OwogICAgIGJvb2wgaGFuZGxlZCA9IGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxl
cigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmICghaGFuZGxlZCkK
ICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNjQyLDcgKzE2NDIsNyBAQCBzdGF0aWMgYm9vbCBoYW5k
bGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIFdlYlBhZ2UqIHBh
Z2UsIGJvbwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgPSBwbGF0
Zm9ybShtb3VzZUV2ZW50KTsKIAogICAgIHN3aXRjaCAocGxhdGZvcm1Nb3VzZUV2ZW50LnR5cGUo
KSkgewotICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDogeworICAgICAg
ICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVByZXNzZWQ6IHsKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICAgICAgICAgIGlmIChpc0NvbnRleHRDbGljayhwbGF0Zm9ybU1vdXNl
RXZlbnQpKQogICAgICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29u
dHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKQEAgLTE2NTUsMTAgKzE2NTUsMTAgQEAgc3Rh
dGljIGJvb2wgaGFuZGxlTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50
LCBXZWJQYWdlKiBwYWdlLCBib28KICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIGhhbmRsZWQ7
CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOgor
ICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkOgogICAgICAgICAg
ICAgcmV0dXJuIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KHBs
YXRmb3JtTW91c2VFdmVudCk7CiAKLSAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1v
dmVkOgorICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZU1vdmVkOgogICAgICAg
ICAgICAgaWYgKG9ubHlVcGRhdGVTY3JvbGxiYXJzKQogICAgICAgICAgICAgICAgIHJldHVybiBm
cmFtZS5ldmVudEhhbmRsZXIoKS5wYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKHBsYXRm
b3JtTW91c2VFdmVudCk7CiAgICAgICAgICAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCku
bW91c2VNb3ZlZChwbGF0Zm9ybU1vdXNlRXZlbnQpOwpAQCAtMjAxMyw3ICsyMDEzLDcgQEAgdm9p
ZCBXZWJQYWdlOjpzZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29sIGlzS2V5Ym9hcmRF
dmVudFZhbGlkLCBjb25zdCBXZWIKIAogICAgIGlmIChpc0tleWJvYXJkRXZlbnRWYWxpZCAmJiBl
dmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OktleURvd24pIHsKICAgICAgICAgUGxhdGZvcm1LZXli
b2FyZEV2ZW50IHBsYXRmb3JtRXZlbnQocGxhdGZvcm0oZXZlbnQpKTsKLSAgICAgICAgcGxhdGZv
cm1FdmVudC5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93
bik7CisgICAgICAgIHBsYXRmb3JtRXZlbnQuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRm
b3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duKTsKICAgICAgICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRJbml0aWFsRm9jdXMoZm9yd2FyZCA/IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6IEZv
Y3VzRGlyZWN0aW9uQmFja3dhcmQsIEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50
LCBmcmFtZS5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpKS5nZXQoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yNjU3LDcgKzI2NTcsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRp
bmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIAogICAgIEVkaXRvcjo6Q29tbWFu
ZCBjb21tYW5kID0gZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoaW50ZXJwcmV0S2V5RXZlbnQoZXZ0
KSk7CiAKLSAgICBpZiAoa2V5RXZlbnQtPnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlE
b3duKSB7CisgICAgaWYgKGtleUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudFR5cGU6OlJh
d0tleURvd24pIHsKICAgICAgICAgLy8gV2ViS2l0IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggaW5mb3Jt
YXRpb24gYWJvdXQgbW9kZSB0byBkZWNpZGUgaG93IGNvbW1hbmRzIHRoYXQganVzdCBpbnNlcnQg
dGV4dCBpZiBleGVjdXRlZCB2aWEgRWRpdG9yIHNob3VsZCBiZSB0cmVhdGVkLAogICAgICAgICAv
LyBzbyB3ZSBsZWF2ZSBpdCB1cG9uIFdlYkNvcmUgdG8gZWl0aGVyIGhhbmRsZSB0aGVtIGltbWVk
aWF0ZWx5IChlLmcuIFRhYiB0aGF0IGNoYW5nZXMgZm9jdXMpIG9yIGxldCBhIGtleXByZXNzIGV2
ZW50IGJlIGdlbmVyYXRlZAogICAgICAgICAvLyAoZS5nLiBUYWIgdGhhdCBpbnNlcnRzIGEgVGFi
IGNoYXJhY3Rlciwgb3IgRW50ZXIpLgpAQCAtMjc3NCw3ICsyNzc0LDcgQEAgdm9pZCBXZWJQYWdl
OjpkcmFnRW5kZWQoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6Oklu
dFBvaW50IGdsb2IKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBGSVhN
RTogVGhlc2UgYXJlIGZha2UgbW9kaWZpZXIga2V5cyBoZXJlLCBidXQgdGhleSBzaG91bGQgYmUg
cmVhbCBvbmVzIGluc3RlYWQuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGFkanVzdGVk
Q2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJy
ZW50VGltZSgpKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dFR5cGU6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50
VGltZSgpKTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmRyYWdTb3Vy
Y2VFbmRlZEF0KGV2ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggZTViYzQ1M2YyZTZhNWQ4Zjk5MzUzMDNjYTVjZDNiM2JiNWM0MTBiZS4uYzQ5OGM4MmY5ZmY1
OWFlMzg4ZTU2YmJjMjg0YjU2Yzk4NzgyNjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk4LDkgKzI5OCw5IEBA
IHZvaWQgV2ViUGFnZTo6aGFuZGxlVGFwKGNvbnN0IEludFBvaW50JiBwb2ludCkKICAgICBtYWlu
ZnJhbWUubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHBvaW50LCBhZGp1c3RlZFBvaW50KTsK
ICAgICBJbnRQb2ludCByb3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChhZGp1
c3RlZFBvaW50KTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBs
YXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9p
bnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgMCkpOwotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVN
b3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCBy
b3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVz
c2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCkpOwotICAgIG1haW5mcmFtZS5l
dmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQo
cm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgMCkpOworICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3Jt
TW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIE5v
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50VHlwZTo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIDApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91
c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91
bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVBy
ZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwKSk7CisgICAgbWFpbmZyYW1l
LmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVu
dChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24s
IFBsYXRmb3JtRXZlbnRUeXBlOjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgMCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24o
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRl
eCA4NjM1ZjQ1ODk5OGM1YWVhNmJjYzMyZGVlODQzYTAyMWMyMGE1MThlLi5mY2IwZGI0MTlhZjdi
NzdmOTA2NWUxZTIxZDZlNTE3NWM1NGIxZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0xODQsNyArMTg0LDcgQEAg
Ym9vbCBXZWJQYWdlOjpleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW0KICAgICAgICAgICAgICAgICBib29sIGNvbW1hbmRFeGVj
dXRlZEJ5RWRpdG9yID0gY29tbWFuZC5leGVjdXRlKGV2ZW50KTsKICAgICAgICAgICAgICAgICBl
dmVudFdhc0hhbmRsZWQgfD0gY29tbWFuZEV4ZWN1dGVkQnlFZGl0b3I7CiAgICAgICAgICAgICAg
ICAgaWYgKCFjb21tYW5kRXhlY3V0ZWRCeUVkaXRvcikgewotICAgICAgICAgICAgICAgICAgICBi
b29sIHBlcmZvcm1lZE5vbkVkaXRpbmdCZWhhdmlvciA9IGV2ZW50LT5rZXlFdmVudCgpLT50eXBl
KCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93biAmJiBwZXJmb3JtTm9uRWRpdGluZ0JlaGF2
aW9yRm9yU2VsZWN0b3IoY29tbWFuZHNbaV0uY29tbWFuZE5hbWUsIGV2ZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgYm9vbCBwZXJmb3JtZWROb25FZGl0aW5nQmVoYXZpb3IgPSBldmVudC0+a2V5
RXZlbnQoKS0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpSYXdLZXlEb3duICYmIHBlcmZv
cm1Ob25FZGl0aW5nQmVoYXZpb3JGb3JTZWxlY3Rvcihjb21tYW5kc1tpXS5jb21tYW5kTmFtZSwg
ZXZlbnQpOwogICAgICAgICAgICAgICAgICAgICBldmVudFdhc0hhbmRsZWQgfD0gcGVyZm9ybWVk
Tm9uRWRpdGluZ0JlaGF2aW9yOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxz
ZSB7CkBAIC0yNDAsNyArMjQwLDcgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9h
cmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBzYXZlQ29tbWFuZHMKICAgICAgICAg
fQogICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gdGV4dCBpbnNlcnRpb24gY29tbWFuZHMsIGRl
ZmF1bHQga2V5ZG93biBoYW5kbGVyIGlzIHRoZSByaWdodCB0aW1lIHRvIGV4ZWN1dGUgdGhlIGNv
bW1hbmRzLgogICAgICAgICAvLyBLZXlwcmVzcyAoQ2hhciBldmVudCkgaGFuZGxlciBpcyB0aGUg
bGF0ZXN0IG9wcG9ydHVuaXR5IHRvIGV4ZWN1dGUuCi0gICAgICAgIGlmICghaGF2ZVRleHRJbnNl
cnRpb25Db21tYW5kcyB8fCBwbGF0Zm9ybUV2ZW50LT50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6
Q2hhcikgeworICAgICAgICBpZiAoIWhhdmVUZXh0SW5zZXJ0aW9uQ29tbWFuZHMgfHwgcGxhdGZv
cm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnRUeXBlOjpDaGFyKSB7CiAgICAgICAgICAg
ICBldmVudFdhc0hhbmRsZWQgPSBleGVjdXRlS2V5cHJlc3NDb21tYW5kc0ludGVybmFsKGV2ZW50
LT5rZXlwcmVzc0NvbW1hbmRzKCksIGV2ZW50KTsKICAgICAgICAgICAgIGV2ZW50LT5rZXlwcmVz
c0NvbW1hbmRzKCkuY2xlYXIoKTsKICAgICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>