<?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>132943</bug_id>
          
          <creation_ts>2014-05-14 22:25:30 -0700</creation_ts>
          <short_desc>[UI-side compositing] Fix copying animations between layers, and pausing them</short_desc>
          <delta_ts>2014-05-15 10:50:24 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1009449</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-14 22:25:30 -0700</bug_when>
    <thetext>[UI-side compositing] Fix copying animations between layers, and pausing them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009452</commentid>
    <comment_count>1</comment_count>
      <attachid>231492</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-14 22:32:43 -0700</bug_when>
    <thetext>Created attachment 231492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009454</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-14 22:34:39 -0700</bug_when>
    <thetext>*** Bug 132894 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009455</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-14 22:35:59 -0700</bug_when>
    <thetext>Patch applies on top of that in bug 132942.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009464</commentid>
    <comment_count>4</comment_count>
      <attachid>231492</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-14 23:35:31 -0700</bug_when>
    <thetext>Comment on attachment 231492
Patch

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

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.h:36
&gt;  OBJC_CLASS WKAnimationDelegate;
&gt; +OBJC_CLASS CAAnimation;

sorting

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:124
&gt; +    void didStart(CFTimeInterval beginTime)

one line?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:130
&gt; +    void setHasExplicitBeginTime(bool b) { m_properties.hasExplicitBeginTime = b; }

b :|

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:297
&gt; +    // Copy the specific Basic or Keyframe values

period

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:763
&gt; +        [caAnimation.get() setValue:@YES forKey:WKExplicitBeginTimeFlag];

no .get()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009563</commentid>
    <comment_count>5</comment_count>
      <attachid>231524</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-15 09:37:44 -0700</bug_when>
    <thetext>Created attachment 231524
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009579</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-15 10:50:24 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/168901</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231492</attachid>
            <date>2014-05-14 22:32:43 -0700</date>
            <delta_ts>2014-05-15 09:37:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132943-20140514223220.patch</filename>
            <type>text/plain</type>
            <size>28616</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE5M2E0MjM0NDQ3NDBi
ZGNlNTcxYjA3YmRhZDZiODcyMmNmZGQ1Zi4uN2YyNTVhNzM2NDBjY2YyYjk5YTYyNWU4MGNiMDc3
M2I0YTc3MDIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE0LTA1LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBGaXggY29weWluZyBhbmltYXRpb25zIGJldHdlZW4gbGF5ZXJzLCBhbmQgcGF1
c2luZyB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI5NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2OTA2MzY5JjE2OTA2NTQxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhlIGFu
aW1hdGlvbiBrZXkgYmFjayB0byBhbmltYXRpb25TdGFydGVkKCksIHRob3VnaCB0aGlzIGlzbid0
IHVzZWQKKyAgICAgICAgd2hlbiBhbmltYXRpb25zIGFyZSBydW5uaW5nIGluLXByb2Nlc3MuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQW5pbWF0aW9uRGVsZWdhdGUgYW5pbWF0aW9uRGlkU3RhcnQ6XSk6CisgICAg
ICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwOgorICAgICAgICAo
UGxhdGZvcm1DQUxheWVyV2luOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmg6CisKKzIwMTQtMDUtMTQgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgQ2xlYW4gdXAg
ImhhcyBub24temVybyBiZWdpbiB0aW1lIiB0ZXJtaW5vbG9neSBpbiBhbmltYXRpb25zCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI5NDIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IGJkZDM3M2IzOGQ0MDZhODk5NDBhOTRjMDIyZWRjYTI2NDA5NWIwZTkuLmE4NTVk
NTU2MWU5OTVhYTM2NDFhMTZiOWZjYWIyYjRkNTkwMGE5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSw1OCBAQAogMjAxNC0wNS0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAorICAgICAgICBbVUktc2lkZSBjb21wb3NpdGluZ10gRml4IGNvcHlpbmcgYW5pbWF0aW9u
cyBiZXR3ZWVuIGxheWVycywgYW5kIHBhdXNpbmcgdGhlbQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyOTQzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xNjkwNjM2OSYxNjkwNjU0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKyAgICAgICAgCisgICAgICAgIEZpeCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlIHRvIHN1
cHBvcnQgYW5pbWF0aW9uIGNvcHlpbmcsIGFuZCB0byByZWNvcmQKKyAgICAgICAgdGhlIGJlZ2lu
VGltZSBmb3IgaW1wbGljaXRseSBzdGFydGVkIGFuaW1hdGlvbnMuIFRoaXMgZml4ZXMgYW5pbWF0
aW9uIHBhdXNpbmcsCisgICAgICAgIGFuZCBjb3B5aW5nIG9mIGFuaW1hdGlvbnMgYmV0d2VlbiBs
YXllcnMgd2hlbiB0aGV5IGdvIGJldHdlZW4gdGlsZWQgYW5kIG5vbi10aWxlZC4KKyAgICAgICAg
CisgICAgICAgIFRoaXMgcmVxdWlyZXMgc2VuZGluZyB0aGUgYW5pbWF0aW9uIGtleSBiYWNrIHRo
cm91Z2ggYW5pbWF0aW9uRGlkU3RhcnQoKSBzbyB0aGF0CisgICAgICAgIHdlIGNhbiByZWNvcmQg
dGhpcyBiZWdpblRpbWUgb24gdGhlIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUgaW4gdGhlIHdl
YiBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGggZG9lc24ndCBzZXQgdGhlICJoYXNFeHBsaWNp
dEJlZ2luVGltZSIgZmxhZy4KKyAgICAgICAgCisgICAgICAgIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUgYWxzbyBub3cgc3RvcmVzIGEgaGFzaCBvZiBhY3RpdmUgYW5pbWF0aW9ucywgc28gdGhh
dAorICAgICAgICBpdCBjYW4gaW1wbGVtZW50IGFuaW1hdGlvbkZvcktleSgpLCBhbmQgcmVjb3Jk
IHRoZSBiZWdpblRpbWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGlkU3RhcnQpOiBHcm92ZWwgZm9yIHRoZSBrZXkgZm9y
IHRoaXMKKyAgICAgICAgYW5pbWF0aW9uOyBzYWRseSBDQSBkb2Vzbid0IGdpdmUgdXMgYW4gZWFz
aWVyIHdheS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAg
ICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUubW06CisgICAgICAgICgtW1dLQW5pbWF0aW9uRGVsZWdhdGUgYW5pbWF0aW9uRGlk
U3RhcnQ6XSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNv
cHkpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VGlt
aW5nRnVuY3Rpb25Gcm9tKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6Y29weUZyb21WYWx1ZUZyb20pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpjb3B5VG9WYWx1ZUZyb20pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VmFsdWVzRnJvbSk6CisgICAgICAgIChXZWJLaXQ6OlBs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlLZXlUaW1lc0Zyb20pOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbSk6
CisgICAgICAgIChXZWJLaXQ6OmFkZEFuaW1hdGlvblRvTGF5ZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZGRBbmltYXRpb25Gb3JLZXkpOgorICAgICAg
ICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleSk6
CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uRm9yS2V5
KToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFy
dGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6
YW5pbWF0aW9uRGlkU3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCk6CisK
KzIwMTQtMDUtMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAg
ICAgICAgQ2xlYW4gdXAgImhhcyBub24temVybyBiZWdpbiB0aW1lIiB0ZXJtaW5vbG9neSBpbiBh
bmltYXRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI5NDIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCBlOGIyZmVlZWMzYTg3ODQ3NWQxODE5MzBkZWJmNWM2
ZWMxOTczNjE2Li41ZWUyMWNkZTk3NTUwZThiNDJlMGVlMzFhZTM5MjM0ZmQ4NWYxMTg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNB
TGF5ZXIuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1DQUxheWVyQ2xp
ZW50KiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0T3duZXIoUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgeyBtX293bmVyID0gb3duZXI7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJl
Z2luVGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFN0
cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCBiYTdmM2Y3MTczMGY1MTMwYTFhY2U0NmFk
ZjViNjUzODEwMzNlMmNhLi5lNGQ4YzdmNDcyNWY2MzY2Njg0ZmJkZjBlNmQ1MmE1NTVjNjE2M2Q3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcm
IGtleSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoQ0ZUaW1l
SW50ZXJ2YWwgYmVnaW5UaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9u
U3RhcnRlZChjb25zdCBTdHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrKFBsYXRmb3JtQ0FMYXllciopIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCBhYjUxOGNlY2ZmNDUyOGZiOTY3
YjE0YzA5OGM0YWY2MjE5OGVlOTM1Li5kMDExZWI3YzMwZmRlMTg4ODRiMjc0NDQ2YTQ3ZDU2OTYx
MmM0YjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTExNiw4ICsxMTYsMTkgQEAg
c3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKENGVGltZUludGVydmFsIHQpCiAg
ICAgfSBlbHNlCiAgICAgICAgIHN0YXJ0VGltZSA9IG1lZGlhVGltZVRvQ3VycmVudFRpbWUoW2Fu
aW1hdGlvbiBiZWdpblRpbWVdKTsKIAotICAgIGlmIChtX293bmVyKQotICAgICAgICBtX293bmVy
LT5hbmltYXRpb25TdGFydGVkKHN0YXJ0VGltZSk7CisgICAgaWYgKG1fb3duZXIpIHsKKyAgICAg
ICAgQ0FMYXllciAqbGF5ZXIgPSBtX293bmVyLT5wbGF0Zm9ybUxheWVyKCk7CisKKyAgICAgICAg
U3RyaW5nIGFuaW1hdGlvbktleTsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIFtsYXll
ciBhbmltYXRpb25LZXlzXSkgeworICAgICAgICAgICAgaWYgKFtsYXllciBhbmltYXRpb25Gb3JL
ZXk6a2V5XSA9PSBhbmltYXRpb24pIHsKKyAgICAgICAgICAgICAgICBhbmltYXRpb25LZXkgPSBr
ZXk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBtX293bmVyLT5hbmltYXRpb25TdGFydGVkKGFuaW1hdGlvbktleSwgc3RhcnRUaW1l
KTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpc2V0T3duZXI6KFBsYXRmb3JtQ0FMYXllciopb3duZXIK
QEAgLTI5Miw3ICszMDMsNyBAQCBQbGF0Zm9ybUNBTGF5ZXJNYWM6On5QbGF0Zm9ybUNBTGF5ZXJN
YWMoKQogICAgICAgICBbc3RhdGljX2Nhc3Q8V2ViVGlsZWRCYWNraW5nTGF5ZXIgKj4obV9sYXll
ci5nZXQoKSkgaW52YWxpZGF0ZV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphbmlt
YXRpb25TdGFydGVkKENGVGltZUludGVydmFsIGJlZ2luVGltZSkKK3ZvaWQgUGxhdGZvcm1DQUxh
eWVyTWFjOjphbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYsIENGVGltZUludGVydmFsIGJl
Z2luVGltZSkKIHsKICAgICBpZiAobV9vd25lcikKICAgICAgICAgbV9vd25lci0+cGxhdGZvcm1D
QUxheWVyQW5pbWF0aW9uU3RhcnRlZChiZWdpblRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2lu
LmNwcAppbmRleCBhOTQxNWY0ZWFhZWRkMTljMGY4ZGQ4YzUyZWZhN2JkNDViOGRjNjQ4Li40ZDk3
OWZkMWI1ODA5MWViZWMwZTlhODhjNzAwNDY0MGUzZmI0NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxh
eWVyV2luLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIFBsYXRmb3JtQ0FMYXllciogUGxhdGZvcm1D
QUxheWVyV2luOjpyb290TGF5ZXIoKSBjb25zdAogICAgIHJldHVybiBob3N0ID8gaG9zdC0+cm9v
dExheWVyKCkgOiAwOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9uU3Rh
cnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpCit2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6
YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmLCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUp
CiB7CiAgICAgLy8gVXBkYXRlIHN0YXJ0IHRpbWUgZm9yIGFueSBhbmltYXRpb24gbm90IHlldCBz
dGFydGVkCiAgICAgQ0ZUaW1lSW50ZXJ2YWwgY2FjZkJlZ2luVGltZSA9IGN1cnJlbnRUaW1lVG9N
ZWRpYVRpbWUoYmVnaW5UaW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAppbmRleCBkMzcyMmQ2
NmRhNjYxYzBhNmQ1NTk4NjQzZjEzN2NjOTgxZmIwNDlkLi4yMDA4NTMyMWM1NTZhMmI4MGU3Yzg0
OTM4NDhiMzUyNzY4N2U4ZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCkBAIC01Niw3ICs1
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZv
cktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1h
dGlvblN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2
YWwgYmVnaW5UaW1lKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrKFBsYXRm
b3JtQ0FMYXllciopIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4
IGFjYzUzMTFmNjZkZGU0OTNlNTE2Njg1NzdhYWFiNTA4ZDVhMjgwNjUuLmU4N2I5ZTk5YTk5NGEy
YmU4ZDViYzNkMDQ0OGE3YzAzMzllNjRjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhv
c3QmIHJlbW90ZUxheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUxheWVyVHJl
ZUhvc3Q7IH0KIAotICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRf
dCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKTsKKyAgICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0
aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBz
dGFydFRpbWUpOwogCiAgICAgdm9pZCBjb3JlQW5pbWF0aW9uRGlkQ29tbWl0TGF5ZXJzKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBhYjYyNmE0Mjc4ZGIwYjBmNzVlOTlm
YThjMDQyMjNiZWE2N2NmMDhlLi44NTM0NmZmNDBhY2NlYjM0OWZiOGVmNGM2MDAzMWFkOWIxM2Jk
NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0xNTIsOSArMTUyLDkgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29u
c3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAgICBzY2hlZHVsZUNvcmVBbmltYXRpb25MYXllckNv
bW1pdE9ic2VydmVyKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBkb3VibGUg
c3RhcnRUaW1lKQordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVy
YXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5
LCBkb3VibGUgc3RhcnRUaW1lKQogewotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5
ZXJJRCwgc3RhcnRUaW1lKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsKKyAgICBtX3dlYlBh
Z2VQcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBY2NlbGVyYXRl
ZEFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIGtleSwgc3RhcnRUaW1lKSwgbV93ZWJQYWdlUHJv
eHktPnBhZ2VJRCgpKTsKIH0KIAogc3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvckluc2V0ID0g
MTA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
SG9zdC5oCmluZGV4IGFjODllZmI5YTM0MmIxOWZmZDdkM2ZhYTFlZGFlNGFiODAwNjE5NmMuLjlh
MmM3MTJmOWFjZmZmMTkxYjU1MDA4ZDQ0NzQ1NTY2ZTE5M2Q1OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIFdLQW5pbWF0
aW9uRGVsZWdhdGU7CitPQkpDX0NMQVNTIENBQW5pbWF0aW9uOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIApAQCAtNTgsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRyPFdLQW5pbWF0aW9u
RGVsZWdhdGU+PiBMYXllckFuaW1hdGlvbkRlbGVnYXRlTWFwOwogICAgIExheWVyQW5pbWF0aW9u
RGVsZWdhdGVNYXAmIGFuaW1hdGlvbkRlbGVnYXRlcygpIHsgcmV0dXJuIG1fYW5pbWF0aW9uRGVs
ZWdhdGVzOyB9CiAKLSAgICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSk7CisgICAgdm9pZCBhbmlt
YXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENB
QW5pbWF0aW9uICosIGRvdWJsZSBzdGFydFRpbWUpOwogCiBwcml2YXRlOgogICAgIExheWVyT3JW
aWV3ICpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXMmLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggNjVjYzNjYmMyM2VhNGJmMDc2MDY2ZWFmNzQzODRi
YzY5OTE1Mzc0My4uODIzOWE1NTE1ZmI3MTMyYWVjYzE1YjA5YjkyODg3YzNkNWM4ZjFkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5tbQpAQCAtMTEzLDkgKzExMywyMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVy
V2lsbEJlUmVtb3ZlZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheQogICAgIG1f
bGF5ZXJzLnJlbW92ZShsYXllcklEKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0Ojph
bmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
bGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5p
bWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxh
eWVySUQsIENBQW5pbWF0aW9uICphbmltYXRpb24sIGRvdWJsZSBzdGFydFRpbWUpCiB7Ci0gICAg
bV9kcmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIHN0YXJ0
VGltZSk7CisgICAgQ0FMYXllciAqbGF5ZXIgPSBhc0xheWVyKGdldExheWVyKGxheWVySUQpKTsK
KyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgYW5pbWF0aW9u
S2V5OworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBbbGF5ZXIgYW5pbWF0aW9uS2V5c10pIHsK
KyAgICAgICAgaWYgKFtsYXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmltYXRpb24pIHsK
KyAgICAgICAgICAgIGFuaW1hdGlvbktleSA9IGtleTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCisgICAgbV9kcmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFuaW1hdGlvbkRp
ZFN0YXJ0KGxheWVySUQsIGFuaW1hdGlvbktleSwgc3RhcnRUaW1lKTsKIH0KIAogc3RhdGljIE5T
U3RyaW5nKiBjb25zdCBXS0xheWVySURQcm9wZXJ0eUtleSA9IEAiV0tMYXllcklEIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggMTI0
NjA5OTMyZTlhNGU4YWFkNzA1NmQwOWFmYmZhMGFiOTZkNjVhYS4uODI2Nzg2M2IzYTQ5Y2IwNzM2
NjIyYzc5MThhOGVlZWVkYTU0Y2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZXhw
b3NlZFJlY3QoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0
aW9uRGlkU3RhcnQodWludDY0X3QgLypsYXllcklEKi8sIGRvdWJsZSAvKnN0YXJ0VGltZSovKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRf
dCAvKmxheWVySUQqLywgY29uc3QgU3RyaW5nJiAvKmtleSovLCBkb3VibGUgLypzdGFydFRpbWUq
LykgeyB9CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIHNldEV4
cG9zZWRDb250ZW50UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVz
c2FnZXMuaW4KaW5kZXggY2NhZTJhYTlhZGQzMTRlNGVhODg3OWM3MzI0MjI2MmFjZWRmNGU2NS4u
ZDYwYzIzNzZjZGJjNzY3MjNiODExNWJlNDZhMTExMGZkNDg0NjMzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdl
cy5pbgpAQCAtMzQsNiArMzQsNiBAQCBtZXNzYWdlcyAtPiBEcmF3aW5nQXJlYSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgQWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgb3JpZ2luKQogICAgIENvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBX
ZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikKICAgICAKLSAgICBBY2NlbGVyYXRlZEFuaW1hdGlv
bkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCisgICAgQWNjZWxl
cmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBTdHJpbmcga2V5LCBkb3Vi
bGUgc3RhcnRUaW1lKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5o
CmluZGV4IGZjMzFmZjA3ZDI5YWMzMzNmOWEzZWE5NGUyNmExN2Q3MzMwNzM3MTAuLjM3ZWJmNDEx
YmNhNzkzNjUyNTY4ZWUyYzhlYzg5OWU3Y2QwNDA1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZS5oCkBAIC0xMjEsNiArMTIxLDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBXZWJDb3JlOjpUaW1pbmdG
dW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2UpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5p
bWF0aW9uKikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIGRpZFN0YXJ0KENGVGltZUludGVydmFsIGJl
Z2luVGltZSkKKyAgICB7CisgICAgICAgIG1fcHJvcGVydGllcy5iZWdpblRpbWUgPSBiZWdpblRp
bWU7CisgICAgfQorICAgIAorICAgIEFuaW1hdGlvblR5cGUgYW5pbWF0aW9uVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvcGVydGllcy5hbmltYXRpb25UeXBlOyB9CisgICAgdm9pZCBzZXRIYXNF
eHBsaWNpdEJlZ2luVGltZShib29sIGIpIHsgbV9wcm9wZXJ0aWVzLmhhc0V4cGxpY2l0QmVnaW5U
aW1lID0gYjsgfQorICAgIGJvb2wgaGFzRXhwbGljaXRCZWdpblRpbWUoKSBjb25zdCB7IHJldHVy
biBtX3Byb3BlcnRpZXMuaGFzRXhwbGljaXRCZWdpblRpbWU7IH0KKwogICAgIGNsYXNzIEtleWZy
YW1lVmFsdWUgewogICAgIHB1YmxpYzoKICAgICAgICAgZW51bSBLZXlmcmFtZVR5cGUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDJkZTgxNTRmMDQ1MGI2MTUzZDdi
YWNlYWQ2NjVlNGFiNjhiN2EyODcuLmM4M2YxMjhmZDZlMjQ0NTVkZWMzYzM3NzkzNTc2YmNlYTBm
NTlhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTc5LDcgKzc5
LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tFeHBsaWNpdEJlZ2luVGltZUZsYWcgPSBA
IldLUGxhdGZvcm1DQUFuaW1hdGlvbkV4cGxpY2kKICAgICB9IGVsc2UKICAgICAgICAgc3RhcnRU
aW1lID0gbWVkaWFUaW1lVG9DdXJyZW50VGltZShbYW5pbWF0aW9uIGJlZ2luVGltZV0pOwogCi0g
ICAgX2xheWVyVHJlZUhvc3QtPmFuaW1hdGlvbkRpZFN0YXJ0KF9sYXllcklELCBzdGFydFRpbWUp
OworICAgIF9sYXllclRyZWVIb3N0LT5hbmltYXRpb25EaWRTdGFydChfbGF5ZXJJRCwgYW5pbWF0
aW9uLCBzdGFydFRpbWUpOwogfQogQGVuZAogCkBAIC0yNzgsOCArMjc4LDMzIEBAIFBhc3NSZWZQ
dHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y3JlYXRl
KFBsYXRmb3JtQ0FBbmltCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZv
cm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IGFuaW1hdGlvbiA9IGNyZWF0ZShhbmltYXRpb25UeXBlKCksIGtleVBhdGgoKSk7CisgICAg
CisgICAgYW5pbWF0aW9uLT5zZXRCZWdpblRpbWUoYmVnaW5UaW1lKCkpOworICAgIGFuaW1hdGlv
bi0+c2V0RHVyYXRpb24oZHVyYXRpb24oKSk7CisgICAgYW5pbWF0aW9uLT5zZXRTcGVlZChzcGVl
ZCgpKTsKKyAgICBhbmltYXRpb24tPnNldFRpbWVPZmZzZXQodGltZU9mZnNldCgpKTsKKyAgICBh
bmltYXRpb24tPnNldFJlcGVhdENvdW50KHJlcGVhdENvdW50KCkpOworICAgIGFuaW1hdGlvbi0+
c2V0QXV0b3JldmVyc2VzKGF1dG9yZXZlcnNlcygpKTsKKyAgICBhbmltYXRpb24tPnNldEZpbGxN
b2RlKGZpbGxNb2RlKCkpOworICAgIGFuaW1hdGlvbi0+c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihp
c1JlbW92ZWRPbkNvbXBsZXRpb24oKSk7CisgICAgYW5pbWF0aW9uLT5zZXRBZGRpdGl2ZShpc0Fk
ZGl0aXZlKCkpOworICAgIGFuaW1hdGlvbi0+Y29weVRpbWluZ0Z1bmN0aW9uRnJvbSh0aGlzKTsK
KyAgICBhbmltYXRpb24tPnNldFZhbHVlRnVuY3Rpb24odmFsdWVGdW5jdGlvbigpKTsKKworICAg
IHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZShhbmltYXRpb24uZ2V0KCkpLT5zZXRIYXNFeHBs
aWNpdEJlZ2luVGltZShoYXNFeHBsaWNpdEJlZ2luVGltZSgpKTsKKyAgICAKKyAgICAvLyBDb3B5
IHRoZSBzcGVjaWZpYyBCYXNpYyBvciBLZXlmcmFtZSB2YWx1ZXMKKyAgICBpZiAoYW5pbWF0aW9u
VHlwZSgpID09IEtleWZyYW1lKSB7CisgICAgICAgIGFuaW1hdGlvbi0+Y29weVZhbHVlc0Zyb20o
dGhpcyk7CisgICAgICAgIGFuaW1hdGlvbi0+Y29weUtleVRpbWVzRnJvbSh0aGlzKTsKKyAgICAg
ICAgYW5pbWF0aW9uLT5jb3B5VGltaW5nRnVuY3Rpb25zRnJvbSh0aGlzKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBhbmltYXRpb24tPmNvcHlGcm9tVmFsdWVGcm9tKHRoaXMpOworICAgICAgICBh
bmltYXRpb24tPmNvcHlUb1ZhbHVlRnJvbSh0aGlzKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJu
IGFuaW1hdGlvbjsKIH0KIAogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZShBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkK
QEAgLTM4Miw3ICs0MDcsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRp
bWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1ZSwgYgogCiB2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUaW1pbmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZv
cm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20odmFsdWUpOwogfQogCiBib29sIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OmlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0CkBAIC00NjQsNyArNDg5
LDEzIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0
IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBpCiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6Y29weUZyb21WYWx1ZUZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFs
dWUpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgY29uc3QgUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZSogb3RoZXIgPSB0b1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUodmFsdWUp
OworCisgICAgaWYgKG90aGVyLT5tX3Byb3BlcnRpZXMua2V5VmFsdWVzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIp
OworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMF0gPSBvdGhlci0+bV9wcm9wZXJ0aWVzLmtl
eVZhbHVlc1swXTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1Zh
bHVlKGZsb2F0IHZhbHVlKQpAQCAtNTE4LDcgKzU0OSwxMiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24s
IGludAogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUb1ZhbHVlRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICBjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKiBvdGhlciA9IHRvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSh2YWx1ZSk7CisKKyAgICBpZiAob3RoZXItPm1fcHJvcGVy
dGllcy5rZXlWYWx1ZXMuc2l6ZSgpIDwgMikKKyAgICAgICAgcmV0dXJuOworICAgIG1fcHJvcGVy
dGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMV0g
PSBvdGhlci0+bV9wcm9wZXJ0aWVzLmtleVZhbHVlc1sxXTsKIH0KIAogLy8gS2V5ZnJhbWUtYW5p
bWF0aW9uIHByb3BlcnRpZXMuCkBAIC01OTgsNyArNjM0LDggQEAgdm9pZCBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+PiYKIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5VmFsdWVzRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICBjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKiBvdGhlciA9IHRvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZSh2YWx1ZSk7CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVl
cyA9IG90aGVyLT5tX3Byb3BlcnRpZXMua2V5VmFsdWVzOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGU6OnNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4mIGtleVRpbWVz
KQpAQCAtNjA4LDcgKzY0NSw4IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0
S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYga2V5VGltZXMpCiAKIHZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZTo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiB2YWx1ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBjb25zdCBQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKiBvdGhlciA9IHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZSh2YWx1ZSk7CisgICAgbV9wcm9wZXJ0aWVzLmtleVRpbWVzID0gb3RoZXItPm1fcHJvcGVydGll
cy5rZXlUaW1lczsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUaW1p
bmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlcywg
Ym9vbCByZXZlcnNlKQpAQCAtNjI1LDcgKzY2MywxMCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVu
YwogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUaW1pbmdGdW5jdGlvbnNG
cm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUqIG90aGVyID0g
dG9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKHZhbHVlKTsKKworICAgIG1fcHJvcGVydGllcy50
aW1pbmdGdW5jdGlvbnMgPSBvdGhlci0+bV9wcm9wZXJ0aWVzLnRpbWluZ0Z1bmN0aW9uczsKKyAg
ICBtX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9ucyA9IG90aGVyLT5tX3Byb3BlcnRp
ZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKIH0KIAogc3RhdGljIE5TT2JqZWN0KiBhbmltYXRp
b25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OktleWZyYW1lVmFsdWUmIGtleWZyYW1lVmFsdWUpCkBAIC03MTksNyArNzYwLDcgQEAgc3RhdGlj
IHZvaWQgYWRkQW5pbWF0aW9uVG9MYXllcihDQUxheWVyICpsYXllciwgUmVtb3RlTGF5ZXJUcmVl
SG9zdCogbGF5ZXJUcmVlSG8KICAgICAgICAgW2NhQW5pbWF0aW9uIHNldFZhbHVlRnVuY3Rpb246
W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShw
cm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb24pXV07CiAgICAgCiAgICAgaWYgKHByb3BlcnRpZXMuaGFz
RXhwbGljaXRCZWdpblRpbWUpCi0gICAgICAgIFtjYUFuaW1hdGlvbi5nZXQoKSAgc2V0VmFsdWU6
QFlFUyBmb3JLZXk6V0tFeHBsaWNpdEJlZ2luVGltZUZsYWddOworICAgICAgICBbY2FBbmltYXRp
b24uZ2V0KCkgc2V0VmFsdWU6QFlFUyBmb3JLZXk6V0tFeHBsaWNpdEJlZ2luVGltZUZsYWddOwog
ICAgIAogICAgIGlmIChsYXllclRyZWVIb3N0KSB7CiAgICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBs
YXRmb3JtTGF5ZXJJRCBsYXllcklEID0gUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChsYXll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggYjgzZjAwYTA4Mjk5YjhlYzBl
YzkxMGYwMjQzZWY1NWQyNjlmMGUxZC4uYjQyMWFjMmNmZmY0ZWVkNDk0YzA0M2ZjZDI1MmZmZGUw
N2U2MDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtMTYxLDEyICsxNjEs
NiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6ZGlkQ29tbWl0KCkKICAgICBtX3Byb3Bl
cnRpZXMucmVzZXRDaGFuZ2VkUHJvcGVydGllcygpOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpCi17Ci0g
ICAgaWYgKG1fb3duZXIpCi0gICAgICAgIG1fb3duZXItPnBsYXRmb3JtQ0FMYXllckFuaW1hdGlv
blN0YXJ0ZWQoYmVnaW5UaW1lKTsKLX0KLQogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmVu
c3VyZUJhY2tpbmdTdG9yZSgpCiB7CiAgICAgQVNTRVJUKG93bmVyKCkpOwpAQCAtMjk5LDYgKzI5
Myw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphZG9wdFN1YmxheWVycyhQbGF0Zm9y
bUNBTGF5ZXIqIHNvdXJjZSkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkZEFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW1hdGlvbiogYW5pbWF0
aW9uKQogeworICAgIG1fYW5pbWF0aW9ucy5zZXQoa2V5LCBhbmltYXRpb24pOwogICAgIG1fcHJv
cGVydGllcy5hZGRlZEFuaW1hdGlvbnMuc2V0KGtleSwgdG9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlKGFuaW1hdGlvbiktPnByb3BlcnRpZXMoKSk7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9w
ZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6QW5pbWF0aW9uc0NoYW5n
ZWQpOwogCkBAIC0zMDgsNiArMzAzLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFk
ZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgUGxhdGZvcm1DQUFuaW0KIAogdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJp
bmcmIGtleSkKIHsKKyAgICBtX2FuaW1hdGlvbnMucmVtb3ZlKGtleSk7CiAgICAgbV9wcm9wZXJ0
aWVzLmFkZGVkQW5pbWF0aW9ucy5yZW1vdmUoa2V5KTsKICAgICBtX3Byb3BlcnRpZXMua2V5UGF0
aHNPZkFuaW1hdGlvbnNUb1JlbW92ZS5hZGQoa2V5KTsKICAgICBtX3Byb3BlcnRpZXMubm90ZVBy
b3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpBbmltYXRpb25zQ2hh
bmdlZCk7CkBAIC0zMTUsOCArMzExLDE3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpy
ZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiAKIFBhc3NSZWZQdHI8UGxh
dGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25Gb3JLZXko
Y29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudC4KLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbV9hbmltYXRpb25zLmdldChrZXkpOworfQorCit2b2lk
IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGtl
eSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQoreworICAgIGF1dG8gaXQgPSBtX2FuaW1hdGlv
bnMuZmluZChrZXkpOworICAgIGlmIChpdCAhPSBtX2FuaW1hdGlvbnMuZW5kKCkpCisgICAgICAg
IHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZShpdC0+dmFsdWUuZ2V0KCkpLT5kaWRTdGFydChi
ZWdpblRpbWUpOworICAgIAorICAgIGlmIChtX293bmVyKQorICAgICAgICBtX293bmVyLT5wbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGltZSk7CiB9CiAKIHZvaWQgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjpzZXRNYXNrKFBsYXRmb3JtQ0FMYXllciogbGF5ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuaAppbmRleCA1ODM0NmUwOTNjZjBkODE4YWZlYmE5YmMyODlhNjQ2OGRl
ODcwNGFkLi5mM2QxNWI0MWNmOTUyOWMwZWE4MWNiNjk1OWRmYWI0ODJmN2E5MzEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFdlYkNvcmU6OlBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5p
bWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3Rh
cnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdp
blRpbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2soV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKQEAgLTE3Nyw2ICsxNzcsNyBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QgbV9jaGlsZHJlbjsKICAgICBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUqIG1fc3VwZXJsYXllcjsKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUq
IG1fbWFza0xheWVyOworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1DQUFuaW1hdGlvbj4+IG1fYW5pbWF0aW9uczsKICAgICBib29sIG1fYWNjZWxlcmF0ZXNEcmF3
aW5nOwogCiAgICAgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogbV9jb250ZXh0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQuaAppbmRleCA2MDVjMjE4NjEzMGVjYzFkMTE2NWQ0ZmI1YjY2NmUwMTY4
ZjBmYzY2Li40ZGQ1Mjg0MjVkZjQ1NTkzMjFlYmVkZDhiMDViMzhhMTZkZDlkNjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBidWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgV2ViQ29yZTo6
UGxhdGZvcm1DQUxheWVyJiByb290TGF5ZXIpOwogCiAgICAgLy8gRnJvbSB0aGUgVUkgcHJvY2Vz
cwotICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklELCBkb3VibGUgc3RhcnRUaW1lKTsKKyAgICB2b2lkIGFuaW1hdGlvbkRpZFN0
YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgY29uc3QgU3RyaW5n
JiBrZXksIGRvdWJsZSBzdGFydFRpbWUpOwogCiAgICAgdm9pZCB3aWxsU3RhcnRBbmltYXRpb25P
bkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90ZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW0KaW5kZXggMDZmZDM5YjI4MjUxY2QwYjVmMzg5ZWI4NGQ4Yzk1M2E5OTcwNzk0MC4uNGNi
MTBhOWU5Y2Y3ZjNhN2Q2MjUyMGIyZmMyMzFjYjI1N2FjMWFjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5tbQpAQCAtMTA3LDExICsxMDcsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVD
b250ZXh0Ojp3aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90ZSog
bGEKICAgICBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQuYWRkKGxheWVyLT5sYXllcklE
KCksIGxheWVyKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjphbmltYXRpb25E
aWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwg
ZG91YmxlIHN0YXJ0VGltZSkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YW5pbWF0aW9u
RGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQs
IGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgc3RhcnRUaW1lKQogewogICAgIGF1dG8gaXQgPSBt
X2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQuZmluZChsYXllcklEKTsKICAgICBpZiAoaXQg
IT0gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmVuZCgpKQotICAgICAgICBpdC0+dmFs
dWUtPmFuaW1hdGlvblN0YXJ0ZWQoc3RhcnRUaW1lKTsKKyAgICAgICAgaXQtPnZhbHVlLT5hbmlt
YXRpb25TdGFydGVkKGtleSwgc3RhcnRUaW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKaW5kZXggZGNiNjg4NTY2NTI3MmEz
ZGFiMjk5OGRlNDZiM2ZjMjcwMTZkY2MzMi4uOWFjMTRkZGZhMjczMzliY2FjMTYyMDczM2JmZmEz
MGIyMTMxM2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNzYs
NyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsZWRF
eHBvc2VkUmVjdDsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
U3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJ
RCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFydFRpbWUpIG92ZXJyaWRlOwogCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkQ29udGVudFJlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbQppbmRleCBhZTkyN2VhMThlNDVmNjU3MDhlODk3OTU3YjQzNmUyNTM3ZjUx
NmUyLi45ZjVmN2MxYTFkMTIxNjlmNjI5YTY1ZTljODBlNDE2M2U1ODZiYzA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTE2NCw5ICsxNjQsOSBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmb3JjZVJlcGFpbnQoKQogICAgIGZsdXNoTGF5ZXJz
KCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5p
bWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3ZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQo
dWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFydFRpbWUpCiB7
Ci0gICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5hbmltYXRpb25EaWRTdGFydChsYXllcklE
LCBzdGFydFRpbWUpOworICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+YW5pbWF0aW9uRGlk
U3RhcnQobGF5ZXJJRCwga2V5LCBzdGFydFRpbWUpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRSZWN0
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231524</attachid>
            <date>2014-05-15 09:37:44 -0700</date>
            <delta_ts>2014-05-15 09:37:44 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-132943-20140515093720.patch</filename>
            <type>text/plain</type>
            <size>29492</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4ODk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJiMjc3Y2FmODFiY2Fl
NGEyMGRkYWFkOTE2MDZjMzNlZWQ1ZGFhMi4uMzVjOWNkNDlkOWE4ZTU0MmNjZTFkOWUwOWEzMGY5
Yjg1OGQzNmVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE0LTA1LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtVSS1zaWRlIGNv
bXBvc2l0aW5nXSBGaXggY29weWluZyBhbmltYXRpb25zIGJldHdlZW4gbGF5ZXJzLCBhbmQgcGF1
c2luZyB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI5NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2OTA2MzY5JjE2OTA2NTQxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUGFzcyB0aGUgYW5pbWF0
aW9uIGtleSBiYWNrIHRvIGFuaW1hdGlvblN0YXJ0ZWQoKSwgdGhvdWdoIHRoaXMgaXNuJ3QgdXNl
ZAorICAgICAgICB3aGVuIGFuaW1hdGlvbnMgYXJlIHJ1bm5pbmcgaW4tcHJvY2Vzcy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tOgorICAgICAg
ICAoLVtXZWJBbmltYXRpb25EZWxlZ2F0ZSBhbmltYXRpb25EaWRTdGFydDpdKToKKyAgICAgICAg
KFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHA6CisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJXaW46OmFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaDoKKworMjAxNC0wNS0xNCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBDbGVhbiB1cCAiaGFz
IG5vbi16ZXJvIGJlZ2luIHRpbWUiIHRlcm1pbm9sb2d5IGluIGFuaW1hdGlvbnMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjk0MgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZTUzZjRiZDQ5NmRiYjAyYzU5OWM3YTdmOTgyMDQwYzUyZGRlOTdjNC4uOGRhZTAxYzFm
NjM5OGViN2JjNmFmNjkxNzU0OWJiNWNjNzM2Y2E1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4
IEBACiAyMDE0LTA1LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CisgICAgICAgIFtVSS1zaWRlIGNvbXBvc2l0aW5nXSBGaXggY29weWluZyBhbmltYXRpb25zIGJl
dHdlZW4gbGF5ZXJzLCBhbmQgcGF1c2luZyB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI5NDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2
OTA2MzY5JjE2OTA2NTQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisgICAg
ICAgIAorICAgICAgICBGaXggUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSB0byBzdXBwb3J0IGFu
aW1hdGlvbiBjb3B5aW5nLCBhbmQgdG8gcmVjb3JkCisgICAgICAgIHRoZSBiZWdpblRpbWUgZm9y
IGltcGxpY2l0bHkgc3RhcnRlZCBhbmltYXRpb25zLiBUaGlzIGZpeGVzIGFuaW1hdGlvbiBwYXVz
aW5nLAorICAgICAgICBhbmQgY29weWluZyBvZiBhbmltYXRpb25zIGJldHdlZW4gbGF5ZXJzIHdo
ZW4gdGhleSBnbyBiZXR3ZWVuIHRpbGVkIGFuZCBub24tdGlsZWQuCisgICAgICAgIAorICAgICAg
ICBUaGlzIHJlcXVpcmVzIHNlbmRpbmcgdGhlIGFuaW1hdGlvbiBrZXkgYmFjayB0aHJvdWdoIGFu
aW1hdGlvbkRpZFN0YXJ0KCkgc28gdGhhdAorICAgICAgICB3ZSBjYW4gcmVjb3JkIHRoaXMgYmVn
aW5UaW1lIG9uIHRoZSBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlIGluIHRoZSB3ZWIgcHJvY2Vz
cy4KKyAgICAgICAgVGhpcyBwYXRoIGRvZXNuJ3Qgc2V0IHRoZSAiaGFzRXhwbGljaXRCZWdpblRp
bWUiIGZsYWcuCisgICAgICAgIAorICAgICAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlIGFs
c28gbm93IHN0b3JlcyBhIGhhc2ggb2YgYWN0aXZlIGFuaW1hdGlvbnMsIHNvIHRoYXQKKyAgICAg
ICAgaXQgY2FuIGltcGxlbWVudCBhbmltYXRpb25Gb3JLZXkoKSwgYW5kIHJlY29yZCB0aGUgYmVn
aW5UaW1lLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZUhvc3Q6OmFuaW1hdGlvbkRpZFN0YXJ0KTogR3JvdmVsIGZvciB0aGUga2V5IGZvciB0aGlzCisg
ICAgICAgIGFuaW1hdGlvbjsgc2FkbHkgQ0EgZG9lc24ndCBnaXZlIHVzIGFuIGVhc2llciB3YXku
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
Lm1tOgorICAgICAgICAoLVtXS0FuaW1hdGlvbkRlbGVnYXRlIGFuaW1hdGlvbkRpZFN0YXJ0Ol0p
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5KToKKyAg
ICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0
aW9uRnJvbSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNv
cHlGcm9tVmFsdWVGcm9tKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZTo6Y29weVRvVmFsdWVGcm9tKToKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZTo6Y29weVZhbHVlc0Zyb20pOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlOjpjb3B5S2V5VGltZXNGcm9tKToKKyAgICAgICAgKFdlYktpdDo6UGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20pOgorICAgICAg
ICAoV2ViS2l0OjphZGRBbmltYXRpb25Ub0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
YXRmb3JtQ0FMYXllclJlbW90ZTo6YWRkQW5pbWF0aW9uRm9yS2V5KToKKyAgICAgICAgKFdlYktp
dDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkpOgorICAgICAg
ICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkZvcktleSk6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmFuaW1hdGlv
bkRpZFN0YXJ0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQpOgorCisyMDE0LTA1
LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIENs
ZWFuIHVwICJoYXMgbm9uLXplcm8gYmVnaW4gdGltZSIgdGVybWlub2xvZ3kgaW4gYW5pbWF0aW9u
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyOTQy
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZv
cm1DQUxheWVyLmgKaW5kZXggZThiMmZlZWVjM2E4Nzg0NzVkMTgxOTMwZGViZjVjNmVjMTk3MzYx
Ni4uNWVlMjFjZGU5NzU1MGU4YjQyZTBlZTMxYWUzOTIzNGZkODVmMTE4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgK
QEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIoKSBjb25zdCB7IHJldHVybiBtX293bmVyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE93bmVy
KFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpIHsgbV9vd25lciA9IG93bmVyOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGtl
eSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCmluZGV4IGY3MTExOWUwNzcxNmVkYjAxOTYzODAz
ZWU4NjY3OTBhZGRlYTlmY2IuLmQ4YjQzZDY3MjBjNDkzMjIwOTFiNmYyMTliOGMyNTMyMWQwZWVi
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9Q
bGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tCkBAIC0yMDQsNyArMjA0LDcg
QEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Ojpjb3B5KCkgY29uc3QKIAogICAgIHNldEhhc0V4cGxpY2l0QmVnaW5UaW1lKHRvUGxhdGZvcm1D
QUFuaW1hdGlvbk1hYyhhbmltYXRpb24uZ2V0KCkpLT5wbGF0Zm9ybUFuaW1hdGlvbigpLCBoYXNF
eHBsaWNpdEJlZ2luVGltZShwbGF0Zm9ybUFuaW1hdGlvbigpKSk7CiAgICAgCi0gICAgLy8gQ29w
eSB0aGUgc3BlY2lmaWMgQmFzaWMgb3IgS2V5ZnJhbWUgdmFsdWVzCisgICAgLy8gQ29weSB0aGUg
c3BlY2lmaWMgQmFzaWMgb3IgS2V5ZnJhbWUgdmFsdWVzLgogICAgIGlmIChhbmltYXRpb25UeXBl
KCkgPT0gS2V5ZnJhbWUpIHsKICAgICAgICAgYW5pbWF0aW9uLT5jb3B5VmFsdWVzRnJvbSh0aGlz
KTsKICAgICAgICAgYW5pbWF0aW9uLT5jb3B5S2V5VGltZXNGcm9tKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FMYXllck1hYy5oCmluZGV4IGJhN2YzZjcxNzMwZjUxMzBhMWFjZTQ2YWRmNWI2NTM4MTAzM2Uy
Y2EuLmU0ZDhjN2Y0NzI1ZjYzNjY2ODRmYmRmMGU2ZDUyYTU1NWM2MTYzZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZv
cm1DQUxheWVyTWFjLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRp
b24qKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdp
blRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKGNvbnN0
IFN0cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIHNldE1hc2soUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IGFiNTE4Y2VjZmY0NTI4ZmI5NjdiMTRjMDk4YzRhZjYy
MTk4ZWU5MzUuLmQwMTFlYjdjMzBmZGUxODg4NGIyNzQ0NDZhNDdkNTY5NjEyYzRiMjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMTE2LDggKzExNiwxOSBAQCBzdGF0aWMgZG91Ymxl
IG1lZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKICAgICB9IGVsc2UKICAg
ICAgICAgc3RhcnRUaW1lID0gbWVkaWFUaW1lVG9DdXJyZW50VGltZShbYW5pbWF0aW9uIGJlZ2lu
VGltZV0pOwogCi0gICAgaWYgKG1fb3duZXIpCi0gICAgICAgIG1fb3duZXItPmFuaW1hdGlvblN0
YXJ0ZWQoc3RhcnRUaW1lKTsKKyAgICBpZiAobV9vd25lcikgeworICAgICAgICBDQUxheWVyICps
YXllciA9IG1fb3duZXItPnBsYXRmb3JtTGF5ZXIoKTsKKworICAgICAgICBTdHJpbmcgYW5pbWF0
aW9uS2V5OworICAgICAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gW2xheWVyIGFuaW1hdGlvbktl
eXNdKSB7CisgICAgICAgICAgICBpZiAoW2xheWVyIGFuaW1hdGlvbkZvcktleTprZXldID09IGFu
aW1hdGlvbikgeworICAgICAgICAgICAgICAgIGFuaW1hdGlvbktleSA9IGtleTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1fb3du
ZXItPmFuaW1hdGlvblN0YXJ0ZWQoYW5pbWF0aW9uS2V5LCBzdGFydFRpbWUpOworICAgIH0KIH0K
IAogLSAodm9pZClzZXRPd25lcjooUGxhdGZvcm1DQUxheWVyKilvd25lcgpAQCAtMjkyLDcgKzMw
Myw3IEBAIFBsYXRmb3JtQ0FMYXllck1hYzo6flBsYXRmb3JtQ0FMYXllck1hYygpCiAgICAgICAg
IFtzdGF0aWNfY2FzdDxXZWJUaWxlZEJhY2tpbmdMYXllciAqPihtX2xheWVyLmdldCgpKSBpbnZh
bGlkYXRlXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvblN0YXJ0ZWQo
Q0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQordm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgU3RyaW5nJiwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQogewog
ICAgIGlmIChtX293bmVyKQogICAgICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRp
b25TdGFydGVkKGJlZ2luVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IGE5
NDE1ZjRlYWFlZGQxOWMwZjhkZDhjNTJlZmE3YmQ0NWI4ZGM2NDguLjRkOTc5ZmQxYjU4MDkxZWJl
YzBlOWE4OGM3MDA0NjQwZTNmYjQ1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBA
IC0xNzIsNyArMTcyLDcgQEAgUGxhdGZvcm1DQUxheWVyKiBQbGF0Zm9ybUNBTGF5ZXJXaW46OnJv
b3RMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIGhvc3QgPyBob3N0LT5yb290TGF5ZXIoKSA6IDA7
CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjphbmltYXRpb25TdGFydGVkKENGVGltZUlu
dGVydmFsIGJlZ2luVGltZSkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjphbmltYXRpb25TdGFy
dGVkKGNvbnN0IFN0cmluZyYsIENGVGltZUludGVydmFsIGJlZ2luVGltZSkKIHsKICAgICAvLyBV
cGRhdGUgc3RhcnQgdGltZSBmb3IgYW55IGFuaW1hdGlvbiBub3QgeWV0IHN0YXJ0ZWQKICAgICBD
RlRpbWVJbnRlcnZhbCBjYWNmQmVnaW5UaW1lID0gY3VycmVudFRpbWVUb01lZGlhVGltZShiZWdp
blRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FMYXllcldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCmluZGV4IGQzNzIyZDY2ZGE2NjFjMGE2ZDU1
OTg2NDNmMTM3Y2M5ODFmYjA0OWQuLjIwMDg1MzIxYzU1NmEyYjgwZTdjODQ5Mzg0OGIzNTI3Njg3
ZThkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
QW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0
cmluZyYga2V5KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmlt
YXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUp
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2soUGxhdGZvcm1DQUxheWVyKikg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggYWNjNTMxMWY2NmRk
ZTQ5M2U1MTY2ODU3N2FhYWI1MDhkNWEyODA2NS4uZTg3YjllOTlhOTk0YTJiZThkNWJjM2QwNDQ4
YTdjMDMzOWU2NGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYgcmVtb3RlTGF5
ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsgfQogCi0g
ICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGRv
dWJsZSBzdGFydFRpbWUpOworICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1
aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHN0YXJ0VGltZSk7CiAK
ICAgICB2b2lkIGNvcmVBbmltYXRpb25EaWRDb21taXRMYXllcnMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCmluZGV4IGFiNjI2YTQyNzhkYjBiMGY3NWU5OWZhOGMwNDIyM2JlYTY3
Y2YwOGUuLjg1MzQ2ZmY0MGFjY2ViMzQ5ZmI4ZWY0YzYwMDMxYWQ5YjEzYmQ0YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTE1Miw5ICsxNTIsOSBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXll
clRyZWVUcmFucwogICAgIHNjaGVkdWxlQ29yZUFuaW1hdGlvbkxheWVyQ29tbWl0T2JzZXJ2ZXIo
KTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRl
ZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGRvdWJsZSBzdGFydFRpbWUpCit2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9u
RGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFy
dFRpbWUpCiB7Ci0gICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpE
cmF3aW5nQXJlYTo6QWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydChsYXllcklELCBzdGFydFRp
bWUpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOworICAgIG1fd2ViUGFnZVByb3h5LT5wcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
U3RhcnQobGF5ZXJJRCwga2V5LCBzdGFydFRpbWUpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkp
OwogfQogCiBzdGF0aWMgY29uc3QgZmxvYXQgaW5kaWNhdG9ySW5zZXQgPSAxMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXgg
YWM4OWVmYjlhMzQyYjE5ZmZkN2QzZmFhMWVkYWU0YWI4MDA2MTk2Yy4uNDk0MzM3ZWIwNjk3Mjk4
N2ExNDE5OWM3MzE5MDcwNGJhZGQ2NTY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorT0JKQ19D
TEFTUyBDQUFuaW1hdGlvbjsKIE9CSkNfQ0xBU1MgV0tBbmltYXRpb25EZWxlZ2F0ZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC01OCw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhh
c2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRhaW5QdHI8
V0tBbmltYXRpb25EZWxlZ2F0ZT4+IExheWVyQW5pbWF0aW9uRGVsZWdhdGVNYXA7CiAgICAgTGF5
ZXJBbmltYXRpb25EZWxlZ2F0ZU1hcCYgYW5pbWF0aW9uRGVsZWdhdGVzKCkgeyByZXR1cm4gbV9h
bmltYXRpb25EZWxlZ2F0ZXM7IH0KIAotICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBkb3VibGUgc3RhcnRUaW1lKTsKKyAg
ICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCwgQ0FBbmltYXRpb24gKiwgZG91YmxlIHN0YXJ0VGltZSk7CiAKIHByaXZhdGU6CiAg
ICAgTGF5ZXJPclZpZXcgKmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllclByb3BlcnRpZXMqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCA2NWNjM2NiYzIzZWE0YmYwNzYw
NjZlYWY3NDM4NGJjNjk5MTUzNzQzLi44MjM5YTU1MTVmYjcxMzJhZWNjMTViMDliOTI4ODdjM2Q1
YzhmMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxh
eWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVIb3N0Lm1tCkBAIC0xMTMsOSArMTEzLDIxIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6bGF5ZXJXaWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5CiAgICAgbV9sYXllcnMucmVtb3ZlKGxheWVySUQpOwogfQogCi12b2lkIFJlbW90ZUxheWVy
VHJlZUhvc3Q6OmFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCBsYXllcklELCBkb3VibGUgc3RhcnRUaW1lKQordm9pZCBSZW1vdGVMYXllclRy
ZWVIb3N0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRpb24gKmFuaW1hdGlvbiwgZG91YmxlIHN0YXJ0VGlt
ZSkKIHsKLSAgICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5
ZXJJRCwgc3RhcnRUaW1lKTsKKyAgICBDQUxheWVyICpsYXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIo
bGF5ZXJJRCkpOworICAgIGlmICghbGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmlu
ZyBhbmltYXRpb25LZXk7CisgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIFtsYXllciBhbmltYXRp
b25LZXlzXSkgeworICAgICAgICBpZiAoW2xheWVyIGFuaW1hdGlvbkZvcktleTprZXldID09IGFu
aW1hdGlvbikgeworICAgICAgICAgICAgYW5pbWF0aW9uS2V5ID0ga2V5OworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVk
QW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgYW5pbWF0aW9uS2V5LCBzdGFydFRpbWUpOwogfQog
CiBzdGF0aWMgTlNTdHJpbmcqIGNvbnN0IFdLTGF5ZXJJRFByb3BlcnR5S2V5ID0gQCJXS0xheWVy
SUQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
aAppbmRleCAxMjQ2MDk5MzJlOWE0ZThhYWQ3MDU2ZDA5YWZiZmEwYWI5NmQ2NWFhLi44MjY3ODYz
YjNhNDljYjA3MzY2MjJjNzkxOGE4ZWVlZWRhNTRjYTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtODQsNyArODQsNyBAQCBwdWJs
aWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZWxl
cmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCAvKmxheWVySUQqLywgZG91YmxlIC8qc3Rh
cnRUaW1lKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0
YXJ0KHVpbnQ2NF90IC8qbGF5ZXJJRCovLCBjb25zdCBTdHJpbmcmIC8qa2V5Ki8sIGRvdWJsZSAv
KnN0YXJ0VGltZSovKSB7IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5tZXNzYWdlcy5pbgppbmRleCBjY2FlMmFhOWFkZDMxNGU0ZWE4ODc5YzczMjQyMjYy
YWNlZGY0ZTY1Li5kNjBjMjM3NmNkYmM3NjcyM2I4MTE1YmU0NmExMTEwZmQ0ODQ2MzNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLm1lc3NhZ2VzLmluCkBAIC0zNCw2ICszNCw2IEBAIG1lc3NhZ2VzIC0+IERyYXdpbmdBcmVh
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBBZGp1c3RUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwg
V2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pCiAgICAgQ29tbWl0VHJhbnNpZW50Wm9vbShkb3Vi
bGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKQogICAgIAotICAgIEFjY2VsZXJh
dGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkK
KyAgICBBY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIFN0cmlu
ZyBrZXksIGRvdWJsZSBzdGFydFRpbWUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlLmgKaW5kZXggZmMzMWZmMDdkMjlhYzMzM2Y5YTNlYTk0ZTI2YTE3ZDczMzA3Mzcx
MC4uYTFiYzdkNjIzNGYyZjc4NmI2OWE2N2YwNDlmNTAxOTk3ZjdlYjM3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKQEAgLTEyMSw2ICsxMjEsMTIgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFdlYkNv
cmU6OlRpbWluZ0Z1bmN0aW9uKj4mLCBib29sIHJldmVyc2UgPSBmYWxzZSkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFdlYkNvcmU6OlBs
YXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKIAorICAgIEFuaW1hdGlvblR5cGUgYW5pbWF0
aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllcy5hbmltYXRpb25UeXBlOyB9Cisg
ICAgdm9pZCBzZXRIYXNFeHBsaWNpdEJlZ2luVGltZShib29sIGhhc0V4cGxpY2l0QmVnaW5UaW1l
KSB7IG1fcHJvcGVydGllcy5oYXNFeHBsaWNpdEJlZ2luVGltZSA9IGhhc0V4cGxpY2l0QmVnaW5U
aW1lOyB9CisgICAgYm9vbCBoYXNFeHBsaWNpdEJlZ2luVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvcGVydGllcy5oYXNFeHBsaWNpdEJlZ2luVGltZTsgfQorCisgICAgdm9pZCBkaWRTdGFydChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIHsgbV9wcm9wZXJ0aWVzLmJlZ2luVGltZSA9IGJlZ2lu
VGltZTsgfQorCiAgICAgY2xhc3MgS2V5ZnJhbWVWYWx1ZSB7CiAgICAgcHVibGljOgogICAgICAg
ICBlbnVtIEtleWZyYW1lVHlwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0K
aW5kZXggMmRlODE1NGYwNDUwYjYxNTNkN2JhY2VhZDY2NWU0YWI2OGI3YTI4Ny4uODkxMmRiODUy
YWFiNDc3MDJkZDU2YjFmOGUzZDVjYTFlMTU0MjQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZS5tbQpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBX
S0V4cGxpY2l0QmVnaW5UaW1lRmxhZyA9IEAiV0tQbGF0Zm9ybUNBQW5pbWF0aW9uRXhwbGljaQog
ICAgIH0gZWxzZQogICAgICAgICBzdGFydFRpbWUgPSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKFth
bmltYXRpb24gYmVnaW5UaW1lXSk7CiAKLSAgICBfbGF5ZXJUcmVlSG9zdC0+YW5pbWF0aW9uRGlk
U3RhcnQoX2xheWVySUQsIHN0YXJ0VGltZSk7CisgICAgX2xheWVyVHJlZUhvc3QtPmFuaW1hdGlv
bkRpZFN0YXJ0KF9sYXllcklELCBhbmltYXRpb24sIHN0YXJ0VGltZSk7CiB9CiBAZW5kCiAKQEAg
LTI3OCw4ICsyNzgsMzMgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpjcmVhdGUoUGxhdGZvcm1DQUFuaW0KIAogUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5KCkgY29u
c3QKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uID0gY3JlYXRlKGFuaW1hdGlv
blR5cGUoKSwga2V5UGF0aCgpKTsKKyAgICAKKyAgICBhbmltYXRpb24tPnNldEJlZ2luVGltZShi
ZWdpblRpbWUoKSk7CisgICAgYW5pbWF0aW9uLT5zZXREdXJhdGlvbihkdXJhdGlvbigpKTsKKyAg
ICBhbmltYXRpb24tPnNldFNwZWVkKHNwZWVkKCkpOworICAgIGFuaW1hdGlvbi0+c2V0VGltZU9m
ZnNldCh0aW1lT2Zmc2V0KCkpOworICAgIGFuaW1hdGlvbi0+c2V0UmVwZWF0Q291bnQocmVwZWF0
Q291bnQoKSk7CisgICAgYW5pbWF0aW9uLT5zZXRBdXRvcmV2ZXJzZXMoYXV0b3JldmVyc2VzKCkp
OworICAgIGFuaW1hdGlvbi0+c2V0RmlsbE1vZGUoZmlsbE1vZGUoKSk7CisgICAgYW5pbWF0aW9u
LT5zZXRSZW1vdmVkT25Db21wbGV0aW9uKGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpKTsKKyAgICBh
bmltYXRpb24tPnNldEFkZGl0aXZlKGlzQWRkaXRpdmUoKSk7CisgICAgYW5pbWF0aW9uLT5jb3B5
VGltaW5nRnVuY3Rpb25Gcm9tKHRoaXMpOworICAgIGFuaW1hdGlvbi0+c2V0VmFsdWVGdW5jdGlv
bih2YWx1ZUZ1bmN0aW9uKCkpOworCisgICAgdG9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKGFu
aW1hdGlvbi5nZXQoKSktPnNldEhhc0V4cGxpY2l0QmVnaW5UaW1lKGhhc0V4cGxpY2l0QmVnaW5U
aW1lKCkpOworICAgIAorICAgIC8vIENvcHkgdGhlIHNwZWNpZmljIEJhc2ljIG9yIEtleWZyYW1l
IHZhbHVlcy4KKyAgICBpZiAoYW5pbWF0aW9uVHlwZSgpID09IEtleWZyYW1lKSB7CisgICAgICAg
IGFuaW1hdGlvbi0+Y29weVZhbHVlc0Zyb20odGhpcyk7CisgICAgICAgIGFuaW1hdGlvbi0+Y29w
eUtleVRpbWVzRnJvbSh0aGlzKTsKKyAgICAgICAgYW5pbWF0aW9uLT5jb3B5VGltaW5nRnVuY3Rp
b25zRnJvbSh0aGlzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhbmltYXRpb24tPmNvcHlGcm9t
VmFsdWVGcm9tKHRoaXMpOworICAgICAgICBhbmltYXRpb24tPmNvcHlUb1ZhbHVlRnJvbSh0aGlz
KTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIGFuaW1hdGlvbjsKIH0KIAogUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZTo6UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZShBbmltYXRpb25UeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKQEAgLTM4Miw3ICs0MDcsNyBAQCB2b2lkIFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKiB2YWx1ZSwgYgogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHlUaW1p
bmdGdW5jdGlvbkZyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20odmFsdWUp
OwogfQogCiBib29sIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmlzUmVtb3ZlZE9uQ29tcGxl
dGlvbigpIGNvbnN0CkBAIC00NjQsNyArNDg5LDEzIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZTo6c2V0RnJvbVZhbHVlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogb3BlcmF0aW9uLCBp
CiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weUZyb21WYWx1ZUZyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsdWUpCiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSogb3RoZXIgPSB0b1BsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUodmFsdWUpOworCisgICAgaWYgKG90aGVyLT5tX3Byb3BlcnRp
ZXMua2V5VmFsdWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fcHJv
cGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXNb
MF0gPSBvdGhlci0+bV9wcm9wZXJ0aWVzLmtleVZhbHVlc1swXTsKIH0KIAogdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUb1ZhbHVlKGZsb2F0IHZhbHVlKQpAQCAtNTE4LDcgKzU0
OSwxMiBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRvVmFsdWUoY29uc3Qg
RmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24sIGludAogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGU6OmNvcHlUb1ZhbHVlRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlKiBvdGhlciA9IHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSh2YWx1ZSk7
CisKKyAgICBpZiAob3RoZXItPm1fcHJvcGVydGllcy5rZXlWYWx1ZXMuc2l6ZSgpIDwgMikKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fcHJvcGVydGllcy5rZXlWYWx1ZXMucmVzaXplKDIpOworICAg
IG1fcHJvcGVydGllcy5rZXlWYWx1ZXNbMV0gPSBvdGhlci0+bV9wcm9wZXJ0aWVzLmtleVZhbHVl
c1sxXTsKIH0KIAogLy8gS2V5ZnJhbWUtYW5pbWF0aW9uIHByb3BlcnRpZXMuCkBAIC01OTgsNyAr
NjM0LDggQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYKIAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlOjpjb3B5VmFsdWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBjb25zdCBQbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlKiBvdGhlciA9IHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSh2YWx1ZSk7
CisgICAgbV9wcm9wZXJ0aWVzLmtleVZhbHVlcyA9IG90aGVyLT5tX3Byb3BlcnRpZXMua2V5VmFs
dWVzOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldEtleVRpbWVzKGNv
bnN0IFZlY3RvcjxmbG9hdD4mIGtleVRpbWVzKQpAQCAtNjA4LDcgKzY0NSw4IEBAIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6c2V0S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYg
a2V5VGltZXMpCiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y29weUtleVRpbWVz
RnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKIHsKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICBjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKiBvdGhlciA9
IHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZSh2YWx1ZSk7CisgICAgbV9wcm9wZXJ0aWVzLmtl
eVRpbWVzID0gb3RoZXItPm1fcHJvcGVydGllcy5rZXlUaW1lczsKIH0KIAogdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlcywgYm9vbCByZXZlcnNlKQpAQCAtNjI1LDcgKzY2Mywx
MCBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnNldFRpbWluZ0Z1bmN0aW9ucyhj
b25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuYwogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGU6OmNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24q
IHZhbHVlKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGNvbnN0IFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGUqIG90aGVyID0gdG9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKHZh
bHVlKTsKKworICAgIG1fcHJvcGVydGllcy50aW1pbmdGdW5jdGlvbnMgPSBvdGhlci0+bV9wcm9w
ZXJ0aWVzLnRpbWluZ0Z1bmN0aW9uczsKKyAgICBtX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1
bmN0aW9ucyA9IG90aGVyLT5tX3Byb3BlcnRpZXMucmV2ZXJzZVRpbWluZ0Z1bmN0aW9uczsKIH0K
IAogc3RhdGljIE5TT2JqZWN0KiBhbmltYXRpb25WYWx1ZUZyb21LZXlmcmFtZVZhbHVlKGNvbnN0
IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWUmIGtleWZyYW1lVmFsdWUp
CkBAIC03MTksNyArNzYwLDcgQEAgc3RhdGljIHZvaWQgYWRkQW5pbWF0aW9uVG9MYXllcihDQUxh
eWVyICpsYXllciwgUmVtb3RlTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG8KICAgICAgICAgW2Nh
QW5pbWF0aW9uIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhO
YW1lOnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShwcm9wZXJ0aWVzLnZhbHVlRnVuY3Rpb24pXV07CiAg
ICAgCiAgICAgaWYgKHByb3BlcnRpZXMuaGFzRXhwbGljaXRCZWdpblRpbWUpCi0gICAgICAgIFtj
YUFuaW1hdGlvbi5nZXQoKSAgc2V0VmFsdWU6QFlFUyBmb3JLZXk6V0tFeHBsaWNpdEJlZ2luVGlt
ZUZsYWddOworICAgICAgICBbY2FBbmltYXRpb24gc2V0VmFsdWU6QFlFUyBmb3JLZXk6V0tFeHBs
aWNpdEJlZ2luVGltZUZsYWddOwogICAgIAogICAgIGlmIChsYXllclRyZWVIb3N0KSB7CiAgICAg
ICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEID0gUmVtb3RlTGF5ZXJU
cmVlSG9zdDo6bGF5ZXJJRChsYXllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5k
ZXggYjgzZjAwYTA4Mjk5YjhlYzBlYzkxMGYwMjQzZWY1NWQyNjlmMGUxZC4uYjQyMWFjMmNmZmY0
ZWVkNDk0YzA0M2ZjZDI1MmZmZGUwN2U2MDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmNwcApAQCAtMTYxLDEyICsxNjEsNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6ZGlk
Q29tbWl0KCkKICAgICBtX3Byb3BlcnRpZXMucmVzZXRDaGFuZ2VkUHJvcGVydGllcygpOwogfQog
Ci12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRl
cnZhbCBiZWdpblRpbWUpCi17Ci0gICAgaWYgKG1fb3duZXIpCi0gICAgICAgIG1fb3duZXItPnBs
YXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0ZWQoYmVnaW5UaW1lKTsKLX0KLQogdm9pZCBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmVuc3VyZUJhY2tpbmdTdG9yZSgpCiB7CiAgICAgQVNTRVJUKG93
bmVyKCkpOwpAQCAtMjk5LDYgKzI5Myw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjph
ZG9wdFN1YmxheWVycyhQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkKIAogdm9pZCBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwgUGxhdGZv
cm1DQUFuaW1hdGlvbiogYW5pbWF0aW9uKQogeworICAgIG1fYW5pbWF0aW9ucy5zZXQoa2V5LCBh
bmltYXRpb24pOwogICAgIG1fcHJvcGVydGllcy5hZGRlZEFuaW1hdGlvbnMuc2V0KGtleSwgdG9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKGFuaW1hdGlvbiktPnByb3BlcnRpZXMoKSk7CiAgICAg
bV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6QW5pbWF0aW9uc0NoYW5nZWQpOwogCkBAIC0zMDgsNiArMzAzLDcgQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGU6OmFkZEFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSwg
UGxhdGZvcm1DQUFuaW0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlbW92ZUFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkKIHsKKyAgICBtX2FuaW1hdGlvbnMucmVtb3Zl
KGtleSk7CiAgICAgbV9wcm9wZXJ0aWVzLmFkZGVkQW5pbWF0aW9ucy5yZW1vdmUoa2V5KTsKICAg
ICBtX3Byb3BlcnRpZXMua2V5UGF0aHNPZkFuaW1hdGlvbnNUb1JlbW92ZS5hZGQoa2V5KTsKICAg
ICBtX3Byb3BlcnRpZXMubm90ZVByb3BlcnRpZXNDaGFuZ2VkKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpBbmltYXRpb25zQ2hhbmdlZCk7CkBAIC0zMTUsOCArMzExLDE3IEBAIHZvaWQgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXkpCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gUGxhdGZvcm1DQUxheWVyUmVt
b3RlOjphbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgLy8gRklYTUU6
IGltcGxlbWVudC4KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbV9hbmltYXRpb25z
LmdldChrZXkpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6YW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBTdHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQoreworICAg
IGF1dG8gaXQgPSBtX2FuaW1hdGlvbnMuZmluZChrZXkpOworICAgIGlmIChpdCAhPSBtX2FuaW1h
dGlvbnMuZW5kKCkpCisgICAgICAgIHRvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZShpdC0+dmFs
dWUuZ2V0KCkpLT5kaWRTdGFydChiZWdpblRpbWUpOworICAgIAorICAgIGlmIChtX293bmVyKQor
ICAgICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGlt
ZSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRNYXNrKFBsYXRmb3JtQ0FM
YXllciogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCA1ODM0NmUwOTNjZjBk
ODE4YWZlYmE5YmMyODlhNjQ2OGRlODcwNGFkLi5mM2QxNWI0MWNmOTUyOWMwZWE4MWNiNjk1OWRm
YWI0ODJmN2E5MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTY2LDcgKzY2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXksIFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlv
bj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5
LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldE1hc2soV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKQEAgLTE3Nyw2
ICsxNzcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QgbV9j
aGlsZHJlbjsKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIG1fc3VwZXJsYXllcjsKICAgICBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIG1fbWFza0xheWVyOworICAgIEhhc2hNYXA8U3RyaW5nLCBS
ZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbj4+IG1fYW5pbWF0aW9uczsKICAgICBi
b29sIG1fYWNjZWxlcmF0ZXNEcmF3aW5nOwogCiAgICAgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCog
bV9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAppbmRleCA2MDVjMjE4NjEzMGVj
YzFkMTE2NWQ0ZmI1YjY2NmUwMTY4ZjBmYzY2Li40ZGQ1Mjg0MjVkZjQ1NTkzMjFlYmVkZDhiMDVi
MzhhMTZkZDlkNjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaApAQCAtNTYsNyArNTYs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBidWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJiwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyJiByb290TGF5ZXIpOwogCiAgICAg
Ly8gRnJvbSB0aGUgVUkgcHJvY2VzcwotICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBkb3VibGUgc3RhcnRUaW1lKTsKKyAg
ICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFydFRpbWUpOwogCiAgICAgdm9p
ZCB3aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90ZSopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggMDZmZDM5YjI4MjUxY2QwYjVmMzg5ZWI4
NGQ4Yzk1M2E5OTcwNzk0MC4uNGNiMTBhOWU5Y2Y3ZjNhN2Q2MjUyMGIyZmMyMzFjYjI1N2FjMWFj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAtMTA3LDExICsxMDcsMTEgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKFBs
YXRmb3JtQ0FMYXllclJlbW90ZSogbGEKICAgICBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3Rh
cnQuYWRkKGxheWVyLT5sYXllcklEKCksIGxheWVyKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRy
ZWVDb250ZXh0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0VGltZSkKK3ZvaWQgUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dDo6YW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklEIGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgc3RhcnRUaW1l
KQogewogICAgIGF1dG8gaXQgPSBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQuZmluZChs
YXllcklEKTsKICAgICBpZiAoaXQgIT0gbV9sYXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmVu
ZCgpKQotICAgICAgICBpdC0+dmFsdWUtPmFuaW1hdGlvblN0YXJ0ZWQoc3RhcnRUaW1lKTsKKyAg
ICAgICAgaXQtPnZhbHVlLT5hbmltYXRpb25TdGFydGVkKGtleSwgc3RhcnRUaW1lKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgK
aW5kZXggZGNiNjg4NTY2NTI3MmEzZGFiMjk5OGRlNDZiM2ZjMjcwMTZkY2MzMi4uOWFjMTRkZGZh
MjczMzliY2FjMTYyMDczM2JmZmEzMGIyMTMxM2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdDsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91YmxlIHN0YXJ0
VGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
U3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFydFRp
bWUpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRF
eHBvc2VkQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCBhZTkyN2VhMThlNDVmNjU3
MDhlODk3OTU3YjQzNmUyNTM3ZjUxNmUyLi45ZjVmN2MxYTFkMTIxNjlmNjI5YTY1ZTljODBlNDE2
M2U1ODZiYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTE2
NCw5ICsxNjQsOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmb3JjZVJlcGFp
bnQoKQogICAgIGZsdXNoTGF5ZXJzKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgZG91
YmxlIHN0YXJ0VGltZSkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJh
dGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXks
IGRvdWJsZSBzdGFydFRpbWUpCiB7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5hbmlt
YXRpb25EaWRTdGFydChsYXllcklELCBzdGFydFRpbWUpOworICAgIG1fcmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC0+YW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwga2V5LCBzdGFydFRpbWUpOwogfQog
CiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdChjb25zdCBG
bG9hdFJlY3QmIGV4cG9zZWRSZWN0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>