<?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>195762</bug_id>
          
          <creation_ts>2019-03-14 14:13:42 -0700</creation_ts>
          <short_desc>Use enum class for AnimationMode</short_desc>
          <delta_ts>2019-03-14 15:12:15 -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>SVG</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>195722</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1516640</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-14 14:13:42 -0700</bug_when>
    <thetext>Use enum class for AnimationMode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516641</commentid>
    <comment_count>1</comment_count>
      <attachid>364685</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-14 14:16:40 -0700</bug_when>
    <thetext>Created attachment 364685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516683</commentid>
    <comment_count>2</comment_count>
      <attachid>364685</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-14 15:11:48 -0700</bug_when>
    <thetext>Comment on attachment 364685
Patch

Clearing flags on attachment: 364685

Committed r242970: &lt;https://trac.webkit.org/changeset/242970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516684</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-14 15:11:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516685</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-14 15:12:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/48903727&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364685</attachid>
            <date>2019-03-14 14:16:40 -0700</date>
            <delta_ts>2019-03-14 15:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195762-20190314141639.patch</filename>
            <type>text/plain</type>
            <size>29565</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Mjk2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAzLTE0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGVudW0g
Y2xhc3MgZm9yIEFuaW1hdGlvbk1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTc2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENvbnZlcnQgQW5pbWF0aW9uTW9kZSBpbnRvIGFuIGVudW0gY2xhc3Mu
CisKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50QmFzZTo6aXNBZGRpdGl2ZSBjb25z
dCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpjYWxjdWxhdGVGcm9tQW5kQnlWYWx1
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQ6OnVwZGF0ZUFuaW1hdGlvbk1vZGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEFuZ2xl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkQW5nbGVBbmltYXRvcjo6Y2FsY3Vs
YXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcjo6Y2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRDb2xvckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0b3I6OmNhbGN1bGF0ZUFu
aW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1h
dGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRl
Z2VyQW5pbWF0b3I6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUpOgorICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlZExlbmd0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExlbmd0aEFu
aW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWROdW1iZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWROdW1iZXJBbmlt
YXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZE51bWJlckxpc3RB
bmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlckFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKToKKyAgICAgICAg
KiBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW9BbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6Y2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6dXBkYXRlQW5pbWF0aW9uTW9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojppc0FkZGl0aXZlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWNjdW11bGF0ZWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6Y2FsY3VsYXRl
S2V5VGltZXNGb3JDYWxjTW9kZVBhY2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlv
bkVsZW1lbnQ6OnN0YXJ0ZWRBY3RpdmVJbnRlcnZhbCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdB
bmltYXRpb25FbGVtZW50Ojp1cGRhdGVBbmltYXRpb24pOgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRpb25FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRpb25FbGVtZW50Ojph
ZGp1c3RGcm9tVG9MaXN0VmFsdWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmFuaW1hdGVEaXNjcmV0ZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
aW9uRWxlbWVudDo6YW5pbWF0ZUFkZGl0aXZlTnVtYmVyKToKKyAgICAgICAgKiBzdmcvU1ZHU2V0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTZXRFbGVtZW50OjpTVkdTZXRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NldEVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvbk1v
ZGUpOgorCiAyMDE5LTAzLTE0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgQ29tbW9uQ3J5cHRvIFNQSSBkZWNsYXJhdGlvbnMgdG8gYW4gYXBwcm9w
cmlhdGUgUEFML3NwaSBoZWFkZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
RWxlbWVudEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiAyNDI5NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDExICsx
NjMsMTEgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmNhbGN1bGF0ZUZybwogICAgIGlm
ICghdGhpcy0+dGFyZ2V0RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoYW5pbWF0aW9uTW9kZSgpID09IEJ5QW5pbWF0aW9uICYmICFpc0FkZGl0aXZlKCkpCisgICAg
aWYgKGFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpCeSAmJiAhaXNBZGRpdGl2ZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBmcm9tLWJ5IGFuaW1hdGlvbiBtYXkg
b25seSBiZSB1c2VkIHdpdGggYXR0cmlidXRlcyB0aGF0IHN1cHBvcnQgYWRkaXRpb24gKGUuZy4g
bW9zdCBudW1lcmljIGF0dHJpYnV0ZXMpLgotICAgIGlmIChhbmltYXRpb25Nb2RlKCkgPT0gRnJv
bUJ5QW5pbWF0aW9uICYmICFhbmltYXRlZFByb3BlcnR5VHlwZVN1cHBvcnRzQWRkaXRpb24oKSkK
KyAgICBpZiAoYW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OkZyb21CeSAmJiAhYW5p
bWF0ZWRQcm9wZXJ0eVR5cGVTdXBwb3J0c0FkZGl0aW9uKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVCghaGFzVGFnTmFtZShTVkdOYW1lczo6c2V0VGFnKSk7CkBAIC00MTIs
NyArNDEyLDcgQEAgYm9vbCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmFuaW1hdGVkUHJvcAogCiBi
b29sIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6aXNBZGRpdGl2ZSgpIGNvbnN0CiB7Ci0gICAgaWYg
KGFuaW1hdGlvbk1vZGUoKSA9PSBCeUFuaW1hdGlvbiB8fCBhbmltYXRpb25Nb2RlKCkgPT0gRnJv
bUJ5QW5pbWF0aW9uKSB7CisgICAgaWYgKGFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2Rl
OjpCeSB8fCBhbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uTW9kZTo6RnJvbUJ5KSB7CiAgICAg
ICAgIGlmICghYW5pbWF0ZWRQcm9wZXJ0eVR5cGVTdXBwb3J0c0FkZGl0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDI5NTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzYsNyArMTc2LDcgQEAgYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2FsY3VsYXRl
RgogYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVz
KGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiBieVN0cmluZykKIHsKICAg
ICBtX2hhc1RvUG9pbnRBdEVuZE9mRHVyYXRpb24gPSBmYWxzZTsKLSAgICBpZiAoYW5pbWF0aW9u
TW9kZSgpID09IEJ5QW5pbWF0aW9uICYmICFpc0FkZGl0aXZlKCkpCisgICAgaWYgKGFuaW1hdGlv
bk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpCeSAmJiAhaXNBZGRpdGl2ZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgcGFyc2VQb2ludChmcm9tU3RyaW5nLCBtX2Zyb21Qb2ludCk7CiAg
ICAgRmxvYXRQb2ludCBieVBvaW50OwpAQCAtMjIyLDcgKzIyMiw3IEBAIHZvaWQgU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQ6OmNhbGN1bGF0ZUEKICAgICBpZiAoIWlzQWRkaXRpdmUoKSkKICAgICAg
ICAgdHJhbnNmb3JtLT5tYWtlSWRlbnRpdHkoKTsKIAotICAgIGlmIChhbmltYXRpb25Nb2RlKCkg
IT0gUGF0aEFuaW1hdGlvbikgeworICAgIGlmIChhbmltYXRpb25Nb2RlKCkgIT0gQW5pbWF0aW9u
TW9kZTo6UGF0aCkgewogICAgICAgICBGbG9hdFBvaW50IHRvUG9pbnRBdEVuZE9mRHVyYXRpb24g
PSBtX3RvUG9pbnQ7CiAgICAgICAgIGlmIChpc0FjY3VtdWxhdGVkKCkgJiYgcmVwZWF0Q291bnQg
JiYgbV9oYXNUb1BvaW50QXRFbmRPZkR1cmF0aW9uKQogICAgICAgICAgICAgdG9Qb2ludEF0RW5k
T2ZEdXJhdGlvbiA9IG1fdG9Qb2ludEF0RW5kT2ZEdXJhdGlvbjsKQEAgLTI4OCw3ICsyODgsNyBA
QCBmbG9hdCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2FsY3VsYXRlCiB2b2lkIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2RlKCkKIHsKICAgICBpZiAoIW1fYW5p
bWF0aW9uUGF0aC5pc0VtcHR5KCkpCi0gICAgICAgIHNldEFuaW1hdGlvbk1vZGUoUGF0aEFuaW1h
dGlvbik7CisgICAgICAgIHNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uTW9kZTo6UGF0aCk7CiAg
ICAgZWxzZQogICAgICAgICBTVkdBbmltYXRpb25FbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2Rl
KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuY3BwCShyZXZp
c2lvbiAyNDI5NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBTVkdBbmltYXRlZEFuZ2xlQW5p
bWF0b3I6OmNhbGN1bGF0ZQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFT
U0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZyb21BbmdsZUFuZEVu
dW1lcmF0aW9uID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5p
bWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8c3RkOjpwYWlyPFNWR0FuZ2xlVmFsdWUsIHVu
c2lnbmVkPj4oKTsKKyAgICBjb25zdCBhdXRvJiBmcm9tQW5nbGVBbmRFbnVtZXJhdGlvbiA9ICht
X2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpUbyA/
IGFuaW1hdGVkIDogZnJvbSktPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7CiAgICAgYXV0byYgdG9BbmdsZUFuZEVudW1lcmF0aW9uID0gdG8tPmFzPHN0ZDo6cGFpcjxT
VkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7CiAgICAgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25B
bmdsZUFuZEVudW1lcmF0aW9uID0gdG9BdEVuZE9mRHVyYXRpb24tPmFzPHN0ZDo6cGFpcjxTVkdB
bmdsZVZhbHVlLCB1bnNpZ25lZD4+KCk7CiAgICAgYXV0byYgYW5pbWF0ZWRBbmdsZUFuZEVudW1l
cmF0aW9uID0gYW5pbWF0ZWQtPmFzPHN0ZDo6cGFpcjxTVkdBbmdsZVZhbHVlLCB1bnNpZ25lZD4+
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAkocmV2
aXNpb24gMjQyOTU2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBTVkdBbmltYXRlZEJvb2xl
YW5BbmltYXRvcjo6Y2FsY3VsYQogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAg
IEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8gZnJvbUJvb2xlYW4g
PSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBh
bmltYXRlZCA6IGZyb20pLT5hczxib29sPigpOworICAgIGNvbnN0IGF1dG8gZnJvbUJvb2xlYW4g
PSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uTW9kZTo6
VG8gPyBhbmltYXRlZCA6IGZyb20pLT5hczxib29sPigpOwogICAgIGNvbnN0IGF1dG8gdG9Cb29s
ZWFuID0gdG8tPmFzPGJvb2w+KCk7CiAgICAgYXV0byYgYW5pbWF0ZWRCb29sZWFuID0gYW5pbWF0
ZWQtPmFzPGJvb2w+KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENv
bG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xv
ci5jcHAJKHJldmlzaW9uIDI0Mjk1NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZENvbG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFNWR0FuaW1h
dGVkQ29sb3JBbmltYXRvcjo6Y2FsY3VsYXRlCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVu
dCk7CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgYXV0byBmcm9tQ29sb3Ig
PSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBh
bmltYXRlZCA6IGZyb20pLT5hczxDb2xvcj4oKTsKKyAgICBhdXRvIGZyb21Db2xvciA9IChtX2Fu
aW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpUbyA/IGFu
aW1hdGVkIDogZnJvbSktPmFzPENvbG9yPigpOwogICAgIGF1dG8gdG9Db2xvciA9IHRvLT5hczxD
b2xvcj4oKTsKIAogICAgIC8vIEFwcGx5IENTUyBpbmhlcml0YW5jZSBydWxlcy4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAJKHJldmlzaW9u
IDI0Mjk1NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbkFuaW1hdG9yOjpjYWwKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAg
ICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBjb25zdCBhdXRvIGZyb21FbnVtZXJh
dGlvbiA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlv
biA/IGFuaW1hdGVkIDogZnJvbSktPmFzPHVuc2lnbmVkPigpOworICAgIGNvbnN0IGF1dG8gZnJv
bUVudW1lcmF0aW9uID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IEFu
aW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8dW5zaWduZWQ+KCk7CiAgICAg
Y29uc3QgYXV0byB0b0VudW1lcmF0aW9uID0gdG8tPmFzPHVuc2lnbmVkPigpOwogICAgIGF1dG8m
IGFuaW1hdGVkRW51bWVyYXRpb24gPSBhbmltYXRlZC0+YXM8dW5zaWduZWQ+KCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuY3BwCShyZXZpc2lvbiAyNDI5
NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50ZWdlckFuaW1hdG9y
OjpjYWxjdWxhCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
Y29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byBmcm9tSW50ZWdlciA9IChtX2FuaW1h
dGlvbkVsZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiA/IGFuaW1hdGVkIDog
ZnJvbSktPmFzPGludD4oKTsKKyAgICBjb25zdCBhdXRvIGZyb21JbnRlZ2VyID0gKG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0
ZWQgOiBmcm9tKS0+YXM8aW50PigpOwogICAgIGNvbnN0IGF1dG8gdG9JbnRlZ2VyID0gdG8tPmFz
PGludD4oKTsKICAgICBjb25zdCBhdXRvIHRvQXRFbmRPZkR1cmF0aW9uSW50ZWdlciA9IHRvQXRF
bmRPZkR1cmF0aW9uLT5hczxpbnQ+KCk7CiAgICAgYXV0byYgYW5pbWF0ZWRJbnRlZ2VyID0gYW5p
bWF0ZWQtPmFzPGludD4oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZElu
dGVnZXJPcHRpb25hbEludGVnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuY3BwCShyZXZpc2lvbiAyNDI5NTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFNWR0FuaW1hdGVkSW50
ZWdlck9wdGlvbmFsSW50ZWdlckFuCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAg
ICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbUludGVn
ZXJQYWlyID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0
aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKKyAgICBj
b25zdCBhdXRvJiBmcm9tSW50ZWdlclBhaXIgPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRp
b25Nb2RlKCkgPT0gQW5pbWF0aW9uTW9kZTo6VG8gPyBhbmltYXRlZCA6IGZyb20pLT5hczxzdGQ6
OnBhaXI8aW50LCBpbnQ+PigpOwogICAgIGNvbnN0IGF1dG8mIHRvSW50ZWdlclBhaXIgPSB0by0+
YXM8c3RkOjpwYWlyPGludCwgaW50Pj4oKTsKICAgICBjb25zdCBhdXRvJiB0b0F0RW5kT2ZEdXJh
dGlvbkludGVnZXJQYWlyID0gdG9BdEVuZE9mRHVyYXRpb24tPmFzPHN0ZDo6cGFpcjxpbnQsIGlu
dD4+KCk7CiAgICAgYXV0byYgYW5pbWF0ZWRJbnRlZ2VyUGFpciA9IGFuaW1hdGVkLT5hczxzdGQ6
OnBhaXI8aW50LCBpbnQ+PigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
TGVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRM
ZW5ndGguY3BwCShyZXZpc2lvbiAyNDI5NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgU1ZH
QW5pbWF0ZWRMZW5ndGhBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9hbmltYXRpb25F
bGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBhdXRvIGZyb21T
VkdMZW5ndGggPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZCA6IGZyb20pLT5hczxTVkdMZW5ndGhWYWx1ZT4oKTsKKyAgICBhdXRv
IGZyb21TVkdMZW5ndGggPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
QW5pbWF0aW9uTW9kZTo6VG8gPyBhbmltYXRlZCA6IGZyb20pLT5hczxTVkdMZW5ndGhWYWx1ZT4o
KTsKICAgICBhdXRvIHRvU1ZHTGVuZ3RoID0gdG8tPmFzPFNWR0xlbmd0aFZhbHVlPigpOwogICAg
IGNvbnN0IGF1dG8mIHRvQXRFbmRPZkR1cmF0aW9uU1ZHTGVuZ3RoID0gdG9BdEVuZE9mRHVyYXRp
b24tPmFzPFNWR0xlbmd0aFZhbHVlPigpOwogICAgIGF1dG8mIGFuaW1hdGVkU1ZHTGVuZ3RoID0g
YW5pbWF0ZWQtPmFzPFNWR0xlbmd0aFZhbHVlPigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAJKHJldmlzaW9uIDI0Mjk1NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05MCw3ICs5MCw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0QW5pbWF0b3I6OmNhbGMK
ICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxl
bWVudCk7CiAKLSAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+
YW5pbWF0aW9uTW9kZSgpID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8U1ZH
TGVuZ3RoTGlzdFZhbHVlcz4oKTsKKyAgICBhdXRvIGZyb21MZW5ndGhMaXN0ID0gKG1fYW5pbWF0
aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0
ZWQgOiBmcm9tKS0+YXM8U1ZHTGVuZ3RoTGlzdFZhbHVlcz4oKTsKICAgICBhdXRvIHRvTGVuZ3Ro
TGlzdCA9IHRvLT5hczxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOwogICAgIGNvbnN0IGF1dG8mIHRv
QXRFbmRPZkR1cmF0aW9uTGVuZ3RoTGlzdCA9IHRvQXRFbmRPZkR1cmF0aW9uLT5hczxTVkdMZW5n
dGhMaXN0VmFsdWVzPigpOwogICAgIGF1dG8mIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IGFuaW1hdGVk
LT5hczxTVkdMZW5ndGhMaXN0VmFsdWVzPigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXIuY3BwCShyZXZpc2lvbiAyNDI5NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBA
IHZvaWQgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvcjo6Y2FsY3VsYXQKICAgICBBU1NFUlQobV9h
bmltYXRpb25FbGVtZW50KTsKICAgICBBU1NFUlQobV9jb250ZXh0RWxlbWVudCk7CiAKLSAgICBh
dXRvIGZyb21OdW1iZXIgPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0g
VG9BbmltYXRpb24gPyBhbmltYXRlZCA6IGZyb20pLT5hczxmbG9hdD4oKTsKKyAgICBhdXRvIGZy
b21OdW1iZXIgPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0
aW9uTW9kZTo6VG8gPyBhbmltYXRlZCA6IGZyb20pLT5hczxmbG9hdD4oKTsKICAgICBhdXRvIHRv
TnVtYmVyID0gdG8tPmFzPGZsb2F0PigpOwogICAgIGNvbnN0IGF1dG8gdG9BdEVuZE9mRHVyYXRp
b25OdW1iZXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8ZmxvYXQ+KCk7CiAgICAgYXV0byYgYW5p
bWF0ZWROdW1iZXIgPSBhbmltYXRlZC0+YXM8ZmxvYXQ+KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAkocmV2aXNpb24gMjQyOTU2KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTVkdBbmltYXRlZE51bWJlckxpc3RBbmltYXRvcjo6
Y2FsYwogewogICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0
byYgZnJvbU51bWJlckxpc3QgPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkg
PT0gVG9BbmltYXRpb24gPyBhbmltYXRlZCA6IGZyb20pLT5hczxTVkdOdW1iZXJMaXN0VmFsdWVz
PigpOworICAgIGNvbnN0IGF1dG8mIGZyb21OdW1iZXJMaXN0ID0gKG1fYW5pbWF0aW9uRWxlbWVu
dC0+YW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0ZWQgOiBmcm9t
KS0+YXM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKTsKICAgICBjb25zdCBhdXRvJiB0b051bWJlckxp
c3QgPSB0by0+YXM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKTsKICAgICBjb25zdCBhdXRvJiB0b0F0
RW5kT2ZEdXJhdGlvbk51bWJlckxpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8U1ZHTnVtYmVy
TGlzdFZhbHVlcz4oKTsKICAgICBhdXRvJiBhbmltYXRlZE51bWJlckxpc3QgPSBhbmltYXRlZC0+
YXM8U1ZHTnVtYmVyTGlzdFZhbHVlcz4oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZE51bWJlck9wdGlvbmFsTnVtYmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5jcHAJKHJldmlzaW9uIDI0
Mjk1NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFNWR0FuaW1hdGVk
TnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7
CiAgICAgQVNTRVJUKG1fY29udGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbU51
bWJlclBhaXIgPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9Bbmlt
YXRpb24gPyBhbmltYXRlZCA6IGZyb20pLT5hczxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKTsK
KyAgICBjb25zdCBhdXRvJiBmcm9tTnVtYmVyUGFpciA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFu
aW1hdGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpUbyA/IGFuaW1hdGVkIDogZnJvbSktPmFz
PHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpOwogICAgIGNvbnN0IGF1dG8mIHRvTnVtYmVyUGFp
ciA9IHRvLT5hczxzdGQ6OnBhaXI8ZmxvYXQsIGZsb2F0Pj4oKTsKICAgICBjb25zdCBhdXRvJiB0
b0F0RW5kT2ZEdXJhdGlvbk51bWJlclBhaXIgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8c3RkOjpw
YWlyPGZsb2F0LCBmbG9hdD4+KCk7CiAgICAgYXV0byYgYW5pbWF0ZWROdW1iZXJQYWlyID0gYW5p
bWF0ZWQtPmFzPHN0ZDo6cGFpcjxmbG9hdCwgZmxvYXQ+PigpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDI0Mjk1NikKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNyArMTA4
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VS
VChtX2FuaW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAot
ICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IFRvQW5pbWF0aW9uOworICAgIGJvb2wgaXNUb0FuaW1hdGlvbiA9IG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OlRvOwogICAgIGF1dG8m
IGFuaW1hdGVkUGF0aCA9IGFuaW1hdGVkLT5hczxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKIAogICAg
IFNWR1BhdGhCeXRlU3RyZWFtIHVuZGVybHlpbmdQYXRoOwpJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCShyZXZpc2lvbiAyNDI5NTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Miw3ICs4Miw3IEBAIHZvaWQgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcjo6Y2FsY3UK
IHsKICAgICBBU1NFUlQobV9hbmltYXRpb25FbGVtZW50KTsKIAotICAgIGNvbnN0IGF1dG8mIGZy
b21Qb2ludExpc3QgPSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9B
bmltYXRpb24gPyBhbmltYXRlZCA6IGZyb20pLT5hczxTVkdQb2ludExpc3RWYWx1ZXM+KCk7Cisg
ICAgY29uc3QgYXV0byYgZnJvbVBvaW50TGlzdCA9IChtX2FuaW1hdGlvbkVsZW1lbnQtPmFuaW1h
dGlvbk1vZGUoKSA9PSBBbmltYXRpb25Nb2RlOjpUbyA/IGFuaW1hdGVkIDogZnJvbSktPmFzPFNW
R1BvaW50TGlzdFZhbHVlcz4oKTsKICAgICBjb25zdCBhdXRvJiB0b1BvaW50TGlzdCA9IHRvLT5h
czxTVkdQb2ludExpc3RWYWx1ZXM+KCk7CiAgICAgY29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRp
b25Qb2ludExpc3QgPSB0b0F0RW5kT2ZEdXJhdGlvbi0+YXM8U1ZHUG9pbnRMaXN0VmFsdWVzPigp
OwogICAgIGF1dG8mIGFuaW1hdGVkUG9pbnRMaXN0ID0gYW5pbWF0ZWQtPmFzPFNWR1BvaW50TGlz
dFZhbHVlcz4oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCShyZXZpc2lvbiAyNDI5NTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjksNyArNjksNyBAQCB2b2lkIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
b0FuaW1hCiAgICAgQVNTRVJUKG1fYW5pbWF0aW9uRWxlbWVudCk7CiAgICAgQVNTRVJUKG1fY29u
dGV4dEVsZW1lbnQpOwogCi0gICAgY29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8g
PSAobV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gVG9BbmltYXRpb24gPyBh
bmltYXRlZCA6IGZyb20pLT5hczxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7CisgICAg
Y29uc3QgYXV0byYgZnJvbVByZXNlcnZlQXNwZWN0UmF0aW8gPSAobV9hbmltYXRpb25FbGVtZW50
LT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uTW9kZTo6VG8gPyBhbmltYXRlZCA6IGZyb20p
LT5hczxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+KCk7CiAgICAgY29uc3QgYXV0byYgdG9Q
cmVzZXJ2ZUFzcGVjdFJhdGlvID0gdG8tPmFzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4o
KTsKICAgICBhdXRvJiBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBhbmltYXRlZC0+YXM8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRSZWN0LmNwcAkocmV2aXNpb24gMjQyOTU2KQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkUmVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAg
dm9pZCBTVkdBbmltYXRlZFJlY3RBbmltYXRvcjo6Y2FsY3VsYXRlQQogICAgIEFTU0VSVChtX2Fu
aW1hdGlvbkVsZW1lbnQpOwogICAgIEFTU0VSVChtX2NvbnRleHRFbGVtZW50KTsKIAotICAgIGNv
bnN0IGF1dG8mIGZyb21SZWN0ID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9kZSgp
ID09IFRvQW5pbWF0aW9uID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8RmxvYXRSZWN0PigpOworICAg
IGNvbnN0IGF1dG8mIGZyb21SZWN0ID0gKG1fYW5pbWF0aW9uRWxlbWVudC0+YW5pbWF0aW9uTW9k
ZSgpID09IEFuaW1hdGlvbk1vZGU6OlRvID8gYW5pbWF0ZWQgOiBmcm9tKS0+YXM8RmxvYXRSZWN0
PigpOwogICAgIGNvbnN0IGF1dG8mIHRvUmVjdCA9IHRvLT5hczxGbG9hdFJlY3Q+KCk7CiAgICAg
Y29uc3QgYXV0byYgdG9BdEVuZE9mRHVyYXRpb25SZWN0ID0gdG9BdEVuZE9mRHVyYXRpb24tPmFz
PEZsb2F0UmVjdD4oKTsKICAgICBhdXRvJiBhbmltYXRlZFJlY3QgPSBhbmltYXRlZC0+YXM8Rmxv
YXRSZWN0PigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3Jt
TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5jcHAJKHJldmlzaW9uIDI0Mjk1NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1
LDcgQEAgdm9pZCBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RBbmltYXRvcjo6YwogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBOZXZlciByZXNpemUgdGhlIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCB0
byB0aGUgdG9UcmFuc2Zvcm1MaXN0IHNpemUsIGluc3RlYWQgZWl0aGVyIGNsZWFyIHRoZSBsaXN0
IG9yIGFwcGVuZCB0byBpdC4KLSAgICBpZiAoIWFuaW1hdGVkVHJhbnNmb3JtTGlzdC5pc0VtcHR5
KCkgJiYgKCFtX2FuaW1hdGlvbkVsZW1lbnQtPmlzQWRkaXRpdmUoKSB8fCBtX2FuaW1hdGlvbkVs
ZW1lbnQtPmFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbikpCisgICAgaWYgKCFhbmltYXRl
ZFRyYW5zZm9ybUxpc3QuaXNFbXB0eSgpICYmICghbV9hbmltYXRpb25FbGVtZW50LT5pc0FkZGl0
aXZlKCkgfHwgbV9hbmltYXRpb25FbGVtZW50LT5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9u
TW9kZTo6VG8pKQogICAgICAgICBhbmltYXRlZFRyYW5zZm9ybUxpc3QuY2xlYXIoKTsKIAogICAg
IGF1dG8gZnJvbVRyYW5zZm9ybUxpc3RTaXplID0gZnJvbVRyYW5zZm9ybUxpc3Quc2l6ZSgpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAkocmV2aXNp
b24gMjQyOTU2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsMTMgKzI2OCwxMyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvCiB7CiAgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAw
MS9SRUMtc21pbC1hbmltYXRpb24tMjAwMTA5MDQvI0FuaW1GdW5jVmFsdWVzCiAgICAgaWYgKGhh
c0F0dHJpYnV0ZShTVkdOYW1lczo6dmFsdWVzQXR0cikpCi0gICAgICAgIHNldEFuaW1hdGlvbk1v
ZGUoVmFsdWVzQW5pbWF0aW9uKTsKKyAgICAgICAgc2V0QW5pbWF0aW9uTW9kZShBbmltYXRpb25N
b2RlOjpWYWx1ZXMpOwogICAgIGVsc2UgaWYgKCF0b1ZhbHVlKCkuaXNFbXB0eSgpKQotICAgICAg
ICBzZXRBbmltYXRpb25Nb2RlKGZyb21WYWx1ZSgpLmlzRW1wdHkoKSA/IFRvQW5pbWF0aW9uIDog
RnJvbVRvQW5pbWF0aW9uKTsKKyAgICAgICAgc2V0QW5pbWF0aW9uTW9kZShmcm9tVmFsdWUoKS5p
c0VtcHR5KCkgPyBBbmltYXRpb25Nb2RlOjpUbyA6IEFuaW1hdGlvbk1vZGU6OkZyb21Ubyk7CiAg
ICAgZWxzZSBpZiAoIWJ5VmFsdWUoKS5pc0VtcHR5KCkpCi0gICAgICAgIHNldEFuaW1hdGlvbk1v
ZGUoZnJvbVZhbHVlKCkuaXNFbXB0eSgpID8gQnlBbmltYXRpb24gOiBGcm9tQnlBbmltYXRpb24p
OworICAgICAgICBzZXRBbmltYXRpb25Nb2RlKGZyb21WYWx1ZSgpLmlzRW1wdHkoKSA/IEFuaW1h
dGlvbk1vZGU6OkJ5IDogQW5pbWF0aW9uTW9kZTo6RnJvbUJ5KTsKICAgICBlbHNlCi0gICAgICAg
IHNldEFuaW1hdGlvbk1vZGUoTm9BbmltYXRpb24pOworICAgICAgICBzZXRBbmltYXRpb25Nb2Rl
KEFuaW1hdGlvbk1vZGU6Ok5vbmUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnNl
dENhbGNNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYgY2FsY01vZGUpCkBAIC0zMjcsMTQgKzMyNywx
NCBAQCBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzQWRkaXRpdmUoKSBjCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gc3VtKCJzdW0iLCBBdG9taWNT
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1lczo6YWRkaXRpdmVB
dHRyKTsKLSAgICByZXR1cm4gdmFsdWUgPT0gc3VtIHx8IGFuaW1hdGlvbk1vZGUoKSA9PSBCeUFu
aW1hdGlvbjsKKyAgICByZXR1cm4gdmFsdWUgPT0gc3VtIHx8IGFuaW1hdGlvbk1vZGUoKSA9PSBB
bmltYXRpb25Nb2RlOjpCeTsKIH0KIAogYm9vbCBTVkdBbmltYXRpb25FbGVtZW50Ojppc0FjY3Vt
dWxhdGVkKCkgY29uc3QKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBzdW0oInN1bSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFNWR05hbWVzOjphY2N1bXVsYXRlQXR0cik7Ci0gICAgcmV0dXJuIHZhbHVlID09IHN1
bSAmJiBhbmltYXRpb25Nb2RlKCkgIT0gVG9BbmltYXRpb247CisgICAgcmV0dXJuIHZhbHVlID09
IHN1bSAmJiBhbmltYXRpb25Nb2RlKCkgIT0gQW5pbWF0aW9uTW9kZTo6VG87CiB9CiAKIGJvb2wg
U1ZHQW5pbWF0aW9uRWxlbWVudDo6aXNUYXJnZXRBdHRyaWJ1dGVDU1NQcm9wZXJ0eShTVkdFbGVt
ZW50KiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQpAQCAtMzY5
LDcgKzM2OSw3IEBAIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OlNob3VsZEFwcGx5QW5pbWF0aW8KIHZv
aWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6Y2FsY3VsYXRlS2V5VGltZXNGb3JDYWxjTW9kZVBhY2Vk
KCkKIHsKICAgICBBU1NFUlQoY2FsY01vZGUoKSA9PSBDYWxjTW9kZTo6UGFjZWQpOwotICAgIEFT
U0VSVChhbmltYXRpb25Nb2RlKCkgPT0gVmFsdWVzQW5pbWF0aW9uKTsKKyAgICBBU1NFUlQoYW5p
bWF0aW9uTW9kZSgpID09IEFuaW1hdGlvbk1vZGU6OlZhbHVlcyk7CiAKICAgICB1bnNpZ25lZCB2
YWx1ZXNDb3VudCA9IG1fdmFsdWVzLnNpemUoKTsKICAgICBBU1NFUlQodmFsdWVzQ291bnQgPj0g
MSk7CkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpzdGFydGVk
QWN0aXZlSQogICAgICAgICB1bnNpZ25lZCBzcGxpbmVzQ291bnQgPSBtX2tleVNwbGluZXMuc2l6
ZSgpOwogICAgICAgICBpZiAoIXNwbGluZXNDb3VudAogICAgICAgICAgICAgfHwgKGhhc0F0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OmtleVBvaW50c0F0dHIpICYmIG1f
a2V5UG9pbnRzLnNpemUoKSAtIDEgIT0gc3BsaW5lc0NvdW50KQotICAgICAgICAgICAgfHwgKGFu
aW1hdGlvbk1vZGUgPT0gVmFsdWVzQW5pbWF0aW9uICYmIG1fdmFsdWVzLnNpemUoKSAtIDEgIT0g
c3BsaW5lc0NvdW50KQorICAgICAgICAgICAgfHwgKGFuaW1hdGlvbk1vZGUgPT0gQW5pbWF0aW9u
TW9kZTo6VmFsdWVzICYmIG1fdmFsdWVzLnNpemUoKSAtIDEgIT0gc3BsaW5lc0NvdW50KQogICAg
ICAgICAgICAgfHwgKGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6
OmtleVRpbWVzQXR0cikgJiYgbV9rZXlUaW1lcy5zaXplKCkgLSAxICE9IHNwbGluZXNDb3VudCkp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTYyLDIyICs1NjIsMjIgQEAgdm9pZCBT
VkdBbmltYXRpb25FbGVtZW50OjpzdGFydGVkQWN0aXZlSQogICAgIFN0cmluZyBmcm9tID0gZnJv
bVZhbHVlKCk7CiAgICAgU3RyaW5nIHRvID0gdG9WYWx1ZSgpOwogICAgIFN0cmluZyBieSA9IGJ5
VmFsdWUoKTsKLSAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBOb0FuaW1hdGlvbikKKyAgICBpZiAo
YW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpOb25lKQogICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKChhbmltYXRpb25Nb2RlID09IEZyb21Ub0FuaW1hdGlvbiB8fCBhbmltYXRpb25Nb2Rl
ID09IEZyb21CeUFuaW1hdGlvbiB8fCBhbmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uIHx8IGFu
aW1hdGlvbk1vZGUgPT0gQnlBbmltYXRpb24pCisgICAgaWYgKChhbmltYXRpb25Nb2RlID09IEFu
aW1hdGlvbk1vZGU6OkZyb21UbyB8fCBhbmltYXRpb25Nb2RlID09IEFuaW1hdGlvbk1vZGU6OkZy
b21CeSB8fCBhbmltYXRpb25Nb2RlID09IEFuaW1hdGlvbk1vZGU6OlRvIHx8IGFuaW1hdGlvbk1v
ZGUgPT0gQW5pbWF0aW9uTW9kZTo6QnkpCiAgICAgICAgICYmIChoYXNBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjprZXlQb2ludHNBdHRyKSAmJiBoYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjprZXlUaW1lc0F0dHIpICYmIChtX2tleVRp
bWVzLnNpemUoKSA8IDIgfHwgbV9rZXlUaW1lcy5zaXplKCkgIT0gbV9rZXlQb2ludHMuc2l6ZSgp
KSkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoYW5pbWF0aW9uTW9kZSA9PSBGcm9tVG9Bbmlt
YXRpb24pCisgICAgaWYgKGFuaW1hdGlvbk1vZGUgPT0gQW5pbWF0aW9uTW9kZTo6RnJvbVRvKQog
ICAgICAgICBtX2FuaW1hdGlvblZhbGlkID0gY2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKGZyb20s
IHRvKTsKLSAgICBlbHNlIGlmIChhbmltYXRpb25Nb2RlID09IFRvQW5pbWF0aW9uKSB7CisgICAg
ZWxzZSBpZiAoYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpUbykgewogICAgICAgICAv
LyBGb3IgdG8tYW5pbWF0aW9ucyB0aGUgZnJvbSB2YWx1ZSBpcyB0aGUgY3VycmVudCBhY2N1bXVs
YXRlZCB2YWx1ZSBmcm9tIGxvd2VyIHByaW9yaXR5IGFuaW1hdGlvbnMuCiAgICAgICAgIC8vIFRo
ZSB2YWx1ZSBpcyBub3Qgc3RhdGljIGFuZCBpcyBkZXRlcm1pbmVkIGR1cmluZyB0aGUgYW5pbWF0
aW9uLgogICAgICAgICBtX2FuaW1hdGlvblZhbGlkID0gY2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVz
KGVtcHR5U3RyaW5nKCksIHRvKTsKLSAgICB9IGVsc2UgaWYgKGFuaW1hdGlvbk1vZGUgPT0gRnJv
bUJ5QW5pbWF0aW9uKQorICAgIH0gZWxzZSBpZiAoYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25N
b2RlOjpGcm9tQnkpCiAgICAgICAgIG1fYW5pbWF0aW9uVmFsaWQgPSBjYWxjdWxhdGVGcm9tQW5k
QnlWYWx1ZXMoZnJvbSwgYnkpOwotICAgIGVsc2UgaWYgKGFuaW1hdGlvbk1vZGUgPT0gQnlBbmlt
YXRpb24pCisgICAgZWxzZSBpZiAoYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpCeSkK
ICAgICAgICAgbV9hbmltYXRpb25WYWxpZCA9IGNhbGN1bGF0ZUZyb21BbmRCeVZhbHVlcyhlbXB0
eVN0cmluZygpLCBieSk7Ci0gICAgZWxzZSBpZiAoYW5pbWF0aW9uTW9kZSA9PSBWYWx1ZXNBbmlt
YXRpb24pIHsKKyAgICBlbHNlIGlmIChhbmltYXRpb25Nb2RlID09IEFuaW1hdGlvbk1vZGU6OlZh
bHVlcykgewogICAgICAgICBtX2FuaW1hdGlvblZhbGlkID0gbV92YWx1ZXMuc2l6ZSgpID49IDEK
ICAgICAgICAgICAgICYmIChjYWxjTW9kZSA9PSBDYWxjTW9kZTo6UGFjZWQgfHwgIWhhc0F0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OmtleVRpbWVzQXR0cikgfHwgaGFz
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1lczo6a2V5UG9pbnRzQXR0cikg
fHwgKG1fdmFsdWVzLnNpemUoKSA9PSBtX2tleVRpbWVzLnNpemUoKSkpCiAgICAgICAgICAgICAm
JiAoY2FsY01vZGUgPT0gQ2FsY01vZGU6OkRpc2NyZXRlIHx8ICFtX2tleVRpbWVzLnNpemUoKSB8
fCBtX2tleVRpbWVzLmxhc3QoKSA9PSAxKQpAQCAtNTg3LDcgKzU4Nyw3IEBAIHZvaWQgU1ZHQW5p
bWF0aW9uRWxlbWVudDo6c3RhcnRlZEFjdGl2ZUkKICAgICAgICAgICAgIG1fYW5pbWF0aW9uVmFs
aWQgPSBjYWxjdWxhdGVUb0F0RW5kT2ZEdXJhdGlvblZhbHVlKG1fdmFsdWVzLmxhc3QoKSk7CiAg
ICAgICAgIGlmIChjYWxjTW9kZSA9PSBDYWxjTW9kZTo6UGFjZWQgJiYgbV9hbmltYXRpb25WYWxp
ZCkKICAgICAgICAgICAgIGNhbGN1bGF0ZUtleVRpbWVzRm9yQ2FsY01vZGVQYWNlZCgpOwotICAg
IH0gZWxzZSBpZiAoYW5pbWF0aW9uTW9kZSA9PSBQYXRoQW5pbWF0aW9uKQorICAgIH0gZWxzZSBp
ZiAoYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpQYXRoKQogICAgICAgICBtX2FuaW1h
dGlvblZhbGlkID0gY2FsY01vZGUgPT0gQ2FsY01vZGU6OlBhY2VkIHx8ICFoYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjprZXlQb2ludHNBdHRyKSB8fCAobV9rZXlU
aW1lcy5zaXplKCkgPiAxICYmIG1fa2V5VGltZXMuc2l6ZSgpID09IG1fa2V5UG9pbnRzLnNpemUo
KSk7CiB9CiAKQEAgLTU5OSw3ICs1OTksNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnVw
ZGF0ZUFuaW1hdGlvCiAgICAgZmxvYXQgZWZmZWN0aXZlUGVyY2VudDsKICAgICBDYWxjTW9kZSBj
YWxjTW9kZSA9IHRoaXMtPmNhbGNNb2RlKCk7CiAgICAgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25N
b2RlID0gdGhpcy0+YW5pbWF0aW9uTW9kZSgpOwotICAgIGlmIChhbmltYXRpb25Nb2RlID09IFZh
bHVlc0FuaW1hdGlvbikgeworICAgIGlmIChhbmltYXRpb25Nb2RlID09IEFuaW1hdGlvbk1vZGU6
OlZhbHVlcykgewogICAgICAgICBTdHJpbmcgZnJvbTsKICAgICAgICAgU3RyaW5nIHRvOwogICAg
ICAgICBjdXJyZW50VmFsdWVzRm9yVmFsdWVzQW5pbWF0aW9uKHBlcmNlbnQsIGVmZmVjdGl2ZVBl
cmNlbnQsIGZyb20sIHRvKTsKQEAgLTYxNCw3ICs2MTQsNyBAQCB2b2lkIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OnVwZGF0ZUFuaW1hdGlvCiAgICAgICAgIGVmZmVjdGl2ZVBlcmNlbnQgPSBjYWxjdWxh
dGVQZXJjZW50RnJvbUtleVBvaW50cyhwZXJjZW50KTsKICAgICBlbHNlIGlmIChtX2tleVBvaW50
cy5pc0VtcHR5KCkgJiYgY2FsY01vZGUgPT0gQ2FsY01vZGU6OlNwbGluZSAmJiBtX2tleVRpbWVz
LnNpemUoKSA+IDEpCiAgICAgICAgIGVmZmVjdGl2ZVBlcmNlbnQgPSBjYWxjdWxhdGVQZXJjZW50
Rm9yU3BsaW5lKHBlcmNlbnQsIGNhbGN1bGF0ZUtleVRpbWVzSW5kZXgocGVyY2VudCkpOwotICAg
IGVsc2UgaWYgKGFuaW1hdGlvbk1vZGUgPT0gRnJvbVRvQW5pbWF0aW9uIHx8IGFuaW1hdGlvbk1v
ZGUgPT0gVG9BbmltYXRpb24pCisgICAgZWxzZSBpZiAoYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRp
b25Nb2RlOjpGcm9tVG8gfHwgYW5pbWF0aW9uTW9kZSA9PSBBbmltYXRpb25Nb2RlOjpUbykKICAg
ICAgICAgZWZmZWN0aXZlUGVyY2VudCA9IGNhbGN1bGF0ZVBlcmNlbnRGb3JGcm9tVG8ocGVyY2Vu
dCk7CiAgICAgZWxzZQogICAgICAgICBlZmZlY3RpdmVQZXJjZW50ID0gcGVyY2VudDsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMjQyOTU2
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsMjEgKzM2LDIxIEBAIGNsYXNzIENvbmRpdGlvbkV2ZW50TGlzdGVuZXI7CiBj
bGFzcyBTVkdBbmltYXRlZFR5cGU7CiBjbGFzcyBUaW1lQ29udGFpbmVyOwogCi1lbnVtIEFuaW1h
dGlvbk1vZGUgewotICAgIE5vQW5pbWF0aW9uLAotICAgIEZyb21Ub0FuaW1hdGlvbiwKLSAgICBG
cm9tQnlBbmltYXRpb24sCi0gICAgVG9BbmltYXRpb24sCi0gICAgQnlBbmltYXRpb24sCi0gICAg
VmFsdWVzQW5pbWF0aW9uLAotICAgIFBhdGhBbmltYXRpb24gLy8gVXNlZCBieSBBbmltYXRlTW90
aW9uLgorZW51bSBjbGFzcyBBbmltYXRpb25Nb2RlIDogdWludDhfdCB7CisgICAgTm9uZSwKKyAg
ICBGcm9tVG8sCisgICAgRnJvbUJ5LAorICAgIFRvLAorICAgIEJ5LAorICAgIFZhbHVlcywKKyAg
ICBQYXRoIC8vIFVzZWQgYnkgQW5pbWF0ZU1vdGlvbi4KIH07CiAKIC8vIElmIHdlIGhhdmUgJ2N1
cnJlbnRDb2xvcicgb3IgJ2luaGVyaXQnIGFzIGFuaW1hdGlvbiB2YWx1ZSwgd2UgbmVlZCB0byBn
cmFiCiAvLyB0aGUgdmFsdWUgZHVyaW5nIHRoZSBhbmltYXRpb24gc2luY2UgdGhlIHZhbHVlIGNh
biBiZSBhbmltYXRlZCBpdHNlbGYuCiBlbnVtIEFuaW1hdGVkUHJvcGVydHlWYWx1ZVR5cGUgeyBS
ZWd1bGFyUHJvcGVydHlWYWx1ZSwgQ3VycmVudENvbG9yVmFsdWUsIEluaGVyaXRWYWx1ZSB9Owog
Ci1lbnVtIGNsYXNzIENhbGNNb2RlIHsgRGlzY3JldGUsIExpbmVhciwgUGFjZWQsIFNwbGluZSB9
OworZW51bSBjbGFzcyBDYWxjTW9kZSA6IHVpbnQ4X3QgeyBEaXNjcmV0ZSwgTGluZWFyLCBQYWNl
ZCwgU3BsaW5lIH07CiAKIGNsYXNzIFNWR0FuaW1hdGlvbkVsZW1lbnQgOiBwdWJsaWMgU1ZHU01J
TEVsZW1lbnQsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBwdWJsaWMgU1ZH
VGVzdHMgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU1ZHQW5pbWF0aW9uRWxlbWVudCk7
CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBmcm9tTGlzdFNp
emUgPSBmcm9tTGlzdC5zaXplKCk7CiAgICAgICAgIGlmIChmcm9tTGlzdFNpemUgIT0gdG9MaXN0
U2l6ZSAmJiBmcm9tTGlzdFNpemUpIHsKICAgICAgICAgICAgIGlmIChwZXJjZW50YWdlIDwgMC41
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFuaW1hdGlvbk1vZGUoKSAhPSBUb0FuaW1hdGlvbikK
KyAgICAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uTW9kZSgpICE9IEFuaW1hdGlvbk1vZGU6OlRv
KQogICAgICAgICAgICAgICAgICAgICBhbmltYXRlZExpc3QgPSBBbmltYXRlZFR5cGUoZnJvbUxp
c3QpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYW5pbWF0ZWRMaXN0ID0g
QW5pbWF0ZWRUeXBlKHRvTGlzdCk7CkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQW5pbWF0ZWRUeXBlPiB2b2lkIGFuaW1hdGVEaXNjcmV0ZVR5cGUo
ZmxvYXQgcGVyY2VudGFnZSwgY29uc3QgQW5pbWF0ZWRUeXBlJiBmcm9tVHlwZSwgY29uc3QgQW5p
bWF0ZWRUeXBlJiB0b1R5cGUsIEFuaW1hdGVkVHlwZSYgYW5pbWF0ZWRUeXBlKQogICAgIHsKLSAg
ICAgICAgaWYgKChhbmltYXRpb25Nb2RlKCkgPT0gRnJvbVRvQW5pbWF0aW9uICYmIHBlcmNlbnRh
Z2UgPiAwLjUpIHx8IGFuaW1hdGlvbk1vZGUoKSA9PSBUb0FuaW1hdGlvbiB8fCBwZXJjZW50YWdl
ID09IDEpIHsKKyAgICAgICAgaWYgKChhbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uTW9kZTo6
RnJvbVRvICYmIHBlcmNlbnRhZ2UgPiAwLjUpIHx8IGFuaW1hdGlvbk1vZGUoKSA9PSBBbmltYXRp
b25Nb2RlOjpUbyB8fCBwZXJjZW50YWdlID09IDEpIHsKICAgICAgICAgICAgIGFuaW1hdGVkVHlw
ZSA9IEFuaW1hdGVkVHlwZSh0b1R5cGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAoaXNBY2N1bXVsYXRlZCgp
ICYmIHJlcGVhdENvdW50KQogICAgICAgICAgICAgbnVtYmVyICs9IHRvQXRFbmRPZkR1cmF0aW9u
TnVtYmVyICogcmVwZWF0Q291bnQ7CiAKLSAgICAgICAgaWYgKGlzQWRkaXRpdmUoKSAmJiBhbmlt
YXRpb25Nb2RlKCkgIT0gVG9BbmltYXRpb24pCisgICAgICAgIGlmIChpc0FkZGl0aXZlKCkgJiYg
YW5pbWF0aW9uTW9kZSgpICE9IEFuaW1hdGlvbk1vZGU6OlRvKQogICAgICAgICAgICAgYW5pbWF0
ZWROdW1iZXIgKz0gbnVtYmVyOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhbmltYXRlZE51
bWJlciA9IG51bWJlcjsKQEAgLTIyMCw3ICsyMjAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2xhc3RWYWx1ZXNBbmltYXRpb25UbzsKICAgICBib29sIG1faGFzSW52YWxpZENTU0F0dHJpYnV0
ZVR5cGUgeyBmYWxzZSB9OwogICAgIENhbGNNb2RlIG1fY2FsY01vZGUgeyBDYWxjTW9kZTo6TGlu
ZWFyIH07Ci0gICAgQW5pbWF0aW9uTW9kZSBtX2FuaW1hdGlvbk1vZGUgeyBOb0FuaW1hdGlvbiB9
OworICAgIEFuaW1hdGlvbk1vZGUgbV9hbmltYXRpb25Nb2RlIHsgQW5pbWF0aW9uTW9kZTo6Tm9u
ZSB9OwogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRo
aXMgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5jcHAJKHJldmlz
aW9uIDI0Mjk1NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
U1ZHU2V0RWxlbWVuCiBpbmxpbmUgU1ZHU2V0RWxlbWVudDo6U1ZHU2V0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UodGFnTmFtZSwgZG9jdW1lbnQpCiB7Ci0gICAgc2V0QW5pbWF0aW9uTW9k
ZShUb0FuaW1hdGlvbik7CisgICAgc2V0QW5pbWF0aW9uTW9kZShBbmltYXRpb25Nb2RlOjpUbyk7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNldFRhZykpOwogfQogCkBAIC00Miw3
ICs0Miw3IEBAIFJlZjxTVkdTZXRFbGVtZW50PiBTVkdTZXRFbGVtZW50OjpjcmVhdGUKIAogdm9p
ZCBTVkdTZXRFbGVtZW50Ojp1cGRhdGVBbmltYXRpb25Nb2RlKCkKIHsKLSAgICAvLyBOby1vcCwg
YXMgPHNldD4gaGFzIGEgY29uc3RhbnQgYW5pbWF0aW9uIG1vZGUgb2YgVG9BbmltYXRpb24uCisg
ICAgLy8gTm8tb3AsIGFzIDxzZXQ+IGhhcyBhIGNvbnN0YW50IGFuaW1hdGlvbiBtb2RlIG9mIEFu
aW1hdGlvbk1vZGU6OlRvLgogICAgIC8vIFNlZTogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL3Np
bmdsZS1wYWdlLmh0bWwjYW5pbWF0ZS1TZXRFbGVtZW50CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>