<?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>136084</bug_id>
          
          <creation_ts>2014-08-19 15:54:23 -0700</creation_ts>
          <short_desc>Add animationDidEnd callbacks on GraphicsLayer</short_desc>
          <delta_ts>2014-08-21 15:44:08 -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>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030134</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-19 15:54:23 -0700</bug_when>
    <thetext>Add animationDidEnd callbacks on GraphicsLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030135</commentid>
    <comment_count>1</comment_count>
      <attachid>236830</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-19 15:56:50 -0700</bug_when>
    <thetext>Created attachment 236830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030137</commentid>
    <comment_count>2</comment_count>
      <attachid>236830</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-19 16:01:13 -0700</bug_when>
    <thetext>Comment on attachment 236830
Patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:352
&gt; +void PlatformCALayerMac::animationStarted(const String&amp; animtionKey, CFTimeInterval beginTime)

anim*a*tion

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:137
&gt; +    auto it = m_layersWithAnimations.find(layerID);

should we not remove the layer from m_layersWithAnimations if it doesn&apos;t have any more animations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030161</commentid>
    <comment_count>3</comment_count>
      <attachid>236837</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-19 17:29:51 -0700</bug_when>
    <thetext>Created attachment 236837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030574</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-21 15:44:08 -0700</bug_when>
    <thetext>https://trac.webkit.org/r172836</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236830</attachid>
            <date>2014-08-19 15:56:50 -0700</date>
            <delta_ts>2014-08-19 17:29:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136084-20140819155641.patch</filename>
            <type>text/plain</type>
            <size>28311</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY2YzBjZThlYWQyYmRj
NjFhOTM4ZDk3M2EzNDNlNjcxZDQyMzBhMS4uODgzMGI0MjJkODljNTA2M2EyZDQ2MzE0MGVjNDMw
ZDZhNzQzYWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA4LTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbmltYXRp
b25EaWRFbmQgY2FsbGJhY2tzIG9uIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjA4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvb2sgdXAgR3JhcGhpY3NMYXllckNsaWVudDo6
bm90aWZ5QW5pbWF0aW9uRW5kZWQoKSBzbyB0aGF0IGNvZGUgdXNpbmcgR3JhcGhpY3NMYXllcnMg
ZGlyZWN0bHkKKyAgICAgICAgY2FuIGFkZCBhbmltYXRpb25zLCBhbmQga25vdyB3aGVuIHRoZXkg
ZmluaXNoLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNsaWVudDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2xpZW50Ojpub3RpZnlBbmltYXRpb25FbmRlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllckFuaW1hdGlv
bkVuZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudDo6cGxhdGZvcm1DQUxheWVyQW5p
bWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQ6
OnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKC1bV2ViQW5pbWF0
aW9uRGVsZWdhdGUgYW5pbWF0aW9uRGlkU3RhcnQ6XSk6CisgICAgICAgICgtW1dlYkFuaW1hdGlv
bkRlbGVnYXRlIGFuaW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6XSk6CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXJNYWM6OmFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
TWFjOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aDoKKwogMjAxNC0wOC0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YWUzMWVi
NmRlNGU1ZTQxYTFlZWY2NmI1MWZiMGM3MzVhNjRhYjkwLi5lMDBlMDcyYTBlMTUyODllMzdiMDhh
ZjVmOWMyYmVlZDA2ZjI4MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTQtMDgt
MTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IGFuaW1hdGlvbkRpZEVuZCBjYWxsYmFja3Mgb24gR3JhcGhpY3NMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9vayB1cCBHcmFwaGljc0xheWVy
Q2xpZW50Ojpub3RpZnlBbmltYXRpb25FbmRlZCgpIHNvIHRoYXQgY29kZSB1c2luZyBHcmFwaGlj
c0xheWVycyBkaXJlY3RseQorICAgICAgICBjYW4gYWRkIGFuaW1hdGlvbnMsIGFuZCBrbm93IHdo
ZW4gdGhleSBmaW5pc2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjphY2NlbGVy
YXRlZEFuaW1hdGlvbkRpZEVuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbToKKyAgICAgICAgKC1bV0tBbmltYXRpb25EZWxlZ2F0
ZSBhbmltYXRpb25EaWRTdG9wOmZpbmlzaGVkOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxh
dGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6d2lsbFN0YXJ0QW5pbWF0
aW9uT25MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmFu
aW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6YW5pbWF0aW9uRGlkRW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKToKKwog
MjAxNC0wOC0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMDNi
MjBiZWFlYThkN2EyYTQ2NzNkOTY0NjVlMjMzMGZlOGNjMjIzMS4uOTgwYTAyNjgxNGQ3ZjI3NmYw
NjFiNTc1MTIzNGMzZjVhNWZkMDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU5Nyw4ICs1
OTcsOSBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNOZWVkc0Rp
c3BsYXlFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldENvbnRlbnRzVG9Tb2xp
ZENvbG9yRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldERl
YnVnQmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xh
eWVyQ0EyOHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1UGxhdGZvcm1DQUxheWVy
RVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCitfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTI5cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWRFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMwZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkRXYKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5
ZXJBbmltYXRpb25TdGFydGVkRWQKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMzFwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRVJLTjNXVEY2U3RyaW5nRWQKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMzdmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
RXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVk
c1RvUmV2YWxpZGF0ZVRpbGVzRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldE5h
bWVFUktOM1dURjZTdHJpbmdFCkBAIC0yMDYyLDYgKzIwNjMsOCBAQCBfX1pUVk43V2ViQ29yZTI1
RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbkUKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsOFNldHRpbmdzRQogX19aVFZON1dlYkNvcmUzMUJhc2ljQ29sb3JNYXRy
aXhGaWx0ZXJPcGVyYXRpb25FCiBfX1pUVk43V2ViQ29yZTM3QmFzaWNDb21wb25lbnRUcmFuc2Zl
ckZpbHRlck9wZXJhdGlvbkUKK19fWlRobjUwNF9ON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTI5
cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWRFUktOM1dURjZTdHJpbmdFCitfX1pUaG41MDRf
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EzMXBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0
ZWRFUktOM1dURjZTdHJpbmdFZAogX19aVGhuPz8/X043V2ViQ29yZTE1R3JhcGhpY3NMYXllckNB
MjhwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzRVBOU18xNVBsYXRmb3JtQ0FMYXllckVSTlNf
MTVHcmFwaGljc0NvbnRleHRFUktOU185RmxvYXRSZWN0RQogX19aVGhuPz8/X043V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRWQKIF9fWlRo
bj8/P19ON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTQwcGxhdGZvcm1DQUxheWVyU2V0TmVlZHNU
b1JldmFsaWRhdGVUaWxlc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggMTc2YjEwYTdkOTQ5YTQyZDQ0MDVl
MmMyNGUxNGFkZTUxMTFkOGQwYi4uOGE0ODMzMzFhOTg4NTI0ODA3OGFlMmU1NmNiNjE2NjgyMWZm
ZTc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtNjIsNyArNjIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9v
bCAvKnVzaW5nVGlsZWRCYWNraW5nKi8pIHsgfQogICAgIAogICAgIC8vIENhbGxiYWNrIGZvciB3
aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBzdGFydGVkLgotICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUg
Lyp0aW1lKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIC8qYW5pbWF0aW9uS2V5Ki8sIGRvdWJs
ZSAvKnRpbWUqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvbkVuZGVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIC8qYW5pbWF0aW9uS2V5Ki8pIHsgfQog
CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQg
cmVxdWlyZXMgYSBzdWJzZXF1ZW50IGNhbGwgdG8gZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkKICAg
ICAvLyB0byBhcHBlYXIgb24gdGhlIHNjcmVlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5NmI2ZWQy
ZjZlNjJhMmVlOTNlYjllZDkyMGRlZjA0ZTVjYjA2NGUuLjJjODg4N2E2OTAwYjYwZDNjZTVjODcx
ZGExMTQ1MTU1NjlhZjY5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtODQzLDkgKzg0MywxNCBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uTmFtZSkKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQW5pbWF0aW9uQ2hhbmdlZCk7
CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFy
dGVkKENGVGltZUludGVydmFsIHN0YXJ0VGltZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBD
RlRpbWVJbnRlcnZhbCBzdGFydFRpbWUpCiB7Ci0gICAgY2xpZW50KCkubm90aWZ5QW5pbWF0aW9u
U3RhcnRlZCh0aGlzLCBzdGFydFRpbWUpOworICAgIGNsaWVudCgpLm5vdGlmeUFuaW1hdGlvblN0
YXJ0ZWQodGhpcywgYW5pbWF0aW9uS2V5LCBzdGFydFRpbWUpOworfQorCit2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWQoY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25LZXkpCit7CisgICAgY2xpZW50KCkubm90aWZ5QW5pbWF0aW9uRW5kZWQodGhpcywgYW5p
bWF0aW9uS2V5KTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9Tb2xp
ZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggZGIzZDJkNzI5MDE2NWEy
YTljN2IwZmU0NTI0ZjlkNGYzMWFjYmU1MS4uYzgzOTI3YmY1YzkyYzgxNGI3MjIxZjA4ODc1YmMz
NWYwZjRiNzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTE3OSw3ICsxNzksOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJMYXlvdXRTdWJsYXllcnNPZkxheWVyKFBsYXRm
b3JtQ0FMYXllciopIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5
ZXJSZXNwb25kc1RvTGF5b3V0Q2hhbmdlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25FbmRlZChjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxh
dGZvcm1DQUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGNvbnRlbnRzT3JpZW50YXRpb24oKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5
ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgY2xpcCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpc1Nob3dpbmdE
ZWJ1Z0JvcmRlcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IGZjN2QwZjIzOTQxZWE3OGY5NzZlMzA4MTI0
MDJjOTI0MTZiZGY2M2IuLmJlYTY2ODk3MmM0MzhhNDY4NTFjNjhjY2QzMGZiNDY1M2RmNWZjNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllci5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRPd25lcihQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSB7IG1fb3duZXIgPSBvd25l
cjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgU3RyaW5nJiBr
ZXksIENGVGltZUludGVydmFsIGJlZ2luVGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhbmlt
YXRpb25FbmRlZChjb25zdCBTdHJpbmcmIGtleSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5o
CmluZGV4IDQ2ZmQxODEzZWJmNGViMmYyM2Q0MmFmM2M2MzdiYWJjYzE0OGFkMzAuLjI0ODYxM2Zh
MGU2MDdlM2U0NTAzMDgzMDhlNjg3ZTAyNmFjMDU3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5o
CkBAIC0zOSw3ICszOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxh
eWVyTGF5b3V0U3VibGF5ZXJzT2ZMYXllcihQbGF0Zm9ybUNBTGF5ZXIqKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyUmVzcG9uZHNUb0xheW91dENoYW5nZXMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckFuaW1h
dGlvblN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9y
bUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYgLyphbmltYXRpb25LZXkqLywg
Q0ZUaW1lSW50ZXJ2YWwpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJBbmlt
YXRpb25FbmRlZChjb25zdCBTdHJpbmcmIC8qYW5pbWF0aW9uS2V5Ki8pIHsgfQogICAgIHZpcnR1
YWwgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIHBsYXRm
b3JtQ0FMYXllckNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBHcmFwaGljc0xh
eWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bjsgfQogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgaW5DbGlwKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHBs
YXRmb3JtQ0FMYXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5oCmluZGV4IDkyNTVkZmIxN2NiOWJjMmQyYWJhMDJiMTQ2YjMw
YzUzMmFkYWViZWQuLjQxZjAzNjc2Y2U0M2VmMmUzYTg1Y2MwY2MzNGVmNTdkNzBkZWVkZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9y
bUNBTGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRp
b25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRp
bWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25FbmRlZChjb25zdCBTdHJp
bmcmIGtleSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNB
TGF5ZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5kZXggNGIzZGNi
M2ExZDE0Yzk3NGE2OWVhNWRlMDk0NjIwMDMxMmNmNjk0Mi4uMWJhZWUzNmQyYTA1NTRhMWY4OTJi
NDlmOTg5NTgyNWFiMWZiNTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC0xMTQs
NiArMTE0LDkgQEAgLSAodm9pZClhbmltYXRpb25EaWRTdGFydDooQ0FBbmltYXRpb24gKilhbmlt
YXRpb24KICNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViVGhyZWFkTG9jaygpOwogI2VuZGlmCisg
ICAgaWYgKCFtX293bmVyKQorICAgICAgICByZXR1cm47CisKICAgICBDRlRpbWVJbnRlcnZhbCBz
dGFydFRpbWU7CiAgICAgaWYgKGhhc0V4cGxpY2l0QmVnaW5UaW1lKGFuaW1hdGlvbikpIHsKICAg
ICAgICAgLy8gV2UgZG9uJ3Qga25vdyB3aGF0IHRpbWUgQ0EgdXNlZCB0byBjb21taXQgdGhlIGFu
aW1hdGlvbiwgc28ganVzdCB1c2UgdGhlIGN1cnJlbnQgdGltZQpAQCAtMTIyLDIwICsxMjUsNDEg
QEAgLSAodm9pZClhbmltYXRpb25EaWRTdGFydDooQ0FBbmltYXRpb24gKilhbmltYXRpb24KICAg
ICB9IGVsc2UKICAgICAgICAgc3RhcnRUaW1lID0gbWVkaWFUaW1lVG9DdXJyZW50VGltZShbYW5p
bWF0aW9uIGJlZ2luVGltZV0pOwogCi0gICAgaWYgKG1fb3duZXIpIHsKLSAgICAgICAgQ0FMYXll
ciAqbGF5ZXIgPSBtX293bmVyLT5wbGF0Zm9ybUxheWVyKCk7CisgICAgQ0FMYXllciAqbGF5ZXIg
PSBtX293bmVyLT5wbGF0Zm9ybUxheWVyKCk7CiAKLSAgICAgICAgU3RyaW5nIGFuaW1hdGlvbktl
eTsKLSAgICAgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIFtsYXllciBhbmltYXRpb25LZXlzXSkg
ewotICAgICAgICAgICAgaWYgKFtsYXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmltYXRp
b24pIHsKLSAgICAgICAgICAgICAgICBhbmltYXRpb25LZXkgPSBrZXk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgU3RyaW5nIGFuaW1hdGlvbktleTsKKyAgICBm
b3IgKE5TU3RyaW5nICprZXkgaW4gW2xheWVyIGFuaW1hdGlvbktleXNdKSB7CisgICAgICAgIGlm
IChbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmtleV0gPT0gYW5pbWF0aW9uKSB7CisgICAgICAgICAg
ICBhbmltYXRpb25LZXkgPSBrZXk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAg
IH0KKworICAgIGlmICghYW5pbWF0aW9uS2V5LmlzRW1wdHkoKSkKKyAgICAgICAgbV9vd25lci0+
YW5pbWF0aW9uU3RhcnRlZChhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7Cit9CisKKy0gKHZvaWQp
YW5pbWF0aW9uRGlkU3RvcDooQ0FBbmltYXRpb24gKilhbmltYXRpb24gZmluaXNoZWQ6KEJPT0wp
ZmluaXNoZWQKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgV2ViVGhyZWFkTG9jaygpOworI2Vu
ZGlmCiAKLSAgICAgICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgpKQotICAgICAgICAgICAg
bV9vd25lci0+YW5pbWF0aW9uU3RhcnRlZChhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7CisgICAg
aWYgKCFtX293bmVyIHx8ICFmaW5pc2hlZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIENB
TGF5ZXIgKmxheWVyID0gbV9vd25lci0+cGxhdGZvcm1MYXllcigpOworCisgICAgU3RyaW5nIGFu
aW1hdGlvbktleTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gW2xheWVyIGFuaW1hdGlvbktl
eXNdKSB7CisgICAgICAgIGlmIChbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmtleV0gPT0gYW5pbWF0
aW9uKSB7CisgICAgICAgICAgICBhbmltYXRpb25LZXkgPSBrZXk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogICAgIH0KKworICAgIGlmICghYW5pbWF0aW9uS2V5LmlzRW1wdHkoKSkK
KyAgICAgICAgbV9vd25lci0+YW5pbWF0aW9uRW5kZWQoYW5pbWF0aW9uS2V5KTsKIH0KIAogLSAo
dm9pZClzZXRPd25lcjooUGxhdGZvcm1DQUxheWVyKilvd25lcgpAQCAtMzI1LDEwICszNDksMTYg
QEAgUGxhdGZvcm1DQUxheWVyTWFjOjp+UGxhdGZvcm1DQUxheWVyTWFjKCkKICAgICAgICAgW3N0
YXRpY19jYXN0PFdlYlRpbGVkQmFja2luZ0xheWVyICo+KG1fbGF5ZXIuZ2V0KCkpIGludmFsaWRh
dGVdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uU3RhcnRlZChjb25z
dCBTdHJpbmcmLCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpCit2b2lkIFBsYXRmb3JtQ0FMYXll
ck1hYzo6YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGFuaW10aW9uS2V5LCBDRlRpbWVJ
bnRlcnZhbCBiZWdpblRpbWUpCit7CisgICAgaWYgKG1fb3duZXIpCisgICAgICAgIG1fb3duZXIt
PnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0ZWQoYW5pbXRpb25LZXksIGJlZ2luVGltZSk7
Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjphbmltYXRpb25FbmRlZChjb25zdCBTdHJp
bmcmIGFuaW10aW9uS2V5KQogewogICAgIGlmIChtX293bmVyKQotICAgICAgICBtX293bmVyLT5w
bGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGltZSk7CisgICAgICAgIG1fb3du
ZXItPnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvbkVuZGVkKGFuaW10aW9uS2V5KTsKIH0KIAogdm9p
ZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnNldE5lZWRzRGlzcGxheSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDBmNzAwMTllYWQ4ZWM0
YjVlZGNmYjRkOGViMDIzYWJmMDQxNGJiY2UuLjgyNTEyMGQyNjBiODE0ZmIyOGMzODMwM2VkMDYx
YzVkNmU5ZjlmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCkBAIC0yNDYwLDcgKzI0NjAsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6dHJhbnNpdGlvbkZpbmlzaGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiAgICAgICAgIG1f
Z3JhcGhpY3NMYXllci0+cmVtb3ZlQW5pbWF0aW9uKEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5h
bWVGb3JUcmFuc2l0aW9uKGFuaW1hdGVkUHJvcGVydHkpKTsKIH0KIAotdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRv
dWJsZSB0aW1lKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUFuaW1hdGlvblN0YXJ0
ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYsIGRvdWJsZSB0aW1lKQogewog
ICAgIHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkubm90aWZ5QW5pbWF0aW9uU3RhcnRlZCgmcmVuZGVy
ZXIoKSwgdGltZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmgKaW5kZXggMmYwMWU4NDI1YTI0YmRlYjZkMmVmNWEzZDliZGE4ZTY1N2E0MmU1NC4u
Njk3MjJmOWNmMDNlZWE1MDJhY2U1OTBmYTNjNDI2NTU2ZmUyYzY2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTk0LDcgKzE5NCw3IEBA
IHB1YmxpYzoKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGludGVyZmFjZQogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmcoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29u
c3QgR3JhcGhpY3NMYXllciosIGJvb2wgLyp1c2luZ1RpbGVkQmFja2luZyovKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xh
eWVyKiwgZG91YmxlIHN0YXJ0VGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uS2V5LCBkb3VibGUgc3RhcnRUaW1lKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGY1
YTlmNjZkNGVkYTYxMmEwZjY0M2Q1MmNjNTFmNTE0MDA0ZTJkNzcuLjQ2Y2U3OGZiYzljYTdiNGM2
ZGI3MGM0NGIyM2NhNDBkZmFkOTc0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBA
IC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0JiBy
ZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVIb3N0
OyB9CiAKICAgICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5
ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFydFRpbWUpOworICAgIHZvaWQgYWNj
ZWxlcmF0ZWRBbmltYXRpb25EaWRFbmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBr
ZXkpOwogCiAgICAgdWludDY0X3QgbmV4dExheWVyVHJlZVRyYW5zYWN0aW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX3BlbmRpbmdMYXllclRyZWVUcmFuc2FjdGlvbklEICsgMTsgfQogICAgIHVpbnQ2
NF90IGxhc3RDb21taXR0ZWRMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4g
bV90cmFuc2FjdGlvbklERm9yUGVuZGluZ0NBQ29tbWl0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkubW0KaW5kZXggMWNjMjM2Y2EzM2QwNWZhZTY4NjYxNzQ0NjRkMTU1MTg1ZGQyNTgxMy4u
NTgwM2RjODEwZTZmYjZmMzZmODVhY2JhYTU3YzYxOGY5ZDU5ZTQ1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbQpAQCAtMjQxLDYgKzI0MSwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3Qg
bGF5ZQogICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2lu
Z0FyZWE6OkFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwga2V5LCBzdGFydFRp
bWUpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxh
eWVySUQsIGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5k
KGxheWVySUQsIGtleSksIG1fd2ViUGFnZVByb3h5LT5wYWdlSUQoKSk7Cit9CisKIHN0YXRpYyBj
b25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaApp
bmRleCAxYTQ3ODg5Mjg2OGQ0YWNkOTM0YmU2YmYwN2I1NjlhMDMyODAxZjg2Li44ZWIwY2ZmOTVl
Zjc4YzNiMjdmZmIxZjljMjdkZjdjZmVlNjQ4MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaApAQCAtNjAsNiArNjAsNyBAQCBw
dWJsaWM6CiAgICAgTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZU1hcCYgYW5pbWF0aW9uRGVsZWdhdGVz
KCkgeyByZXR1cm4gbV9hbmltYXRpb25EZWxlZ2F0ZXM7IH0KIAogICAgIHZvaWQgYW5pbWF0aW9u
RGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBDQUFuaW1h
dGlvbiAqLCBkb3VibGUgc3RhcnRUaW1lKTsKKyAgICB2b2lkIGFuaW1hdGlvbkRpZEVuZChXZWJD
b3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0aW9uICopOwogCiAg
ICAgdm9pZCBjbGVhckxheWVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggMjE0MDVhZDMzOGEyZWQ4MjhkYjkz
ODk4OGU5NzZkYjVlNzU4ZGQwNS4uZDQ3NTdlMjhhNmM1MmNkNjQwM2IwOWUyZDk0MmE0NTIxZmZj
YzY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5
ZXJUcmVlSG9zdC5tbQpAQCAtMTUyLDYgKzE1MiwyNSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUhv
c3Q6OmFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5
ZQogICAgICAgICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5
ZXJJRCwgYW5pbWF0aW9uS2V5LCBzdGFydFRpbWUpOwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJl
ZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRpb24gKmFuaW1hdGlvbikKK3sKKyAgICBDQUxheWVyICps
YXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOworICAgIGlmICghbGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyBhbmltYXRpb25LZXk7CisgICAgZm9yIChOU1N0cmlu
ZyAqa2V5IGluIFtsYXllciBhbmltYXRpb25LZXlzXSkgeworICAgICAgICBpZiAoW2xheWVyIGFu
aW1hdGlvbkZvcktleTprZXldID09IGFuaW1hdGlvbikgeworICAgICAgICAgICAgYW5pbWF0aW9u
S2V5ID0ga2V5OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoIWFuaW1hdGlvbktleS5pc0VtcHR5KCkpCisgICAgICAgIG1fZHJhd2luZ0FyZWEuYWNjZWxl
cmF0ZWRBbmltYXRpb25EaWRFbmQobGF5ZXJJRCwgYW5pbWF0aW9uS2V5KTsKKworfQorCiB2b2lk
IFJlbW90ZUxheWVyVHJlZUhvc3Q6OmNsZWFyTGF5ZXJzKCkKIHsKICAgICBmb3IgKGF1dG8mIGlk
TGF5ZXIgOiBtX2xheWVycykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaAppbmRleCAxYTYyNzkzYTZiODhkOWZhYTc5MTE4MTUxNzI2NDMwZDQ3
NWFjNWVlLi43OTgyMTMzNDg2NDA2OTY2YjExYWM4MDU2MDI1YmFkZjQyNDVkNDIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtODgs
NiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBleHBvc2VkUmVjdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRB
bmltYXRpb25EaWRTdGFydCh1aW50NjRfdCAvKmxheWVySUQqLywgY29uc3QgU3RyaW5nJiAvKmtl
eSovLCBkb3VibGUgLypzdGFydFRpbWUqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJh
dGVkQW5pbWF0aW9uRGlkRW5kKHVpbnQ2NF90IC8qbGF5ZXJJRCovLCBjb25zdCBTdHJpbmcmIC8q
a2V5Ki8pIHsgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRFeHBvc2VkQ29udGVudFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
Lm1lc3NhZ2VzLmluCmluZGV4IDhlZTYwMWUxN2FmZjI4YmZjOWQ3ZThkNzkxZTFhOWI0NWI5NjZl
NzAuLjFlNDNjMzYyZmI4NjM4ZmE1ZjIyMWRmZmE0NGFhODYzYmQ4OTczMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVz
c2FnZXMuaW4KQEAgLTM1LDYgKzM1LDcgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgTGVnYWN5
UmVjZWl2ZXIgewogICAgIENvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3Jl
OjpGbG9hdFBvaW50IG9yaWdpbikKICAgICAKICAgICBBY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0
YXJ0KHVpbnQ2NF90IGxheWVySUQsIFN0cmluZyBrZXksIGRvdWJsZSBzdGFydFRpbWUpCisgICAg
QWNjZWxlcmF0ZWRBbmltYXRpb25EaWRFbmQodWludDY0X3QgbGF5ZXJJRCwgU3RyaW5nIGtleSkK
ICAgICAKICAgICBBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQodWludDY0X3QgY2FsbGJhY2tJRCkK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IGNlM2EzZjA3
ZGJiYzcyOGU2YTM3ZjU2YWJkOThiMDdmYTAyNjBkNzkuLjE2YjQxYjBiNGVlMWQ3MjQzM2JiM2Jl
N2U3YzFkOTkwOGNhOTdkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0K
QEAgLTgxLDYgKzgxLDEyIEBAIC0gKHZvaWQpYW5pbWF0aW9uRGlkU3RhcnQ6KENBQW5pbWF0aW9u
ICopYW5pbWF0aW9uCiAKICAgICBfbGF5ZXJUcmVlSG9zdC0+YW5pbWF0aW9uRGlkU3RhcnQoX2xh
eWVySUQsIGFuaW1hdGlvbiwgc3RhcnRUaW1lKTsKIH0KKworLSAodm9pZClhbmltYXRpb25EaWRT
dG9wOihDQUFuaW1hdGlvbiAqKWFuaW1hdGlvbiBmaW5pc2hlZDooQk9PTClmaW5pc2hlZAorewor
ICAgIF9sYXllclRyZWVIb3N0LT5hbmltYXRpb25EaWRFbmQoX2xheWVySUQsIGFuaW1hdGlvbik7
Cit9CisKIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5jcHAKaW5kZXggZTI5Y2Q4YjU2M2YzYzA2YWJjNTMyMTIzYzMzNmM2OTEzNDM1NTUzZC4uNTgy
N2E4ODc2YTkxZDQ5ZjcyMGQ3NTE2MjdkMDBkMTRlZTNjMzc0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcApAQCAtMzY5LDcgKzM2OSwxMyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJl
bW90ZTo6YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2YWwg
YgogICAgICAgICB0b1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUoaXQtPnZhbHVlLmdldCgpKS0+
ZGlkU3RhcnQoYmVnaW5UaW1lKTsKICAgICAKICAgICBpZiAobV9vd25lcikKLSAgICAgICAgbV9v
d25lci0+cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChiZWdpblRpbWUpOworICAgICAg
ICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGtleSwgYmVnaW5UaW1l
KTsKK30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvbkVuZGVkKGNvbnN0
IFN0cmluZyYga2V5KQoreworICAgIGlmIChtX293bmVyKQorICAgICAgICBtX293bmVyLT5wbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25FbmRlZChrZXkpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6c2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmgKaW5kZXggZjEwMThmNzNiYjlmNWNhZThmZDMxZDgyNjA5MjUyYWE3YzAyNmU4MC4u
OTk0NWRmYTg0YmY5ZjcxZGVmNDc4ZGQxMWI3YWVkMWZmNzMxYTExYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9u
Rm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYW5p
bWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGtleSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1l
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uRW5kZWQoY29uc3QgU3RyaW5n
JiBrZXkpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2soV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5k
ZXggMmY4ZmI3NzZhNzlmNjMxMGVmODNiMzQ2ZDhmZThkNGU1OWRmNmJjYy4uY2U2ZTRjYWVlZDU2
ZDc4MDY4YWVlZjY4NmVmZTNkMDc5NmUwMDc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0
LmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogCiAgICAgLy8gRnJvbSB0aGUgVUkgcHJvY2Vz
cwogICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHN0YXJ0VGltZSk7CisgICAg
dm9pZCBhbmltYXRpb25EaWRFbmQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklELCBjb25zdCBTdHJpbmcmIGtleSk7CiAKICAgICB2b2lkIHdpbGxTdGFydEFuaW1hdGlvbk9u
TGF5ZXIoUGxhdGZvcm1DQUxheWVyUmVtb3RlJik7CiAKQEAgLTc4LDcgKzc5LDcgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBt
X2Rlc3Ryb3llZExheWVyczsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklELCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqPiBtX2xpdmVMYXllcnM7Ci0g
ICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFBsYXRm
b3JtQ0FMYXllclJlbW90ZSo+IG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydDsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUGxhdGZvcm1D
QUxheWVyUmVtb3RlKj4gbV9sYXllcnNXaXRoQW5pbWF0aW9uczsKIAogICAgIFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlQ29sbGVjdGlvbiBtX2JhY2tpbmdTdG9yZUNvbGxlY3Rpb247CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggZWJkM2ZmMjRmMGI3ZjljMWM0NWQzNWRk
OGEwMWVhMTQ4ZmVjMTJkMi4uNDBkODIxNGY4Y2QxNGI4ZDYwOTU1ZmRiYjFlZDc2Mzc5YTQ4MzA4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAtNzgsNyArNzgsNyBAQCB2b2lk
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJveWVkKFBsYXRmb3JtQ0FM
YXllclJlbW90ZSYgbGF5ZXIpCiAgICAgQVNTRVJUKCFtX2Rlc3Ryb3llZExheWVycy5jb250YWlu
cyhsYXllcklEKSk7CiAgICAgbV9kZXN0cm95ZWRMYXllcnMuYXBwZW5kKGxheWVySUQpOwogICAg
IAotICAgIG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5yZW1vdmUobGF5ZXJJRCk7Cisg
ICAgbV9sYXllcnNXaXRoQW5pbWF0aW9ucy5yZW1vdmUobGF5ZXJJRCk7CiB9CiAKIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dDo6YmFja2luZ1N0b3JlV2FzQ3JlYXRlZChSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQpAQCAtMTIyLDE0ICsxMjIsMjEgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVDb250ZXh0OjpsYXllclByb3BlcnR5Q2hhbmdlZFdoaWxlQnVpbGRpbmdUcmFu
c2FjdGlvbihQbGF0Zm8KIAogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojp3aWxsU3RhcnRB
bmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90ZSYgbGF5ZXIpCiB7Ci0gICAgbV9s
YXllcnNBd2FpdGluZ0FuaW1hdGlvblN0YXJ0LmFkZChsYXllci5sYXllcklEKCksICZsYXllcik7
CisgICAgbV9sYXllcnNXaXRoQW5pbWF0aW9ucy5hZGQobGF5ZXIubGF5ZXJJRCgpLCAmbGF5ZXIp
OwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmFuaW1hdGlvbkRpZFN0YXJ0KFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklELCBjb25zdCBTdHJp
bmcmIGtleSwgZG91YmxlIHN0YXJ0VGltZSkKIHsKLSAgICBhdXRvIGl0ID0gbV9sYXllcnNBd2Fp
dGluZ0FuaW1hdGlvblN0YXJ0LmZpbmQobGF5ZXJJRCk7Ci0gICAgaWYgKGl0ICE9IG1fbGF5ZXJz
QXdhaXRpbmdBbmltYXRpb25TdGFydC5lbmQoKSkKKyAgICBhdXRvIGl0ID0gbV9sYXllcnNXaXRo
QW5pbWF0aW9ucy5maW5kKGxheWVySUQpOworICAgIGlmIChpdCAhPSBtX2xheWVyc1dpdGhBbmlt
YXRpb25zLmVuZCgpKQogICAgICAgICBpdC0+dmFsdWUtPmFuaW1hdGlvblN0YXJ0ZWQoa2V5LCBz
dGFydFRpbWUpOwogfQogCit2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmFuaW1hdGlvbkRp
ZEVuZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgY29u
c3QgU3RyaW5nJiBrZXkpCit7CisgICAgYXV0byBpdCA9IG1fbGF5ZXJzV2l0aEFuaW1hdGlvbnMu
ZmluZChsYXllcklEKTsKKyAgICBpZiAoaXQgIT0gbV9sYXllcnNXaXRoQW5pbWF0aW9ucy5lbmQo
KSkKKyAgICAgICAgaXQtPnZhbHVlLT5hbmltYXRpb25FbmRlZChrZXkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCAz
MWM3YTA3ODZiNTVlNjE4MjM3ZDEyODQ5ZGM0MzZlMzE0ZmM5YmU0Li4xY2I1MTAwYWE1NWRmZTYw
NGY1NGZlNDEyZGEwMWY0ODZhZjdmMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oCkBAIC04OCw2ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Njcm9sbGVk
RXhwb3NlZFJlY3Q7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRp
ZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgc3RhcnRU
aW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRF
bmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwogCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkQ29udGVudFJlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbQppbmRleCBiYTI5YWVjMTE4MDA5ZmNjOWRlNmM5ZTE0OGYxZTAyMDhiNjA4
YzY5Li4zN2M4OTQ3YjRhMjVjN2I4MjgwZjcxNjJiNzcwNDNkOTZiNWRlZTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTE5Myw2ICsxOTMsMTEgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1
aW50NjRfdCBsYXllcklELAogICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+YW5pbWF0aW9u
RGlkU3RhcnQobGF5ZXJJRCwga2V5LCBzdGFydFRpbWUpOwogfQogCit2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXll
cklELCBjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQt
PmFuaW1hdGlvbkRpZEVuZChsYXllcklELCBrZXkpOworfQorCiB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRSZWN0
KQogewogICAgIG1fZXhwb3NlZFJlY3QgPSBleHBvc2VkUmVjdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236837</attachid>
            <date>2014-08-19 17:29:51 -0700</date>
            <delta_ts>2014-08-19 17:44:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136084-20140819172942.patch</filename>
            <type>text/plain</type>
            <size>30451</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY2YzBjZThlYWQyYmRj
NjFhOTM4ZDk3M2EzNDNlNjcxZDQyMzBhMS4uODgzMGI0MjJkODljNTA2M2EyZDQ2MzE0MGVjNDMw
ZDZhNzQzYWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA4LTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbmltYXRp
b25EaWRFbmQgY2FsbGJhY2tzIG9uIEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjA4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvb2sgdXAgR3JhcGhpY3NMYXllckNsaWVudDo6
bm90aWZ5QW5pbWF0aW9uRW5kZWQoKSBzbyB0aGF0IGNvZGUgdXNpbmcgR3JhcGhpY3NMYXllcnMg
ZGlyZWN0bHkKKyAgICAgICAgY2FuIGFkZCBhbmltYXRpb25zLCBhbmQga25vdyB3aGVuIHRoZXkg
ZmluaXNoLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNsaWVudDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2xpZW50Ojpub3RpZnlBbmltYXRpb25FbmRlZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnBsYXRmb3JtQ0FMYXllckFuaW1hdGlv
bkVuZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudDo6cGxhdGZvcm1DQUxheWVyQW5p
bWF0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQ6
OnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKC1bV2ViQW5pbWF0
aW9uRGVsZWdhdGUgYW5pbWF0aW9uRGlkU3RhcnQ6XSk6CisgICAgICAgICgtW1dlYkFuaW1hdGlv
bkRlbGVnYXRlIGFuaW1hdGlvbkRpZFN0b3A6ZmluaXNoZWQ6XSk6CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXJNYWM6OmFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
TWFjOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Om5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aDoKKwogMjAxNC0wOC0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YWUzMWVi
NmRlNGU1ZTQxYTFlZWY2NmI1MWZiMGM3MzVhNjRhYjkwLi5lMDBlMDcyYTBlMTUyODllMzdiMDhh
ZjVmOWMyYmVlZDA2ZjI4MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTQtMDgt
MTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IGFuaW1hdGlvbkRpZEVuZCBjYWxsYmFja3Mgb24gR3JhcGhpY3NMYXllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9vayB1cCBHcmFwaGljc0xheWVy
Q2xpZW50Ojpub3RpZnlBbmltYXRpb25FbmRlZCgpIHNvIHRoYXQgY29kZSB1c2luZyBHcmFwaGlj
c0xheWVycyBkaXJlY3RseQorICAgICAgICBjYW4gYWRkIGFuaW1hdGlvbnMsIGFuZCBrbm93IHdo
ZW4gdGhleSBmaW5pc2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjphY2NlbGVy
YXRlZEFuaW1hdGlvbkRpZEVuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbToKKyAgICAgICAgKC1bV0tBbmltYXRpb25EZWxlZ2F0
ZSBhbmltYXRpb25EaWRTdG9wOmZpbmlzaGVkOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxh
dGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjphbmltYXRpb25FbmRlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmxheWVyV2lsbEJlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6d2lsbFN0YXJ0QW5pbWF0
aW9uT25MYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmFu
aW1hdGlvbkRpZFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6YW5pbWF0aW9uRGlkRW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKToKKwog
MjAxNC0wOC0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBFTkFCTEUoU1VCUElYRUxfTEFZT1VUKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMDNi
MjBiZWFlYThkN2EyYTQ2NzNkOTY0NjVlMjMzMGZlOGNjMjIzMS4uOTgwYTAyNjgxNGQ3ZjI3NmYw
NjFiNTc1MTIzNGMzZjVhNWZkMDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU5Nyw4ICs1
OTcsOSBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNOZWVkc0Rp
c3BsYXlFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldENvbnRlbnRzVG9Tb2xp
ZENvbG9yRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldERl
YnVnQmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xh
eWVyQ0EyOHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1UGxhdGZvcm1DQUxheWVy
RVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCitfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTI5cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWRFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMwZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkRXYKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5
ZXJBbmltYXRpb25TdGFydGVkRWQKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMzFwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRVJLTjNXVEY2U3RyaW5nRWQKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMzdmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
RXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVk
c1RvUmV2YWxpZGF0ZVRpbGVzRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldE5h
bWVFUktOM1dURjZTdHJpbmdFCkBAIC0yMDYyLDYgKzIwNjMsOCBAQCBfX1pUVk43V2ViQ29yZTI1
RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbkUKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsOFNldHRpbmdzRQogX19aVFZON1dlYkNvcmUzMUJhc2ljQ29sb3JNYXRy
aXhGaWx0ZXJPcGVyYXRpb25FCiBfX1pUVk43V2ViQ29yZTM3QmFzaWNDb21wb25lbnRUcmFuc2Zl
ckZpbHRlck9wZXJhdGlvbkUKK19fWlRobjUwNF9ON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTI5
cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWRFUktOM1dURjZTdHJpbmdFCitfX1pUaG41MDRf
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EzMXBsYXRmb3JtQ0FMYXllckFuaW1hdGlvblN0YXJ0
ZWRFUktOM1dURjZTdHJpbmdFZAogX19aVGhuPz8/X043V2ViQ29yZTE1R3JhcGhpY3NMYXllckNB
MjhwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzRVBOU18xNVBsYXRmb3JtQ0FMYXllckVSTlNf
MTVHcmFwaGljc0NvbnRleHRFUktOU185RmxvYXRSZWN0RQogX19aVGhuPz8/X043V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRWQKIF9fWlRo
bj8/P19ON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTQwcGxhdGZvcm1DQUxheWVyU2V0TmVlZHNU
b1JldmFsaWRhdGVUaWxlc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggMTc2YjEwYTdkOTQ5YTQyZDQ0MDVl
MmMyNGUxNGFkZTUxMTFkOGQwYi4uOGE0ODMzMzFhOTg4NTI0ODA3OGFlMmU1NmNiNjE2NjgyMWZm
ZTc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtNjIsNyArNjIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9v
bCAvKnVzaW5nVGlsZWRCYWNraW5nKi8pIHsgfQogICAgIAogICAgIC8vIENhbGxiYWNrIGZvciB3
aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBzdGFydGVkLgotICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUg
Lyp0aW1lKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIC8qYW5pbWF0aW9uS2V5Ki8sIGRvdWJs
ZSAvKnRpbWUqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvbkVuZGVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIC8qYW5pbWF0aW9uS2V5Ki8pIHsgfQog
CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgYSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VkIHRoYXQg
cmVxdWlyZXMgYSBzdWJzZXF1ZW50IGNhbGwgdG8gZmx1c2hDb21wb3NpdGluZ1N0YXRlKCkKICAg
ICAvLyB0byBhcHBlYXIgb24gdGhlIHNjcmVlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5NmI2ZWQy
ZjZlNjJhMmVlOTNlYjllZDkyMGRlZjA0ZTVjYjA2NGUuLjJjODg4N2E2OTAwYjYwZDNjZTVjODcx
ZGExMTQ1MTU1NjlhZjY5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtODQzLDkgKzg0MywxNCBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uTmFtZSkKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQW5pbWF0aW9uQ2hhbmdlZCk7
CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFy
dGVkKENGVGltZUludGVydmFsIHN0YXJ0VGltZSkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBD
RlRpbWVJbnRlcnZhbCBzdGFydFRpbWUpCiB7Ci0gICAgY2xpZW50KCkubm90aWZ5QW5pbWF0aW9u
U3RhcnRlZCh0aGlzLCBzdGFydFRpbWUpOworICAgIGNsaWVudCgpLm5vdGlmeUFuaW1hdGlvblN0
YXJ0ZWQodGhpcywgYW5pbWF0aW9uS2V5LCBzdGFydFRpbWUpOworfQorCit2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWQoY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25LZXkpCit7CisgICAgY2xpZW50KCkubm90aWZ5QW5pbWF0aW9uRW5kZWQodGhpcywgYW5p
bWF0aW9uS2V5KTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9Tb2xp
ZENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggZGIzZDJkNzI5MDE2NWEy
YTljN2IwZmU0NTI0ZjlkNGYzMWFjYmU1MS4uYzgzOTI3YmY1YzkyYzgxNGI3MjIxZjA4ODc1YmMz
NWYwZjRiNzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTE3OSw3ICsxNzksOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJMYXlvdXRTdWJsYXllcnNPZkxheWVyKFBsYXRm
b3JtQ0FMYXllciopIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5
ZXJSZXNwb25kc1RvTGF5b3V0Q2hhbmdlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBD
RlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUNBTGF5ZXJBbmltYXRpb25FbmRlZChjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxh
dGZvcm1DQUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGNvbnRlbnRzT3JpZW50YXRpb24oKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5
ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYgY2xpcCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpc1Nob3dpbmdE
ZWJ1Z0JvcmRlcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IGZjN2QwZjIzOTQxZWE3OGY5NzZlMzA4MTI0
MDJjOTI0MTZiZGY2M2IuLmJlYTY2ODk3MmM0MzhhNDY4NTFjNjhjY2QzMGZiNDY1M2RmNWZjNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FMYXllci5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRPd25lcihQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSB7IG1fb3duZXIgPSBvd25l
cjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgU3RyaW5nJiBr
ZXksIENGVGltZUludGVydmFsIGJlZ2luVGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhbmlt
YXRpb25FbmRlZChjb25zdCBTdHJpbmcmIGtleSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5o
CmluZGV4IDQ2ZmQxODEzZWJmNGViMmYyM2Q0MmFmM2M2MzdiYWJjYzE0OGFkMzAuLjI0ODYxM2Zh
MGU2MDdlM2U0NTAzMDgzMDhlNjg3ZTAyNmFjMDU3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5o
CkBAIC0zOSw3ICszOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxh
eWVyTGF5b3V0U3VibGF5ZXJzT2ZMYXllcihQbGF0Zm9ybUNBTGF5ZXIqKSB7IH0KICAgICB2aXJ0
dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyUmVzcG9uZHNUb0xheW91dENoYW5nZXMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckFuaW1h
dGlvblN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9y
bUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYgLyphbmltYXRpb25LZXkqLywg
Q0ZUaW1lSW50ZXJ2YWwpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJBbmlt
YXRpb25FbmRlZChjb25zdCBTdHJpbmcmIC8qYW5pbWF0aW9uS2V5Ki8pIHsgfQogICAgIHZpcnR1
YWwgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIHBsYXRm
b3JtQ0FMYXllckNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBHcmFwaGljc0xh
eWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzVG9wRG93bjsgfQogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgaW5DbGlwKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHBs
YXRmb3JtQ0FMYXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5oCmluZGV4IDkyNTVkZmIxN2NiOWJjMmQyYWJhMDJiMTQ2YjMw
YzUzMmFkYWViZWQuLjQxZjAzNjc2Y2U0M2VmMmUzYTg1Y2MwY2MzNGVmNTdkNzBkZWVkZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9y
bUNBTGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRp
b25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRpb25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRp
bWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25FbmRlZChjb25zdCBTdHJp
bmcmIGtleSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNB
TGF5ZXIqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5kZXggNGIzZGNi
M2ExZDE0Yzk3NGE2OWVhNWRlMDk0NjIwMDMxMmNmNjk0Mi4uYzAxNzI2OTMwZTdmM2ExNDVjMmZj
OGVmM2MyYTE1NjJlNjlkYjY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC0xMTQs
NiArMTE0LDkgQEAgLSAodm9pZClhbmltYXRpb25EaWRTdGFydDooQ0FBbmltYXRpb24gKilhbmlt
YXRpb24KICNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViVGhyZWFkTG9jaygpOwogI2VuZGlmCisg
ICAgaWYgKCFtX293bmVyKQorICAgICAgICByZXR1cm47CisKICAgICBDRlRpbWVJbnRlcnZhbCBz
dGFydFRpbWU7CiAgICAgaWYgKGhhc0V4cGxpY2l0QmVnaW5UaW1lKGFuaW1hdGlvbikpIHsKICAg
ICAgICAgLy8gV2UgZG9uJ3Qga25vdyB3aGF0IHRpbWUgQ0EgdXNlZCB0byBjb21taXQgdGhlIGFu
aW1hdGlvbiwgc28ganVzdCB1c2UgdGhlIGN1cnJlbnQgdGltZQpAQCAtMTIyLDIwICsxMjUsNDEg
QEAgLSAodm9pZClhbmltYXRpb25EaWRTdGFydDooQ0FBbmltYXRpb24gKilhbmltYXRpb24KICAg
ICB9IGVsc2UKICAgICAgICAgc3RhcnRUaW1lID0gbWVkaWFUaW1lVG9DdXJyZW50VGltZShbYW5p
bWF0aW9uIGJlZ2luVGltZV0pOwogCi0gICAgaWYgKG1fb3duZXIpIHsKLSAgICAgICAgQ0FMYXll
ciAqbGF5ZXIgPSBtX293bmVyLT5wbGF0Zm9ybUxheWVyKCk7CisgICAgQ0FMYXllciAqbGF5ZXIg
PSBtX293bmVyLT5wbGF0Zm9ybUxheWVyKCk7CiAKLSAgICAgICAgU3RyaW5nIGFuaW1hdGlvbktl
eTsKLSAgICAgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIFtsYXllciBhbmltYXRpb25LZXlzXSkg
ewotICAgICAgICAgICAgaWYgKFtsYXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmltYXRp
b24pIHsKLSAgICAgICAgICAgICAgICBhbmltYXRpb25LZXkgPSBrZXk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgU3RyaW5nIGFuaW1hdGlvbktleTsKKyAgICBm
b3IgKE5TU3RyaW5nICprZXkgaW4gW2xheWVyIGFuaW1hdGlvbktleXNdKSB7CisgICAgICAgIGlm
IChbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmtleV0gPT0gYW5pbWF0aW9uKSB7CisgICAgICAgICAg
ICBhbmltYXRpb25LZXkgPSBrZXk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAg
IH0KKworICAgIGlmICghYW5pbWF0aW9uS2V5LmlzRW1wdHkoKSkKKyAgICAgICAgbV9vd25lci0+
YW5pbWF0aW9uU3RhcnRlZChhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7Cit9CisKKy0gKHZvaWQp
YW5pbWF0aW9uRGlkU3RvcDooQ0FBbmltYXRpb24gKilhbmltYXRpb24gZmluaXNoZWQ6KEJPT0wp
ZmluaXNoZWQKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgV2ViVGhyZWFkTG9jaygpOworI2Vu
ZGlmCiAKLSAgICAgICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgpKQotICAgICAgICAgICAg
bV9vd25lci0+YW5pbWF0aW9uU3RhcnRlZChhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7CisgICAg
aWYgKCFtX293bmVyIHx8ICFmaW5pc2hlZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIENB
TGF5ZXIgKmxheWVyID0gbV9vd25lci0+cGxhdGZvcm1MYXllcigpOworCisgICAgU3RyaW5nIGFu
aW1hdGlvbktleTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gW2xheWVyIGFuaW1hdGlvbktl
eXNdKSB7CisgICAgICAgIGlmIChbbGF5ZXIgYW5pbWF0aW9uRm9yS2V5OmtleV0gPT0gYW5pbWF0
aW9uKSB7CisgICAgICAgICAgICBhbmltYXRpb25LZXkgPSBrZXk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogICAgIH0KKworICAgIGlmICghYW5pbWF0aW9uS2V5LmlzRW1wdHkoKSkK
KyAgICAgICAgbV9vd25lci0+YW5pbWF0aW9uRW5kZWQoYW5pbWF0aW9uS2V5KTsKIH0KIAogLSAo
dm9pZClzZXRPd25lcjooUGxhdGZvcm1DQUxheWVyKilvd25lcgpAQCAtMzI1LDEwICszNDksMTYg
QEAgUGxhdGZvcm1DQUxheWVyTWFjOjp+UGxhdGZvcm1DQUxheWVyTWFjKCkKICAgICAgICAgW3N0
YXRpY19jYXN0PFdlYlRpbGVkQmFja2luZ0xheWVyICo+KG1fbGF5ZXIuZ2V0KCkpIGludmFsaWRh
dGVdOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6YW5pbWF0aW9uU3RhcnRlZChjb25z
dCBTdHJpbmcmLCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpCit2b2lkIFBsYXRmb3JtQ0FMYXll
ck1hYzo6YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSwgQ0ZUaW1l
SW50ZXJ2YWwgYmVnaW5UaW1lKQoreworICAgIGlmIChtX293bmVyKQorICAgICAgICBtX293bmVy
LT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGFuaW1hdGlvbktleSwgYmVnaW5UaW1l
KTsKK30KKwordm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmFuaW1hdGlvbkVuZGVkKGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uS2V5KQogewogICAgIGlmIChtX293bmVyKQotICAgICAgICBtX293bmVy
LT5wbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKGJlZ2luVGltZSk7CisgICAgICAgIG1f
b3duZXItPnBsYXRmb3JtQ0FMYXllckFuaW1hdGlvbkVuZGVkKGFuaW1hdGlvbktleSk7CiB9CiAK
IHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjpzZXROZWVkc0Rpc3BsYXkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1D
QUxheWVyV2luLmNwcAppbmRleCA5ZjAwMDBkNzBjYWFiZTA0Yzk0N2Q5ZjIyMTQ5ZGEyYzI5NDEx
NmQxLi4xNzA4N2U2NTY1Y2QzZGQ4YjBmYWQ4MTc5ZTNlZDk1YjFjN2Q3YmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVy
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxh
dGZvcm1DQUxheWVyV2luLmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIFBsYXRmb3JtQ0FMYXllciog
UGxhdGZvcm1DQUxheWVyV2luOjpyb290TGF5ZXIoKSBjb25zdAogICAgIHJldHVybiBob3N0ID8g
aG9zdC0+cm9vdExheWVyKCkgOiAwOwogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6YW5p
bWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmLCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpCit2
b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6YW5pbWF0aW9uU3RhcnRlZChjb25zdCBTdHJpbmcmIGFu
aW1hdGlvbktleSwgQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKQogewogICAgIC8vIFVwZGF0ZSBz
dGFydCB0aW1lIGZvciBhbnkgYW5pbWF0aW9uIG5vdCB5ZXQgc3RhcnRlZAogICAgIENGVGltZUlu
dGVydmFsIGNhY2ZCZWdpblRpbWUgPSBjdXJyZW50VGltZVRvTWVkaWFUaW1lKGJlZ2luVGltZSk7
CkBAIC0yMDUsNyArMjA1LDEzIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luOjphbmltYXRpb25T
dGFydGVkKGNvbnN0IFN0cmluZyYsIENGVGltZUludGVydmFsIGJlZ2luVGltCiAgICAgICAgIGl0
LT52YWx1ZS0+c2V0QWN0dWFsU3RhcnRUaW1lSWZOZWVkZWQoY2FjZkJlZ2luVGltZSk7CiAKICAg
ICBpZiAobV9vd25lcikKLSAgICAgICAgbV9vd25lci0+cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9u
U3RhcnRlZChiZWdpblRpbWUpOworICAgICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmlt
YXRpb25TdGFydGVkKGFuaW1hdGlvbktleSwgYmVnaW5UaW1lKTsKK30KKwordm9pZCBQbGF0Zm9y
bUNBTGF5ZXJXaW46OmFuaW1hdGlvbkVuZGVkKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5KQor
eworICAgIGlmIChtX293bmVyKQorICAgICAgICBtX293bmVyLT5wbGF0Zm9ybUNBTGF5ZXJBbmlt
YXRpb25FbmRlZChhbmltYXRpb25LZXkpOwogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbjo6
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FM
YXllcldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FMYXllcldpbi5oCmluZGV4IGZkZjVlNTlhMjI0Mzg5YmVkOTY5YjgzZDM5MDg0NmE5OTA0
YmM1Y2UuLjQzOGIyNjYyNTIwNDgzNTZlM2QxYWQ2NmI4YTA0ZWY0OTNmMmNiM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5
ZXJXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxh
dGZvcm1DQUxheWVyV2luLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBhbmltYXRpb25Gb3JL
ZXkoY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRp
b25TdGFydGVkKGNvbnN0IFN0cmluZyYga2V5LCBDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25FbmRlZChjb25zdCBTdHJpbmcmIGtl
eSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFzayhQbGF0Zm9ybUNBTGF5ZXIq
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAppbmRleCAwZjcwMDE5ZWFkOGVjNGI1ZWRjZmI0ZDhlYjAyM2FiZjA0MTRiYmNl
Li44MjUxMjBkMjYwYjgxNGZiMjhjMzgzMDNlZDA2MWM1ZDZlOWY5ZmJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjQ2MCw3ICsy
NDYwLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnRyYW5zaXRpb25GaW5pc2hlZChDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5KQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnJlbW92ZUFuaW1h
dGlvbihHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihhbmltYXRlZFBy
b3BlcnR5KSk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlBbmltYXRpb25T
dGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkKK3ZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBj
b25zdCBTdHJpbmcmLCBkb3VibGUgdGltZSkKIHsKICAgICByZW5kZXJlcigpLmFuaW1hdGlvbigp
Lm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoJnJlbmRlcmVyKCksIHRpbWUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDJmMDFlODQyNWEy
NGJkZWI2ZDJlZjVhM2Q5YmRhOGU2NTdhNDJlNTQuLjY5NzIyZjljZjAzZWVhNTAyYWNlNTkwZmEz
YzQyNjU1NmZlMmM2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmgKQEAgLTE5NCw3ICsxOTQsNyBAQCBwdWJsaWM6CiAgICAgLy8gR3JhcGhpY3NM
YXllckNsaWVudCBpbnRlcmZhY2UKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNr
aW5nKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29sIC8q
dXNpbmdUaWxlZEJhY2tpbmcqLykgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSBzdGFydFRpbWUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSwgZG91YmxlIHN0YXJ0VGlt
ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJl
Zm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBmNWE5ZjY2ZDRlZGE2MTJhMGY2NDNkNTJjYzUx
ZjUxNDAwNGUyZDc3Li40NmNlNzhmYmM5Y2E3YjRjNmRiNzBjNDRiMjNjYTQwZGZhZDk3NDA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYgcmVtb3RlTGF5ZXJUcmVlSG9zdCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsgfQogCiAgICAgdm9pZCBhY2NlbGVyYXRl
ZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBk
b3VibGUgc3RhcnRUaW1lKTsKKyAgICB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVp
bnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5KTsKIAogICAgIHVpbnQ2NF90IG5leHRM
YXllclRyZWVUcmFuc2FjdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nTGF5ZXJUcmVl
VHJhbnNhY3Rpb25JRCArIDE7IH0KICAgICB1aW50NjRfdCBsYXN0Q29tbWl0dGVkTGF5ZXJUcmVl
VHJhbnNhY3Rpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JREZvclBlbmRpbmdD
QUNvbW1pdDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDFjYzIzNmNhMzNk
MDVmYWU2ODY2MTc0NDY0ZDE1NTE4NWRkMjU4MTMuLjU4MDNkYzgxMGU2ZmI2ZjM2Zjg1YWNiYWE1
N2M2MThmOWQ1OWU0NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTI0MSw2
ICsyNDEsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVy
YXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWUKICAgICBtX3dlYlBhZ2VQcm94eS0+
cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBY2NlbGVyYXRlZEFuaW1hdGlv
bkRpZFN0YXJ0KGxheWVySUQsIGtleSwgc3RhcnRUaW1lKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJ
RCgpKTsKIH0KIAordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVy
YXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSkK
K3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdB
cmVhOjpBY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZChsYXllcklELCBrZXkpLCBtX3dlYlBhZ2VQ
cm94eS0+cGFnZUlEKCkpOworfQorCiBzdGF0aWMgY29uc3QgZmxvYXQgaW5kaWNhdG9ySW5zZXQg
PSAxMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXggMWE0Nzg4OTI4NjhkNGFjZDkzNGJl
NmJmMDdiNTY5YTAzMjgwMWY4Ni4uOGViMGNmZjk1ZWY3OGMzYjI3ZmZiMWY5YzI3ZGY3Y2ZlZTY0
ODBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXll
clRyZWVIb3N0LmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIExheWVyQW5pbWF0aW9u
RGVsZWdhdGVNYXAmIGFuaW1hdGlvbkRlbGVnYXRlcygpIHsgcmV0dXJuIG1fYW5pbWF0aW9uRGVs
ZWdhdGVzOyB9CiAKICAgICB2b2lkIGFuaW1hdGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgQ0FBbmltYXRpb24gKiwgZG91YmxlIHN0YXJ0VGltZSk7
CisgICAgdm9pZCBhbmltYXRpb25EaWRFbmQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklELCBDQUFuaW1hdGlvbiAqKTsKIAogICAgIHZvaWQgY2xlYXJMYXllcnMoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0
Lm1tCmluZGV4IDIxNDA1YWQzMzhhMmVkODI4ZGI5Mzg5ODhlOTc2ZGI1ZTc1OGRkMDUuLmQ0NzU3
ZTI4YTZjNTJjZDY0MDNiMDllMmQ5NDJhNDUyMWZmY2M2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTE1Miw2ICsx
NTIsMjUgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydChXZWJD
b3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWUKICAgICAgICAgbV9kcmF3aW5nQXJlYS5h
Y2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIGFuaW1hdGlvbktleSwgc3RhcnRU
aW1lKTsKIH0KIAordm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRFbmQoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQsIENBQW5pbWF0aW9u
ICphbmltYXRpb24pCit7CisgICAgQ0FMYXllciAqbGF5ZXIgPSBhc0xheWVyKGdldExheWVyKGxh
eWVySUQpKTsKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcg
YW5pbWF0aW9uS2V5OworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBbbGF5ZXIgYW5pbWF0aW9u
S2V5c10pIHsKKyAgICAgICAgaWYgKFtsYXllciBhbmltYXRpb25Gb3JLZXk6a2V5XSA9PSBhbmlt
YXRpb24pIHsKKyAgICAgICAgICAgIGFuaW1hdGlvbktleSA9IGtleTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgp
KQorICAgICAgICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKGxheWVy
SUQsIGFuaW1hdGlvbktleSk7CisKK30KKwogdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjpjbGVh
ckxheWVycygpCiB7CiAgICAgZm9yIChhdXRvJiBpZExheWVyIDogbV9sYXllcnMpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggMWE2
Mjc5M2E2Yjg4ZDlmYWE3OTExODE1MTcyNjQzMGQ0NzVhYzVlZS4uNzk4MjEzMzQ4NjQwNjk2NmIx
MWFjODA1NjAyNWJhZGY0MjQ1ZDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3Qg
LypsYXllcklEKi8sIGNvbnN0IFN0cmluZyYgLyprZXkqLywgZG91YmxlIC8qc3RhcnRUaW1lKi8p
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRf
dCAvKmxheWVySUQqLywgY29uc3QgU3RyaW5nJiAvKmtleSovKSB7IH0KICNlbmRpZgogI2lmIFBM
QVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgppbmRleCA4ZWU2MDFl
MTdhZmYyOGJmYzlkN2U4ZDc5MWUxYTliNDViOTY2ZTcwLi4xZTQzYzM2MmZiODYzOGZhNWYyMjFk
ZmZhNDRhYTg2M2JkODk3MzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCkBAIC0zNSw2ICszNSw3IEBA
IG1lc3NhZ2VzIC0+IERyYXdpbmdBcmVhIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDb21taXRUcmFu
c2llbnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pCiAgICAg
CiAgICAgQWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBTdHJp
bmcga2V5LCBkb3VibGUgc3RhcnRUaW1lKQorICAgIEFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5k
KHVpbnQ2NF90IGxheWVySUQsIFN0cmluZyBrZXkpCiAgICAgCiAgICAgQWRkVHJhbnNhY3Rpb25D
YWxsYmFja0lEKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZS5tbQppbmRleCBjZTNhM2YwN2RiYmM3MjhlNmEzN2Y1NmFiZDk4YjA3ZmEw
MjYwZDc5Li4xNmI0MWIwYjRlZTFkNzI0MzNiYjNiZTdlN2MxZDk5MDhjYTk3ZDc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCkBAIC04MSw2ICs4MSwxMiBAQCAtICh2b2lk
KWFuaW1hdGlvbkRpZFN0YXJ0OihDQUFuaW1hdGlvbiAqKWFuaW1hdGlvbgogCiAgICAgX2xheWVy
VHJlZUhvc3QtPmFuaW1hdGlvbkRpZFN0YXJ0KF9sYXllcklELCBhbmltYXRpb24sIHN0YXJ0VGlt
ZSk7CiB9CisKKy0gKHZvaWQpYW5pbWF0aW9uRGlkU3RvcDooQ0FBbmltYXRpb24gKilhbmltYXRp
b24gZmluaXNoZWQ6KEJPT0wpZmluaXNoZWQKK3sKKyAgICBfbGF5ZXJUcmVlSG9zdC0+YW5pbWF0
aW9uRGlkRW5kKF9sYXllcklELCBhbmltYXRpb24pOworfQorCiBAZW5kCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IGUyOWNkOGI1NjNmM2Mw
NmFiYzUzMjEyM2MzMzZjNjkxMzQzNTU1M2QuLjU4MjdhODg3NmE5MWQ0OWY3MjBkNzUxNjI3ZDAw
ZDE0ZWUzYzM3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTM2OSw3ICsz
NjksMTMgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmFuaW1hdGlvblN0YXJ0ZWQoY29u
c3QgU3RyaW5nJiBrZXksIENGVGltZUludGVydmFsIGIKICAgICAgICAgdG9QbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlKGl0LT52YWx1ZS5nZXQoKSktPmRpZFN0YXJ0KGJlZ2luVGltZSk7CiAgICAg
CiAgICAgaWYgKG1fb3duZXIpCi0gICAgICAgIG1fb3duZXItPnBsYXRmb3JtQ0FMYXllckFuaW1h
dGlvblN0YXJ0ZWQoYmVnaW5UaW1lKTsKKyAgICAgICAgbV9vd25lci0+cGxhdGZvcm1DQUxheWVy
QW5pbWF0aW9uU3RhcnRlZChrZXksIGJlZ2luVGltZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxh
eWVyUmVtb3RlOjphbmltYXRpb25FbmRlZChjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBpZiAo
bV9vd25lcikKKyAgICAgICAgbV9vd25lci0+cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWQo
a2V5KTsKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNldE1hc2soUGxhdGZvcm1D
QUxheWVyKiBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCmluZGV4IGYxMDE4ZjczYmI5
ZjVjYWU4ZmQzMWQ4MjYwOTI1MmFhN2MwMjZlODAuLjk5NDVkZmE4NGJmOWY3MWRlZjQ3OGRkMTFi
N2FlZDFmZjczMWExMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaApAQCAtNzAsNiArNzAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbkZvcktleShjb25z
dCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgU3RyaW5n
JiBrZXksIENGVGltZUludGVydmFsIGJlZ2luVGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGFuaW1hdGlvbkVuZGVkKGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRNYXNrKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciopIG92ZXJyaWRlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDJmOGZiNzc2YTc5ZjYzMTBlZjgzYjM0
NmQ4ZmU4ZDRlNTlkZjZiY2MuLmNlNmU0Y2FlZWQ1NmQ3ODA2OGFlZWY2ODZlZmUzZDA3OTZlMDA3
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC02Myw2ICs2Myw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIEZyb20gdGhlIFVJIHByb2Nlc3MKICAgICB2b2lkIGFuaW1hdGlvbkRpZFN0
YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgY29uc3QgU3RyaW5n
JiBrZXksIGRvdWJsZSBzdGFydFRpbWUpOworICAgIHZvaWQgYW5pbWF0aW9uRGlkRW5kKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpOwog
CiAgICAgdm9pZCB3aWxsU3RhcnRBbmltYXRpb25PbkxheWVyKFBsYXRmb3JtQ0FMYXllclJlbW90
ZSYpOwogCkBAIC03OCw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV9kZXN0cm95ZWRMYXllcnM7CiAKICAgICBI
YXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgUGxhdGZvcm1D
QUxheWVyUmVtb3RlKj4gbV9saXZlTGF5ZXJzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUqPiBtX2xheWVy
c0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQ7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQsIFBsYXRmb3JtQ0FMYXllclJlbW90ZSo+IG1fbGF5ZXJzV2l0
aEFuaW1hdGlvbnM7CiAKICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24gbV9i
YWNraW5nU3RvcmVDb2xsZWN0aW9uOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1t
CmluZGV4IGViZDNmZjI0ZjBiN2Y5YzFjNDVkMzVkZDhhMDFlYTE0OGZlYzEyZDIuLjQwZDgyMTRm
OGNkMTRiOGQ2MDk1NWZkYmIxZWQ3NjM3OWE0ODMwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW0KQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojps
YXllcldpbGxCZURlc3Ryb3llZChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUmIGxheWVyKQogICAgIEFT
U0VSVCghbV9kZXN0cm95ZWRMYXllcnMuY29udGFpbnMobGF5ZXJJRCkpOwogICAgIG1fZGVzdHJv
eWVkTGF5ZXJzLmFwcGVuZChsYXllcklEKTsKICAgICAKLSAgICBtX2xheWVyc0F3YWl0aW5nQW5p
bWF0aW9uU3RhcnQucmVtb3ZlKGxheWVySUQpOworICAgIG1fbGF5ZXJzV2l0aEFuaW1hdGlvbnMu
cmVtb3ZlKGxheWVySUQpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmJhY2tp
bmdTdG9yZVdhc0NyZWF0ZWQoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSkK
QEAgLTEyMiwxNCArMTIyLDIxIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bGF5ZXJQ
cm9wZXJ0eUNoYW5nZWRXaGlsZUJ1aWxkaW5nVHJhbnNhY3Rpb24oUGxhdGZvCiAKIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dDo6d2lsbFN0YXJ0QW5pbWF0aW9uT25MYXllcihQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUmIGxheWVyKQogewotICAgIG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFy
dC5hZGQobGF5ZXIubGF5ZXJJRCgpLCAmbGF5ZXIpOworICAgIG1fbGF5ZXJzV2l0aEFuaW1hdGlv
bnMuYWRkKGxheWVyLmxheWVySUQoKSwgJmxheWVyKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRy
ZWVDb250ZXh0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSBzdGFydFRpbWUp
CiB7Ci0gICAgYXV0byBpdCA9IG1fbGF5ZXJzQXdhaXRpbmdBbmltYXRpb25TdGFydC5maW5kKGxh
eWVySUQpOwotICAgIGlmIChpdCAhPSBtX2xheWVyc0F3YWl0aW5nQW5pbWF0aW9uU3RhcnQuZW5k
KCkpCisgICAgYXV0byBpdCA9IG1fbGF5ZXJzV2l0aEFuaW1hdGlvbnMuZmluZChsYXllcklEKTsK
KyAgICBpZiAoaXQgIT0gbV9sYXllcnNXaXRoQW5pbWF0aW9ucy5lbmQoKSkKICAgICAgICAgaXQt
PnZhbHVlLT5hbmltYXRpb25TdGFydGVkKGtleSwgc3RhcnRUaW1lKTsKIH0KIAordm9pZCBSZW1v
dGVMYXllclRyZWVDb250ZXh0OjphbmltYXRpb25EaWRFbmQoV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIGF1
dG8gaXQgPSBtX2xheWVyc1dpdGhBbmltYXRpb25zLmZpbmQobGF5ZXJJRCk7CisgICAgaWYgKGl0
ICE9IG1fbGF5ZXJzV2l0aEFuaW1hdGlvbnMuZW5kKCkpCisgICAgICAgIGl0LT52YWx1ZS0+YW5p
bWF0aW9uRW5kZWQoa2V5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKaW5kZXggMzFjN2EwNzg2YjU1ZTYxODIzN2QxMjg0OWRj
NDM2ZTMxNGZjOWJlNC4uMWNiNTEwMGFhNTVkZmU2MDRmNTRmZTQxMmRhMDFmNDg2YWY3ZjEwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtODgsNiArODgsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRSZWN0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZEV4cG9zZWRSZWN0OyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBj
b25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHN0YXJ0VGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvbnN0
IFN0cmluZyYga2V5KSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggYmEyOWFl
YzExODAwOWZjYzlkZTZjOWUxNDhmMWUwMjA4YjYwOGM2OS4uMzdjODk0N2I0YTI1YzdiODI4MGY3
MTYyYjc3MDQzZDk2YjVkZWUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tCkBAIC0xOTMsNiArMTkzLDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwKICAgICBtX3Jl
bW90ZUxheWVyVHJlZUNvbnRleHQtPmFuaW1hdGlvbkRpZFN0YXJ0KGxheWVySUQsIGtleSwgc3Rh
cnRUaW1lKTsKIH0KIAordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0
ZWRBbmltYXRpb25EaWRFbmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpCit7
CisgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5hbmltYXRpb25EaWRFbmQobGF5ZXJJRCwg
a2V5KTsKK30KKwogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0RXhwb3NlZFJl
Y3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkUmVjdCkKIHsKICAgICBtX2V4cG9zZWRSZWN0ID0g
ZXhwb3NlZFJlY3Q7Cg==
</data>
<flag name="review"
          id="261523"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>