<?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>176807</bug_id>
          
          <creation_ts>2017-09-12 13:42:25 -0700</creation_ts>
          <short_desc>AnimationBase should point to Element instead of RenderElement</short_desc>
          <delta_ts>2017-09-19 09:27:17 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171926</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1348019</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-09-12 13:42:25 -0700</bug_when>
    <thetext>A step towards making animation system operate on elements and styles instead renderers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348025</commentid>
    <comment_count>1</comment_count>
      <attachid>320565</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-09-12 13:47:09 -0700</bug_when>
    <thetext>Created attachment 320565
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348039</commentid>
    <comment_count>2</comment_count>
      <attachid>320565</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-09-12 14:40:17 -0700</bug_when>
    <thetext>Comment on attachment 320565
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348055</commentid>
    <comment_count>3</comment_count>
      <attachid>320565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-12 15:09:50 -0700</bug_when>
    <thetext>Comment on attachment 320565
patch

Clearing flags on attachment: 320565

Committed r221941: &lt;http://trac.webkit.org/changeset/221941&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348056</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-12 15:09:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350262</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-18 23:45:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/34510878&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320565</attachid>
            <date>2017-09-12 13:47:09 -0700</date>
            <delta_ts>2017-09-12 15:09:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>animation-base-element.patch</filename>
            <type>text/plain</type>
            <size>18180</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTkzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTA5LTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBBbmltYXRpb25CYXNlIHNob3Vs
ZCBwb2ludCB0byBFbGVtZW50IGluc3RlYWQgb2YgUmVuZGVyRWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIHN0ZXAgdG93YXJk
cyBtYWtpbmcgYW5pbWF0aW9uIHN5c3RlbSBvcGVyYXRlIG9uIGVsZW1lbnRzIGFuZCBzdHlsZXMg
aW5zdGVhZCByZW5kZXJlcnMuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBbmltYXRpb25CYXNlOjpBbmltYXRpb25CYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkJhc2U6OnJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlv
bkJhc2U6OmNvbXBvc2l0ZWRSZW5kZXJlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmlt
YXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0
aW9uQmFzZTo6ZmlyZUFuaW1hdGlvbkV2ZW50c0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkJhc2U6OmZyZWV6ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25C
YXNlOjpnZXRFbGFwc2VkVGltZSBjb25zdCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6cmVuZGVyZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpzaG91bGRTZW5kRXZlbnRGb3JMaXN0ZW5l
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6Y29tcHV0ZUV4
dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltcGxp
Y2l0QW5pbWF0aW9uOjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNp
dEFuaW1hdGlvbjo6cGF1c2VBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRB
bmltYXRpb246OmVuZEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1h
dGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFu
aW1hdGlvbjo6cmVzZXQpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpnZXRBbmltYXRl
ZFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpjb21wdXRlRXh0
ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
QW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFu
aW1hdGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0
aW9uOjpzaG91bGRTZW5kRXZlbnRGb3JMaXN0ZW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpLZXlmcmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lQW5pbWF0aW9uOjpyZXNvbHZlS2V5ZnJhbWVTdHlsZXMpOgorCiAyMDE3LTA5
LTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdIERv
bid0IGluY3JlYXNlIHRoZSByZXBvcnRlZCB0b3RhbEZyYW1lRGVsYXkgZm9yIG5vbi1kaXNwbGF5
ZWQgZnJhbWVzIChvciBmcmFtZXMgY29taW5nIGluIHdoaWxlIHBhdXNlZCkuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAkocmV2aXNp
b24gMjIxOTM2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDE1ICs3NywyOSBAQCBzdGF0aWMgaW5saW5lIGRv
dWJsZSBzb2x2ZVNwcmluZ0Z1bmN0aW9uCiB9CiAKIEFuaW1hdGlvbkJhc2U6OkFuaW1hdGlvbkJh
c2UoY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24sIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBD
b21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFuaW1hdGlvbikKLSAgICA6IG1fb2JqZWN0KHJl
bmRlcmVyKQorICAgIDogbV9lbGVtZW50KHJlbmRlcmVyLT5lbGVtZW50KCkpCiAgICAgLCBtX2Nv
bXBvc2l0ZUFuaW1hdGlvbihjb21wb3NpdGVBbmltYXRpb24pCiAgICAgLCBtX2FuaW1hdGlvbihj
b25zdF9jYXN0PEFuaW1hdGlvbiY+KGFuaW1hdGlvbikpCiB7CisgICAgQVNTRVJUKG1fZWxlbWVu
dCk7CiAgICAgLy8gQ29tcHV0ZSB0aGUgdG90YWwgZHVyYXRpb24KICAgICBpZiAobV9hbmltYXRp
b24tPml0ZXJhdGlvbkNvdW50KCkgPiAwKQogICAgICAgICBtX3RvdGFsRHVyYXRpb24gPSBtX2Fu
aW1hdGlvbi0+ZHVyYXRpb24oKSAqIG1fYW5pbWF0aW9uLT5pdGVyYXRpb25Db3VudCgpOwogfQog
CitSZW5kZXJFbGVtZW50KiBBbmltYXRpb25CYXNlOjpyZW5kZXJlcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZWxlbWVudCA/IG1fZWxlbWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Cit9CisK
K1JlbmRlckJveE1vZGVsT2JqZWN0KiBBbmltYXRpb25CYXNlOjpjb21wb3NpdGVkUmVuZGVyZXIo
KSBjb25zdAoreworICAgIGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKKyAgICBp
ZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNDb21wb3NpdGVkKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVu
ZGVyZXIpOworfQorCiB2b2lkIEFuaW1hdGlvbkJhc2U6OnNldE5lZWRzU3R5bGVSZWNhbGMoRWxl
bWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQo
KS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKQEAgLTI0Niw4ICsyNjAsOCBAQCB2b2lkIEFu
aW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShBCiAgICAgICAgICAgICAgICAgbV9jb21w
b3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRUb0FuaW1hdGlvbnNXYWl0
aW5nRm9yU3R5bGUodGhpcyk7CiAKICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIGEgcmVuZGVy
IHNvIHdlIGNhbiBzdGFydCB0aGUgYW5pbWF0aW9uCi0gICAgICAgICAgICAgICAgaWYgKG1fb2Jq
ZWN0ICYmIG1fb2JqZWN0LT5lbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgIG1fY29tcG9z
aXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRWxlbWVudENoYW5nZVRvRGlz
cGF0Y2goKm1fb2JqZWN0LT5lbGVtZW50KCkpOworICAgICAgICAgICAgICAgIGlmIChtX2VsZW1l
bnQpCisgICAgICAgICAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25D
b250cm9sbGVyKCkuYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goKm1fZWxlbWVudCk7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVCghcGF1c2VkKCkpOwogICAg
ICAgICAgICAgICAgIC8vIFdlJ3JlIHdhaXRpbmcgZm9yIHRoZSBzdGFydCB0aW1lciB0byBmaXJl
IGFuZCB3ZSBnb3QgYSBwYXVzZS4gQ2FuY2VsIHRoZSB0aW1lciwgcGF1c2UgYW5kIHdhaXQKQEAg
LTMxMyw4ICszMjcsOCBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnVwZGF0ZVN0YXRlTWFjaGluZShB
CiAgICAgICAgICAgICAgICAgZ29JbnRvRW5kaW5nT3JMb29waW5nU3RhdGUoKTsKIAogICAgICAg
ICAgICAgICAgIC8vIERpc3BhdGNoIHVwZGF0ZVN0eWxlSWZOZWVkZWQgc28gd2UgY2FuIHN0YXJ0
IHRoZSBhbmltYXRpb24KLSAgICAgICAgICAgICAgICBpZiAobV9vYmplY3QgJiYgbV9vYmplY3Qt
PmVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFu
aW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaCgqbV9vYmplY3Qt
PmVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgaWYgKG1fZWxlbWVudCkKKyAgICAgICAgICAg
ICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRF
bGVtZW50Q2hhbmdlVG9EaXNwYXRjaCgqbV9lbGVtZW50KTsKICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIHBhdXNpbmcgd2hpbGUgd2FpdGluZyBmb3IgYSBz
dGFydCByZXNwb25zZS4gQ2FuY2VsIHRoZSBhbmltYXRpb24gYW5kIHdhaXQuIFdoZW4gCiAgICAg
ICAgICAgICAgICAgLy8gd2UgdW5wYXVzZSwgd2Ugd2lsbCBhY3QgYXMgdGhvdWdoIHRoZSBzdGFy
dCB0aW1lciBqdXN0IGZpcmVkCkBAIC0zNTcsNyArMzcxLDcgQEAgdm9pZCBBbmltYXRpb25CYXNl
Ojp1cGRhdGVTdGF0ZU1hY2hpbmUoQQogICAgICAgICAgICAgICAgIExPRyhBbmltYXRpb25zLCAi
JXAgQW5pbWF0aW9uU3RhdGUgJXMgLT4gRG9uZSAodGltZSBpcyAlZikiLCB0aGlzLCBuYW1lRm9y
U3RhdGUobV9hbmltYXRpb25TdGF0ZSksIHBhcmFtKTsKICAgICAgICAgICAgICAgICBtX2FuaW1h
dGlvblN0YXRlID0gQW5pbWF0aW9uU3RhdGU6OkRvbmU7CiAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgaWYgKG1fZWxlbWVu
dCkgewogICAgICAgICAgICAgICAgICAgICBpZiAobV9hbmltYXRpb24tPmZpbGxzRm9yd2FyZHMo
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICIlcCBBbmltYXRp
b25TdGF0ZSAlcyAtPiBGaWxsaW5nRm9yd2FyZHMiLCB0aGlzLCBuYW1lRm9yU3RhdGUobV9hbmlt
YXRpb25TdGF0ZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9hbmltYXRpb25TdGF0ZSA9
IEFuaW1hdGlvblN0YXRlOjpGaWxsaW5nRm9yd2FyZHM7CkBAIC0zNjUsOCArMzc5LDggQEAgdm9p
ZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQQogICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdW1lT3ZlcnJpZGRlbkFuaW1hdGlvbnMoKTsKIAogICAgICAgICAgICAgICAgICAg
ICAvLyBGaXJlIG9mZiBhbm90aGVyIHN0eWxlIGNoYW5nZSBzbyB3ZSBjYW4gc2V0IHRoZSBmaW5h
bCB2YWx1ZQotICAgICAgICAgICAgICAgICAgICBpZiAobV9vYmplY3QtPmVsZW1lbnQoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250
cm9sbGVyKCkuYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goKm1fb2JqZWN0LT5lbGVtZW50KCkp
OworICAgICAgICAgICAgICAgICAgICBpZiAobV9lbGVtZW50KQorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFbGVt
ZW50Q2hhbmdlVG9EaXNwYXRjaCgqbV9lbGVtZW50KTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBwYXVzaW5nIHdoaWxl
IHJ1bm5pbmcuIENhbmNlbCB0aGUgYW5pbWF0aW9uIGFuZCB3YWl0CkBAIC00OTEsNyArNTA1LDcg
QEAgdm9pZCBBbmltYXRpb25CYXNlOjpmaXJlQW5pbWF0aW9uRXZlbnRzSQogICAgIGlmIChtX2Fu
aW1hdGlvblN0YXRlID09IEFuaW1hdGlvblN0YXRlOjpTdGFydFdhaXRUaW1lcikgewogI2lmIEVO
QUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQogICAgICAgICBpZiAobV9hbmltYXRpb24tPnRy
aWdnZXIoKSAmJiBtX2FuaW1hdGlvbi0+dHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdn
ZXIoKSkgewotICAgICAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgICAgICBpZiAobV9l
bGVtZW50KSB7CiAgICAgICAgICAgICAgICAgZmxvYXQgb2Zmc2V0ID0gbV9jb21wb3NpdGVBbmlt
YXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICAg
ICAgICAgIGF1dG8mIHNjcm9sbFRyaWdnZXIgPSBkb3duY2FzdDxTY3JvbGxBbmltYXRpb25Ucmln
Z2VyPigqbV9hbmltYXRpb24tPnRyaWdnZXIoKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9mZnNl
dCA+IHNjcm9sbFRyaWdnZXIuc3RhcnRWYWx1ZSgpLnZhbHVlKCkpCkBAIC01NzQsOCArNTg4LDgg
QEAgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBBbmltYXRpb25CYXNlOjp0aQogICAgIGlmIChtX2Fu
aW1hdGlvblN0YXRlID09IEFuaW1hdGlvblN0YXRlOjpTdGFydFdhaXRUaW1lcikgewogI2lmIEVO
QUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQogICAgICAgICBpZiAobV9hbmltYXRpb24tPnRy
aWdnZXIoKS0+aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpIHsKLSAgICAgICAgICAgIGlmICht
X29iamVjdCkgewotICAgICAgICAgICAgICAgIGZsb2F0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9
IG1fb2JqZWN0LT52aWV3KCkuZnJhbWVWaWV3KCkuc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0
aW9uKCkueSgpLnRvRmxvYXQoKTsKKyAgICAgICAgICAgIGlmIChtX2VsZW1lbnQpIHsKKyAgICAg
ICAgICAgICAgICBmbG9hdCBjdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCkudmlldygpLT5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRpb24oKS55KCkudG9GbG9h
dCgpOwogICAgICAgICAgICAgICAgIGF1dG8mIHNjcm9sbFRyaWdnZXIgPSBkb3duY2FzdDxTY3Jv
bGxBbmltYXRpb25UcmlnZ2VyPigqbV9hbmltYXRpb24tPnRyaWdnZXIoKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+PSBzY3JvbGxUcmlnZ2VyLnN0YXJ0VmFs
dWUoKS52YWx1ZSgpICYmICghc2Nyb2xsVHJpZ2dlci5oYXNFbmRWYWx1ZSgpIHx8IGN1cnJlbnRT
Y3JvbGxQb3NpdGlvbiA8PSBzY3JvbGxUcmlnZ2VyLmVuZFZhbHVlKCkudmFsdWUoKSkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAwX3M7CkBAIC03MjYsOCArNzQwLDggQEAgdm9pZCBBbmlt
YXRpb25CYXNlOjpmcmVlemVBdFRpbWUoZG91YmxlIAogICAgIGVsc2UKICAgICAgICAgbV9wYXVz
ZVRpbWUgPSBtX3N0YXJ0VGltZS52YWx1ZV9vcigwKSArIHQgLSBtX2FuaW1hdGlvbi0+ZGVsYXko
KTsKIAotICAgIGlmIChtX29iamVjdCAmJiBtX29iamVjdC0+aXNDb21wb3NpdGVkKCkpCi0gICAg
ICAgIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PigqbV9vYmplY3QpLnN1c3BlbmRBbmlt
YXRpb25zKG1fcGF1c2VUaW1lLnZhbHVlKCkpOworICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGNv
bXBvc2l0ZWRSZW5kZXJlcigpKQorICAgICAgICByZW5kZXJlci0+c3VzcGVuZEFuaW1hdGlvbnMo
bV9wYXVzZVRpbWUudmFsdWUoKSk7CiB9CiAKIGRvdWJsZSBBbmltYXRpb25CYXNlOjpiZWdpbkFu
aW1hdGlvblVwZGF0ZVRpbWUoKSBjb25zdApAQCAtNzQzLDcgKzc1Nyw3IEBAIGRvdWJsZSBBbmlt
YXRpb25CYXNlOjpnZXRFbGFwc2VkVGltZSgpIGMKICNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikKICAgICBpZiAobV9hbmltYXRpb24tPnRyaWdnZXIoKSAmJiBtX2FuaW1hdGlvbi0+
dHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdnZXIoKSkgewogICAgICAgICBhdXRvJiBz
Y3JvbGxUcmlnZ2VyID0gZG93bmNhc3Q8U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcj4oKm1fYW5pbWF0
aW9uLT50cmlnZ2VyKCkpOwotICAgICAgICBpZiAoc2Nyb2xsVHJpZ2dlci5oYXNFbmRWYWx1ZSgp
ICYmIG1fb2JqZWN0KSB7CisgICAgICAgIGlmIChzY3JvbGxUcmlnZ2VyLmhhc0VuZFZhbHVlKCkg
JiYgbV9lbGVtZW50KSB7CiAgICAgICAgICAgICBmbG9hdCBvZmZzZXQgPSBtX2NvbXBvc2l0ZUFu
aW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgICAg
ICAgICBmbG9hdCBzdGFydFZhbHVlID0gc2Nyb2xsVHJpZ2dlci5zdGFydFZhbHVlKCkudmFsdWUo
KTsKICAgICAgICAgICAgIGlmIChvZmZzZXQgPCBzdGFydFZhbHVlKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAkocmV2aXNpb24gMjIxOTM2
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIGNsYXNzIENvbXBvc2l0ZUFuaW1hdGlvbjsKIGNs
YXNzIEVsZW1lbnQ7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBMYXlvdXRSZWN0OworY2xhc3Mg
UmVuZGVyQm94TW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogY2xhc3MgUmVuZGVy
U3R5bGU7CiBjbGFzcyBUaW1pbmdGdW5jdGlvbjsKQEAgLTUwLDExICs1MSwxMiBAQCBwdWJsaWM6
CiAgICAgQW5pbWF0aW9uQmFzZShjb25zdCBBbmltYXRpb24mIHRyYW5zaXRpb24sIFJlbmRlckVs
ZW1lbnQqLCBDb21wb3NpdGVBbmltYXRpb24qKTsKICAgICB2aXJ0dWFsIH5BbmltYXRpb25CYXNl
KCkgeyB9CiAKLSAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0OyB9CisgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIoKSBjb25zdDsKKyAgICBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogY29tcG9zaXRlZFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgdm9pZCBj
bGVhcigpCiAgICAgewogICAgICAgICBlbmRBbmltYXRpb24oKTsKLSAgICAgICAgbV9vYmplY3Qg
PSBudWxscHRyOworICAgICAgICBtX2VsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBtX2NvbXBv
c2l0ZUFuaW1hdGlvbiA9IG51bGxwdHI7CiAgICAgfQogCkBAIC0yMzksNyArMjQxLDcgQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgY29tcHV0ZVRyYW5zZm9ybWVkRXh0ZW50VmlhVHJhbnNmb3JtTGlz
dChjb25zdCBGbG9hdFJlY3QmIHJlbmRlcmVyQm94LCBjb25zdCBSZW5kZXJTdHlsZSYsIExheW91
dFJlY3QmIGJvdW5kcykgY29uc3Q7CiAgICAgYm9vbCBjb21wdXRlVHJhbnNmb3JtZWRFeHRlbnRW
aWFNYXRyaXgoY29uc3QgRmxvYXRSZWN0JiByZW5kZXJlckJveCwgY29uc3QgUmVuZGVyU3R5bGUm
LCBMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0OwogCi0gICAgUmVuZGVyRWxlbWVudCogbV9vYmpl
Y3Q7CisgICAgRWxlbWVudCogbV9lbGVtZW50OwogICAgIENvbXBvc2l0ZUFuaW1hdGlvbiogbV9j
b21wb3NpdGVBbmltYXRpb247IC8vIElkZWFsbHkgdGhpcyB3b3VsZCBiZSBhIHJlZmVyZW5jZSwg
YnV0IGl0IGhhcyB0byBiZSBjbGVhcmVkIGlmIGFuIGFuaW1hdGlvbiBpcyBkZXN0cm95ZWQgaW5z
aWRlIGFuIGV2ZW50IGNhbGxiYWNrLgogICAgIFJlZjxBbmltYXRpb24+IG1fYW5pbWF0aW9uOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRB
bmltYXRpb24uY3BwCShyZXZpc2lvbiAyMjE5MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4
LDcgQEAgSW1wbGljaXRBbmltYXRpb246On5JbXBsaWNpdEFuaW1hdGlvbigpCiAKIGJvb2wgSW1w
bGljaXRBbmltYXRpb246OnNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKERvY3VtZW50OjpMaXN0
ZW5lclR5cGUgaW5MaXN0ZW5lclR5cGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fb2JqZWN0LT5k
b2N1bWVudCgpLmhhc0xpc3RlbmVyVHlwZShpbkxpc3RlbmVyVHlwZSk7CisgICAgcmV0dXJuIG1f
ZWxlbWVudC0+ZG9jdW1lbnQoKS5oYXNMaXN0ZW5lclR5cGUoaW5MaXN0ZW5lclR5cGUpOwogfQog
CiBib29sIEltcGxpY2l0QW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiYgY29t
cG9zaXRlQW5pbWF0aW9uLCBSZW5kZXJFbGVtZW50KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBjb25z
dCBSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bGUsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4m
IGFuaW1hdGVkU3R5bGUsIGJvb2wmIGRpZEJsZW5kU3R5bGUpCkBAIC0xMDIsMTIgKzEwMiwxMiBA
QCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpjb21wdXRlRXh0ZW50T2ZUCiB7CiAgICAgQVNTRVJU
KGhhc1N0eWxlKCkpOwogCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KG1fb2JqZWN0KSkKKyAgICBp
ZiAoIWlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOyAvLyBO
b24tYm94ZXMgZG9uJ3QgZ2V0IHRyYW5zZm9ybWVkOwogCiAgICAgQVNTRVJUKG1fYW5pbWF0aW5n
UHJvcGVydHkgPT0gQ1NTUHJvcGVydHlUcmFuc2Zvcm0pOwogCi0gICAgUmVuZGVyQm94JiBib3gg
PSBkb3duY2FzdDxSZW5kZXJCb3g+KCptX29iamVjdCk7CisgICAgUmVuZGVyQm94JiBib3ggPSBk
b3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcigpKTsKICAgICBGbG9hdFJlY3QgcmVuZGVyZXJC
b3ggPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGJveC5ib3JkZXJCb3hSZWN0KCksIGJveC5kb2N1
bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogCiAgICAgTGF5b3V0UmVjdCBzdGFydEJvdW5k
cyA9IGJvdW5kczsKQEAgLTEzMywyNyArMTMzLDI0IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246
OmNvbXB1dGVFeHRlbnRPZlQKIAogYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c3RhcnRBbmltYXRp
b24oZG91YmxlIHRpbWVPZmZzZXQpCiB7Ci0gICAgaWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5p
c0NvbXBvc2l0ZWQoKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2Jq
ZWN0PigqbV9vYmplY3QpLnN0YXJ0VHJhbnNpdGlvbih0aW1lT2Zmc2V0LCBtX2FuaW1hdGluZ1By
b3BlcnR5LCBtX2Zyb21TdHlsZS5nZXQoKSwgbV90b1N0eWxlLmdldCgpKTsKKyAgICBpZiAoYXV0
byogcmVuZGVyZXIgPSBjb21wb3NpdGVkUmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIHJlbmRl
cmVyLT5zdGFydFRyYW5zaXRpb24odGltZU9mZnNldCwgbV9hbmltYXRpbmdQcm9wZXJ0eSwgbV9m
cm9tU3R5bGUuZ2V0KCksIG1fdG9TdHlsZS5nZXQoKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CiB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNl
dCkKIHsKLSAgICBpZiAoIW1fb2JqZWN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9v
YmplY3QtPmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9i
amVjdD4oKm1fb2JqZWN0KS50cmFuc2l0aW9uUGF1c2VkKHRpbWVPZmZzZXQsIG1fYW5pbWF0aW5n
UHJvcGVydHkpOworICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGNvbXBvc2l0ZWRSZW5kZXJlcigp
KQorICAgICAgICByZW5kZXJlci0+dHJhbnNpdGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBtX2FuaW1h
dGluZ1Byb3BlcnR5KTsKICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkg
c3R5bGUKICAgICBpZiAoIXBhdXNlZCgpKQotICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKG1f
b2JqZWN0LT5lbGVtZW50KCkpOworICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKG1fZWxlbWVu
dCk7CiB9CiAKIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmVuZEFuaW1hdGlvbigpCiB7Ci0gICAg
aWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQoKSkKLSAgICAgICAgZG93bmNh
c3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCptX29iamVjdCkudHJhbnNpdGlvbkZpbmlzaGVkKG1f
YW5pbWF0aW5nUHJvcGVydHkpOworICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGNvbXBvc2l0ZWRS
ZW5kZXJlcigpKQorICAgICAgICByZW5kZXJlci0+dHJhbnNpdGlvbkZpbmlzaGVkKG1fYW5pbWF0
aW5nUHJvcGVydHkpOwogfQogCiB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVu
ZChkb3VibGUgZWxhcHNlZFRpbWUpCkBAIC0xNzksNyArMTc2LDcgQEAgYm9vbCBJbXBsaWNpdEFu
aW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdgogICAgICAgICAgICAgU3RyaW5nIHByb3BlcnR5TmFt
ZSA9IGdldFByb3BlcnR5TmFtZVN0cmluZyhtX2FuaW1hdGluZ1Byb3BlcnR5KTsKICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBldmVudAotICAgICAgICAgICAg
UmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBtX29iamVjdC0+ZWxlbWVudCgpOworICAgICAgICAg
ICAgYXV0byBlbGVtZW50ID0gbWFrZVJlZlB0cihtX2VsZW1lbnQpOwogCiAgICAgICAgICAgICBB
U1NFUlQoIWVsZW1lbnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09
IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpCkBA
IC0yMDUsOCArMjAyLDggQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6cmVzZXQoY29uc3QgUmVu
ZAogCiAgICAgbV90b1N0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHRvKTsKIAotICAgIGlm
IChtX29iamVjdCAmJiBtX29iamVjdC0+ZWxlbWVudCgpKQotICAgICAgICBTdHlsZTo6bG9hZFBl
bmRpbmdSZXNvdXJjZXMoKm1fdG9TdHlsZSwgbV9vYmplY3QtPmVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSwgbV9vYmplY3QtPmVsZW1lbnQoKSk7CisgICAgaWYgKG1fZWxlbWVudCkKKyAgICAgICAgU3R5
bGU6OmxvYWRQZW5kaW5nUmVzb3VyY2VzKCptX3RvU3R5bGUsIG1fZWxlbWVudC0+ZG9jdW1lbnQo
KSwgbV9lbGVtZW50KTsKIAogICAgIC8vIFJlc3RhcnQgdGhlIHRyYW5zaXRpb24uCiAgICAgaWYg
KG1fZnJvbVN0eWxlICYmIG1fdG9TdHlsZSAmJiAhY29tcG9zaXRlQW5pbWF0aW9uLmlzU3VzcGVu
ZGVkKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1h
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5
ZnJhbWVBbmltYXRpb24uY3BwCShyZXZpc2lvbiAyMjE5MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
Myw3ICsyMjMsNyBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpnZXRBbmltYXRlZFN0eWxlCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmICghYW5pbWF0ZWRTdHlsZSkKLSAgICAgICAgYW5pbWF0
ZWRTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihtX29iamVjdC0+c3R5bGUoKSk7CisgICAg
ICAgIGFuaW1hdGVkU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIocmVuZGVyZXIoKS0+c3R5
bGUoKSk7CiAKICAgICBmb3IgKGF1dG8gcHJvcGVydHlJRCA6IG1fa2V5ZnJhbWVzLnByb3BlcnRp
ZXMoKSkgewogICAgICAgICAvLyBHZXQgdGhlIGZyb20vdG8gc3R5bGVzIGFuZCBwcm9ncmVzcyBi
ZXR3ZWVuCkBAIC0yNDAsMTAgKzI0MCwxMCBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpjb21w
dXRlRXh0ZW50T2ZUCiB7CiAgICAgQVNTRVJUKG1fa2V5ZnJhbWVzLmNvbnRhaW5zUHJvcGVydHko
Q1NTUHJvcGVydHlUcmFuc2Zvcm0pKTsKIAotICAgIGlmICghaXM8UmVuZGVyQm94PihtX29iamVj
dCkpCisgICAgaWYgKCFpczxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsgLy8gTm9uLWJveGVzIGRvbid0IGdldCB0cmFuc2Zvcm1lZDsKIAotICAgIFJlbmRlckJv
eCYgYm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqbV9vYmplY3QpOworICAgIFJlbmRlckJveCYg
Ym94ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIoKSk7CiAgICAgRmxvYXRSZWN0IHJl
bmRlcmVyQm94ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhib3guYm9yZGVyQm94UmVjdCgpLCBi
b3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAgIEZsb2F0UmVjdCBjdW11
bGF0aXZlQm91bmRzID0gYm91bmRzOwpAQCAtMjc3LDQwICsyNzcsNDAgQEAgYm9vbCBLZXlmcmFt
ZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUAogCiBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpz
dGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCkKIHsKLSAgICBpZiAobV9vYmplY3QgJiYg
bV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVy
Qm94TW9kZWxPYmplY3Q+KCptX29iamVjdCkuc3RhcnRBbmltYXRpb24odGltZU9mZnNldCwgbV9h
bmltYXRpb24ucHRyKCksIG1fa2V5ZnJhbWVzKTsKKyAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBj
b21wb3NpdGVkUmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5zdGFydEFuaW1h
dGlvbih0aW1lT2Zmc2V0LCBtX2FuaW1hdGlvbi5wdHIoKSwgbV9rZXlmcmFtZXMpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6cGF1c2VBbmltYXRpb24o
ZG91YmxlIHRpbWVPZmZzZXQpCiB7Ci0gICAgaWYgKCFtX29iamVjdCkKKyAgICBpZiAoIW1fZWxl
bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQo
KSkKLSAgICAgICAgZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCptX29iamVjdCkuYW5p
bWF0aW9uUGF1c2VkKHRpbWVPZmZzZXQsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7Cisg
ICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gY29tcG9zaXRlZFJlbmRlcmVyKCkpCisgICAgICAgIHJl
bmRlcmVyLT5hbmltYXRpb25QYXVzZWQodGltZU9mZnNldCwgbV9rZXlmcmFtZXMuYW5pbWF0aW9u
TmFtZSgpKTsKIAogICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVkKSBzdHls
ZQogICAgIGlmICghcGF1c2VkKCkpCi0gICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMobV9vYmpl
Y3QtPmVsZW1lbnQoKSk7CisgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMobV9lbGVtZW50KTsK
IH0KIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKCkKIHsKLSAgICBpZiAo
IW1fb2JqZWN0KQorICAgIGlmICghbV9lbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQotICAgICAgICBkb3duY2FzdDxSZW5kZXJCb3hN
b2RlbE9iamVjdD4oKm1fb2JqZWN0KS5hbmltYXRpb25GaW5pc2hlZChtX2tleWZyYW1lcy5hbmlt
YXRpb25OYW1lKCkpOworICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGNvbXBvc2l0ZWRSZW5kZXJl
cigpKQorICAgICAgICByZW5kZXJlci0+YW5pbWF0aW9uRmluaXNoZWQobV9rZXlmcmFtZXMuYW5p
bWF0aW9uTmFtZSgpKTsKIAogICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVk
KSBzdHlsZQogICAgIGlmICghcGF1c2VkKCkpCi0gICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMo
bV9vYmplY3QtPmVsZW1lbnQoKSk7CisgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMobV9lbGVt
ZW50KTsKIH0KIAogYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6c2hvdWxkU2VuZEV2ZW50Rm9yTGlz
dGVuZXIoRG9jdW1lbnQ6Okxpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fb2JqZWN0LT5kb2N1bWVudCgpLmhhc0xpc3RlbmVyVHlwZShsaXN0ZW5lclR5cGUp
OworICAgIHJldHVybiBtX2VsZW1lbnQtPmRvY3VtZW50KCkuaGFzTGlzdGVuZXJUeXBlKGxpc3Rl
bmVyVHlwZSk7CiB9CiAKIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246Om9uQW5pbWF0aW9uU3RhcnQo
ZG91YmxlIGVsYXBzZWRUaW1lKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIGJvb2wgS2V5ZnJhbWVBbmlt
YXRpb246OnNlbmRBbmltYXRpb25FdmUKIAogICAgIGlmIChzaG91bGRTZW5kRXZlbnRGb3JMaXN0
ZW5lcihsaXN0ZW5lclR5cGUpKSB7CiAgICAgICAgIC8vIERpc3BhdGNoIHRoZSBldmVudAotICAg
ICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IG1fb2JqZWN0LT5lbGVtZW50KCk7CisgICAg
ICAgIGF1dG8gZWxlbWVudCA9IG1ha2VSZWZQdHIobV9lbGVtZW50KTsKIAogICAgICAgICBBU1NF
UlQoIWVsZW1lbnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERv
Y3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgICAgIGlmICghZWxlbWVudCkKQEAgLTM4OSwx
NyArMzg5LDE2IEBAIGJvb2wgS2V5ZnJhbWVBbmltYXRpb246OmFmZmVjdHNQcm9wZXJ0eSgKIAog
dm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6cmVzb2x2ZUtleWZyYW1lU3R5bGVzKCkKIHsKLSAgICBp
ZiAoIW1fb2JqZWN0IHx8ICFtX29iamVjdC0+ZWxlbWVudCgpKQorICAgIGlmICghbV9lbGVtZW50
KQogICAgICAgICByZXR1cm47Ci0gICAgYXV0byYgZWxlbWVudCA9ICptX29iamVjdC0+ZWxlbWVu
dCgpOwogCi0gICAgaWYgKGF1dG8qIHN0eWxlU2NvcGUgPSBTdHlsZTo6U2NvcGU6OmZvck9yZGlu
YWwoZWxlbWVudCwgbV9hbmltYXRpb24tPm5hbWVTdHlsZVNjb3BlT3JkaW5hbCgpKSkKLSAgICAg
ICAgc3R5bGVTY29wZS0+cmVzb2x2ZXIoKS5rZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbigqbV9v
YmplY3QtPmVsZW1lbnQoKSwgbV91bmFuaW1hdGVkU3R5bGUuZ2V0KCksIG1fa2V5ZnJhbWVzKTsK
KyAgICBpZiAoYXV0byogc3R5bGVTY29wZSA9IFN0eWxlOjpTY29wZTo6Zm9yT3JkaW5hbCgqbV9l
bGVtZW50LCBtX2FuaW1hdGlvbi0+bmFtZVN0eWxlU2NvcGVPcmRpbmFsKCkpKQorICAgICAgICBz
dHlsZVNjb3BlLT5yZXNvbHZlcigpLmtleWZyYW1lU3R5bGVzRm9yQW5pbWF0aW9uKCptX2VsZW1l
bnQsIG1fdW5hbmltYXRlZFN0eWxlLmdldCgpLCBtX2tleWZyYW1lcyk7CiAKICAgICAvLyBFbnN1
cmUgcmVzb3VyY2UgbG9hZHMgZm9yIGFsbCB0aGUgZnJhbWVzLgogICAgIGZvciAoYXV0byYga2V5
ZnJhbWUgOiBtX2tleWZyYW1lcy5rZXlmcmFtZXMoKSkgewogICAgICAgICBpZiAoYXV0byogc3R5
bGUgPSBjb25zdF9jYXN0PFJlbmRlclN0eWxlKj4oa2V5ZnJhbWUuc3R5bGUoKSkpCi0gICAgICAg
ICAgICBTdHlsZTo6bG9hZFBlbmRpbmdSZXNvdXJjZXMoKnN0eWxlLCBlbGVtZW50LmRvY3VtZW50
KCksICZlbGVtZW50KTsKKyAgICAgICAgICAgIFN0eWxlOjpsb2FkUGVuZGluZ1Jlc291cmNlcygq
c3R5bGUsIG1fZWxlbWVudC0+ZG9jdW1lbnQoKSwgbV9lbGVtZW50KTsKICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>