<?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>169472</bug_id>
          
          <creation_ts>2017-03-10 09:16:13 -0800</creation_ts>
          <short_desc>Move libwebrtc backend to using tracks</short_desc>
          <delta_ts>2017-03-10 16:46:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>169491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1285818</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-10 09:16:13 -0800</bug_when>
    <thetext>We should move to the newer libwebrtc API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285821</commentid>
    <comment_count>1</comment_count>
      <attachid>304047</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-10 09:26:47 -0800</bug_when>
    <thetext>Created attachment 304047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285822</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 09:27:37 -0800</bug_when>
    <thetext>Attachment 304047 did not pass style-queue:


ERROR: Source/WebCore/testing/MockLibWebRTCPeerConnection.h:209:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/testing/MockLibWebRTCPeerConnection.h:215:  media_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/testing/MockLibWebRTCPeerConnection.h:217:  stream_ids is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285841</commentid>
    <comment_count>3</comment_count>
      <attachid>304052</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-10 10:09:27 -0800</bug_when>
    <thetext>Created attachment 304052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285842</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 10:11:17 -0800</bug_when>
    <thetext>Attachment 304052 did not pass style-queue:


ERROR: Source/WebCore/testing/MockLibWebRTCPeerConnection.h:209:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/testing/MockLibWebRTCPeerConnection.h:215:  media_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/testing/MockLibWebRTCPeerConnection.h:217:  stream_ids is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285848</commentid>
    <comment_count>5</comment_count>
      <attachid>304052</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-10 10:49:18 -0800</bug_when>
    <thetext>Comment on attachment 304052
Patch

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

&gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:177
&gt; +    if (source.type() == RealtimeMediaSource::Audio) {

I think Type should be made an enum class instead of an enum and this should be made a switch statement.  Right now we are assuming that if a media source is not audio it is video, when there are three values in RealtimeMediaSource::Type.  That might be a good assumption, but I think switching on enums is good practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285904</commentid>
    <comment_count>6</comment_count>
      <attachid>304071</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-10 13:56:46 -0800</bug_when>
    <thetext>Created attachment 304071
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285962</commentid>
    <comment_count>7</comment_count>
      <attachid>304092</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-10 16:18:51 -0800</bug_when>
    <thetext>Created attachment 304092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285982</commentid>
    <comment_count>8</comment_count>
      <attachid>304071</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 16:46:48 -0800</bug_when>
    <thetext>Comment on attachment 304071
Patch for landing

Clearing flags on attachment: 304071

Committed r213736: &lt;http://trac.webkit.org/changeset/213736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285983</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-10 16:46:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304047</attachid>
            <date>2017-03-10 09:26:47 -0800</date>
            <delta_ts>2017-03-10 10:09:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169472-20170310092647.patch</filename>
            <type>text/plain</type>
            <size>34945</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA2ODg1Yjg0OGYzODllMjE5M2U2NWQwZmEzNjE1N2FiYTc1NGNiNmUwLi5mMjFl
NjhiMmE1ZWU2NGVmNTc5NTRkMDhiODA4NmI2OTk2M2QxNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMy0xMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsaWJ3ZWJydGMgYmFja2Vu
ZCB0byB1c2luZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2OTQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5jYzogTW92aW5n
IGZyb20gdXNpbmcgbWVkaWEgc3RyZWFtIHRvIHRyYWNrcy4KKwogMjAxNy0wMy0wOCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIEgyNjQgaGFyZHdhcmUg
ZW5jb2RlciBmb3IgTWFjIGxpYndlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFhNTY2MjdkZDE2NzIxN2Ux
NTM5MTg3NjI5OThiMzRkNDBmMjkwZDcuLjkyM2IyOGExNDBhOTFkYzY4ZWJiODMzODhhYjI1MzJm
YzcwN2IwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxNy0wMy0xMCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsaWJ3ZWJydGMgYmFj
a2VuZCB0byB1c2luZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvdmVyZWQgYnkgY3VycmVudCB0ZXN0IHNldHMuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgYWxsb3dzIHRvIG1vdmUgYXdheSBmcm9tIHN0cmVhbXMgYW5kIHVzZSBtb3JlIHRy
YWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgZnV0dXJlIGJldHRlciBhbGlnbm1lbnQgd2l0aCB0
aGUgc3BlYyBhbmQgYmV0dGVyIGltcGxlbWVudGF0aW9uIG9mIHNlbmRlci9yZWNlb3Zlci90cmFu
c2NlaXZlci4KKworICAgICAgICBTbWFsbCByZWZhY3RvcmluZyB0byB1c2UgbW9yZSBSZWY8PiBp
biBXZWJSVEMgdHJhY2stYmFzZWQgY29kZS4KKyAgICAgICAgQWRkZWQgYSBub3RpZnlBZGRlZFRy
YWNrIHRvIG5vdGlmeSB0aGUgYmFja2VuZCB0aGF0IGEgdHJhY2sgd2FzIGFkZGVkLgorICAgICAg
ICBGb3IgbGlid2VicnRjLCB0aGlzIGFsbG93cyBjYWxsaW5nIEFkZFRyYWNrIGJlZm9yZSBtYWtp
bmcgdGhlIG9mZmVyLgorICAgICAgICBVcGRhdGVkIG1vY2sgbGlid2VicnRjIGJhY2tlbmQgYWNj
b3JkaW5nbHkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OnJlcGxhY2VUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFja1Rhc2spOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6bm90aWZ5QWRkZWRUcmFjayk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVl
ckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6c2V0VHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2VuZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlQW5zd2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmdldFN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZG9BZGRJY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpub3RpZnlBZGRlZFRyYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkFkZFRyYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6UmVtb3ZlVHJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpDcmVhdGVPZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkNyZWF0
ZUFuc3dlcik6CisgICAgICAgICogdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5kZXI6Ok1vY2tSdHBTZW5kZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1J0cFNlbmRlcjo6c3NyYyk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrUnRwU2VuZGVyOjptZWRpYV90eXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5k
ZXI6OmlkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5kZXI6OnN0cmVhbV9pZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1J0cFNlbmRlcjo6R2V0UGFyYW1ldGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrUnRwU2VuZGVyOjpTZXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tSdHBTZW5kZXI6OkdldER0bWZTZW5kZXIpOgorCiAyMDE3LTAzLTA4ICBNYXR0IFJh
amNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBMZXQgY2xpZW50cyBjb250cm9sIGF1
dG9wbGF5IHF1aXJrcyB3aXRoIHdlYnNpdGUgcG9saWNpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3J0Y3N0YXRz
Y29sbGVjdG9yLmNjCmluZGV4IDM0N2JjYTUzZWEwMWM0NTlmNjZiNTlkNDhiZDA2MTZmNWFkZWYy
NmYuLjVmNTJhOTg4Y2I0OWNhM2I5ZTU4ODEwYzdhMThjZTgyYzM2MDI2M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3J0Y3N0YXRzY29s
bGVjdG9yLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3BjL3J0Y3N0YXRzY29sbGVjdG9yLmNjCkBAIC0xMTk4LDYgKzExOTgsMjAgQEAgc3RkOjptYXA8
TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZSosIHN0ZDo6c3RyaW5nPgogUlRDU3RhdHNDb2xsZWN0
b3I6OlByZXBhcmVUcmFja1RvSURfcygpIGNvbnN0IHsKICAgUlRDX0RDSEVDSyhzaWduYWxpbmdf
dGhyZWFkXy0+SXNDdXJyZW50KCkpOwogICBzdGQ6Om1hcDxNZWRpYVN0cmVhbVRyYWNrSW50ZXJm
YWNlKiwgc3RkOjpzdHJpbmc+IHRyYWNrX3RvX2lkOworI2lmIGRlZmluZWQoV0VCUlRDX1dFQktJ
VF9CVUlMRCkKKyAgZm9yIChhdXRvJiBzZW5kZXIgOiBwY18tPkdldFNlbmRlcnMoKSkgeworICAg
IGF1dG8gdHJhY2sgPSBzZW5kZXItPnRyYWNrKCk7CisgICAgaWYgKCF0cmFjaykKKyAgICAgIGNv
bnRpbnVlOworICAgIHRyYWNrX3RvX2lkW3RyYWNrLmdldCgpXSA9IHRyYWNrLT5pZCgpOworICB9
CisgIGZvciAoYXV0byYgcmVjZWl2ZXIgOiBwY18tPkdldFJlY2VpdmVycygpKSB7CisgICAgYXV0
byB0cmFjayA9IHJlY2VpdmVyLT50cmFjaygpOworICAgIGlmICghdHJhY2spCisgICAgICBjb250
aW51ZTsKKyAgICB0cmFja190b19pZFt0cmFjay5nZXQoKV0gPSB0cmFjay0+aWQoKTsKKyAgfQor
I2Vsc2UKICAgU3RyZWFtQ29sbGVjdGlvbkludGVyZmFjZSogbG9jYWxfYW5kX3JlbW90ZV9zdHJl
YW1zW10gPQogICAgICAgeyBwY18tPmxvY2FsX3N0cmVhbXMoKS5nZXQoKSwgcGNfLT5yZW1vdGVf
c3RyZWFtcygpLmdldCgpIH07CiAgIGZvciAoYXV0byYgc3RyZWFtcyA6IGxvY2FsX2FuZF9yZW1v
dGVfc3RyZWFtcykgewpAQCAtMTIxNSw2ICsxMjI5LDcgQEAgUlRDU3RhdHNDb2xsZWN0b3I6OlBy
ZXBhcmVUcmFja1RvSURfcygpIGNvbnN0IHsKICAgICAgIH0KICAgICB9CiAgIH0KKyNlbmRpZgog
ICByZXR1cm4gdHJhY2tfdG9faWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmNwcAppbmRleCAxNGVlMGY1ZDMxODMzOTE0ZTgyZTQ4NGFmNTQyNTMyZmY4NGY0N2JmLi5iMzcw
NTQ0Mzk1NDBjN2M4MDBmMDJlMDc0NTRkMzhlZjEzM2VlYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uY3BwCkBAIC02OTMsNyArNjkzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJU
Q0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVE
YXRhQ2gKICAgICByZXR1cm4gbV9tZWRpYUVuZHBvaW50LT5jcmVhdGVEYXRhQ2hhbm5lbEhhbmRs
ZXIobGFiZWwsIG9wdGlvbnMpOwogfQogCi12b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBSZWZQdHI8TWVkaWFTdHJlYW1U
cmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQordm9pZCBNZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImIHNlbmRl
ciwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYgd2l0aFRyYWNrLCBET01Qcm9taXNlPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIgPSBtYXRjaFRy
YW5zY2VpdmVyKG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKCksIFsmc2VuZGVyXSAo
UlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsKICAgICAgICAgcmV0dXJuICZjdXJyZW50LnNl
bmRlcigpID09ICZzZW5kZXI7CkBAIC03MTMsNyArNzEzLDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlciwgUmVmUHRy
PE1lZGkKICAgICB9KTsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJl
cGxhY2VUcmFja1Rhc2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIGNvbnN0IFN0cmluZyYgbWlkLCBS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21pc2U8dm9pZD4mIHBy
b21pc2UpCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFz
ayhSVENSdHBTZW5kZXImIHNlbmRlciwgY29uc3QgU3RyaW5nJiBtaWQsIFJlZjxNZWRpYVN0cmVh
bVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2b2lkPiYgcHJvbWlzZSkKIHsKICAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uLmgKaW5kZXggMDFiMzc4NDNkNTA3Y2YxYTYxMmQ5NjJmMjgwMjhhOGUyOGE1NTk5Yy4uZmY0
NTI4YjM4YjQwN2MwMmEyNGZiZDFjOWNiYjZlYjIzYjRlMTdhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJl
ZlB0cjxNZWRpYVN0cmVhbT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCBmaW5hbDsKIAogICAg
IFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJiB0cmFuc2Nl
aXZlck1pZCwgY29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCkg
ZmluYWw7Ci0gICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgZmluYWw7CisgICAgdm9pZCByZXBs
YWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21p
c2U8dm9pZD4mJikgZmluYWw7CiAKICAgICB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0
IFN0cmluZyYgYWN0aW9uKSBmaW5hbDsKIApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBhZGRJY2VDYW5kaWRhdGVUYXNrKFJUQ0ljZUNhbmRpZGF0ZSYpOwogCi0gICAgdm9p
ZCByZXBsYWNlVHJhY2tUYXNrKFJUQ1J0cFNlbmRlciYsIGNvbnN0IFN0cmluZyYgbWlkLCBSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYpOworICAgIHZvaWQgcmVw
bGFjZVRyYWNrVGFzayhSVENSdHBTZW5kZXImLCBjb25zdCBTdHJpbmcmIG1pZCwgUmVmPE1lZGlh
U3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mKTsKIAogICAgIGJvb2wgbG9jYWxEZXNj
cmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSkg
Y29uc3Q7CiAgICAgYm9vbCByZW1vdGVEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRl
eCA2MTk1MThiYWY5MDZlMDc4NmYzNjJlNmE1ODVmODA5Y2Y3MWE4ODdkLi5iNjZiOTVjNmZmZTZj
OGRmMjRjMjZiNTcwNzA3MzkxM2Y4ZWU2Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTkz
LDcgKzkzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIFJlZjxSVENS
dHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJiB0cmFuc2NlaXZlck1pZCwg
Y29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVBy
b21pc2U8dm9pZD4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBZGRlZFRyYWNrKFJU
Q1J0cFNlbmRlciYpIHsgfQogCiAgICAgdm9pZCBtYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKTsK
ICAgICBib29sIGlzTmVnb3RpYXRpb25OZWVkZWQoKSBjb25zdCB7IHJldHVybiBtX25lZ290aWF0
aW9uTmVlZGVkOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCAxZjhkZGQwYjExMmZlY2M3ODlkNWJh
NDAwMDdiNjhkZGI3ODNjODVkLi5mYTgwNWU4YzAyZTEyNzlmYTBmZWNiYjkxYjdiYjQ4MmJhOTRh
NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxSVENSdHBTZW5kZXI+PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2soUmVmPE1lZGlhU3Ry
ZWFtVHJhY2s+CiAgICAgICAgICAgICBleGlzdGluZ1NlbmRlci5zZXRNZWRpYVN0cmVhbUlkcyhX
VEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSk7CiAgICAgICAgICAgICB0cmFuc2NlaXZlci0+ZW5hYmxl
U2VuZGluZ0RpcmVjdGlvbigpOwogICAgICAgICAgICAgc2VuZGVyID0gJmV4aXN0aW5nU2VuZGVy
OworICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAg
LTE0Niw2ICsxNDcsNyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gUlRDUGVlckNv
bm5lY3Rpb246OmFkZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPgogCiAgICAgbV9iYWNrZW5k
LT5tYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKTsKIAorICAgIG1fYmFja2VuZC0+bm90aWZ5QWRk
ZWRUcmFjaygqc2VuZGVyKTsKICAgICByZXR1cm4gUmVmPFJUQ1J0cFNlbmRlcj4geyAqc2VuZGVy
IH07CiB9CiAKQEAgLTUxMCw3ICs1MTIsNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpmaXJl
RXZlbnQoRXZlbnQmIGV2ZW50KQogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCi12b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2b2lkPiYmIHBy
b21pc2UpCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVy
JiBzZW5kZXIsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2
b2lkPiYmIHByb21pc2UpCiB7CiAgICAgbV9iYWNrZW5kLT5yZXBsYWNlVHJhY2soc2VuZGVyLCBX
VEZNb3ZlKHdpdGhUcmFjayksIFdURk1vdmUocHJvbWlzZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4
IDJjMDU2MmUzODI0ZTA1NGI1YmE4NmQ5MTcwNTY5MDE1OWUxYmZmOWQuLjI5ZjEzODk2YzA4Njgw
MDRhODIyYzU0ZDYwMmFkYWM4NjVlODI4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTE1OSw3ICsxNTks
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigp
IGNvbnN0IGZpbmFsOwogCiAgICAgLy8gUlRDUnRwU2VuZGVyQ2xpZW50Ci0gICAgdm9pZCByZXBs
YWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVBy
b21pc2U8dm9pZD4mJikgZmluYWw7CisgICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVy
JiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgZmluYWw7CiAK
ICAgICBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgbV9zaWduYWxpbmdTdGF0
ZSB7IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6U3RhYmxlIH07CiAgICAg
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlIG1faWNlR2F0aGVyaW5nU3Rh
dGUgeyBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGU6Ok5ldyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3Bw
CmluZGV4IDUzYjZmMmNkNGUyOWUwMjUyNmE5ZWExMTY4ZWJiNDhkM2E4YTU4ZGUuLjk2ODA1NDNj
ZDk3MzA0ZTYyZmY0MGRlOTQ4Nzk3ZTJmODhmYTExOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKQEAgLTM5LDMxICszOSwy
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxSVENSdHBTZW5kZXI+IFJUQ1J0cFNlbmRl
cjo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBWZWN0b3I8U3RyaW5nPiYm
IG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5kZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBjb25z
dCBTdHJpbmcmIHRyYWNrS2luZCA9IHRyYWNrLT5raW5kKCk7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUlRDUnRwU2VuZGVyKFdURk1vdmUodHJhY2spLCB0cmFja0tpbmQsIFdURk1vdmUobWVk
aWFTdHJlYW1JZHMpLCBjbGllbnQpKTsKKyAgICBhdXRvIHNlbmRlciA9IGFkb3B0UmVmKCpuZXcg
UlRDUnRwU2VuZGVyKHRyYWNrLT5raW5kKCksIFdURk1vdmUobWVkaWFTdHJlYW1JZHMpLCBjbGll
bnQpKTsKKyAgICBzZW5kZXItPnNldFRyYWNrKFdURk1vdmUodHJhY2spKTsKKyAgICByZXR1cm4g
c2VuZGVyOwogfQogCiBSZWY8UlRDUnRwU2VuZGVyPiBSVENSdHBTZW5kZXI6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIHRyYWNrS2luZCwgVmVjdG9yPFN0cmluZz4mJiBtZWRpYVN0cmVhbUlkcywgUlRD
UnRwU2VuZGVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
UnRwU2VuZGVyKG51bGxwdHIsIHRyYWNrS2luZCwgV1RGTW92ZShtZWRpYVN0cmVhbUlkcyksIGNs
aWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNlbmRlcih0cmFja0tpbmQs
IFdURk1vdmUobWVkaWFTdHJlYW1JZHMpLCBjbGllbnQpKTsKIH0KIAotUlRDUnRwU2VuZGVyOjpS
VENSdHBTZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ssIGNvbnN0IFN0cmlu
ZyYgdHJhY2tLaW5kLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5k
ZXJDbGllbnQmIGNsaWVudCkKK1JUQ1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKGNvbnN0IFN0cmlu
ZyYgdHJhY2tLaW5kLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5k
ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IFJUQ1J0cFNlbmRlclJlY2VpdmVyQmFzZSgpCiAgICAg
LCBtX3RyYWNrS2luZCh0cmFja0tpbmQpCiAgICAgLCBtX21lZGlhU3RyZWFtSWRzKFdURk1vdmUo
bWVkaWFTdHJlYW1JZHMpKQogICAgICwgbV9jbGllbnQoJmNsaWVudCkKIHsKLSAgICBzZXRUcmFj
ayhXVEZNb3ZlKHRyYWNrKSk7CiB9CiAKLXZvaWQgUlRDUnRwU2VuZGVyOjpzZXRUcmFjayhSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFjaykKK3ZvaWQgUlRDUnRwU2VuZGVyOjpzZXRUcmFj
ayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFjaykKIHsKLSAgICAvLyBTYXZlIHRoZSBpZCBm
cm9tIHRoZSBmaXJzdCBub24tbnVsbCB0cmFjayBzZXQuIFRoYXQgaWQgd2lsbCBiZSB1c2VkIHRv
IG5lZ290aWF0ZSB0aGUgc2VuZGVyCi0gICAgLy8gZXZlbiBpZiB0aGUgdHJhY2sgaXMgcmVwbGFj
ZWQuCi0gICAgaWYgKCFtX3RyYWNrICYmIHRyYWNrKQotICAgICAgICBtX3RyYWNrSWQgPSB0cmFj
ay0+aWQoKTsKLQorICAgIEFTU0VSVCghaXNTdG9wcGVkKCkpOworICAgIEFTU0VSVCghbV90cmFj
ayk7CisgICAgbV90cmFja0lkID0gdHJhY2stPmlkKCk7CiAgICAgbV90cmFjayA9IFdURk1vdmUo
dHJhY2spOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNlbmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuaAppbmRleCA5NWJlYThiN2IzMmNkMjU4ZDU0MDNiNzc2ZWFhMWFmNWM0N2Ji
ZTNiLi41YjAzMmQ3M2I0YTdlYTYwNWI1M2RlNTkyYjBkMTA1NDFmNjVjYjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmgKQEAgLTM5
LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSVENSdHBTZW5kZXJDbGll
bnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVy
JiwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3Ry
ZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgPSAwOwogCiAgICAgdmlydHVhbCB+UlRD
UnRwU2VuZGVyQ2xpZW50KCkgeyB9CiB9OwpAQCAtNTcsMTIgKzU3LDEyIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNTdG9wcGVkKCkgY29uc3QgeyByZXR1cm4gIW1fY2xpZW50OyB9CiAgICAgdm9p
ZCBzdG9wKCkgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KLSAgICB2b2lkIHNldFRyYWNrKFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiYmKTsKKyAgICB2b2lkIHNldFRyYWNrKFJlZjxNZWRpYVN0cmVh
bVRyYWNrPiYmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcGxhY2VUcmFjayhSZWY8TWVk
aWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYmKTsKIAogcHJpdmF0ZToKLSAgICBS
VENSdHBTZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIGNvbnN0IFN0cmluZyYgdHJh
Y2tLaW5kLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5kZXJDbGll
bnQmKTsKKyAgICBSVENSdHBTZW5kZXIoY29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIFZlY3RvcjxT
dHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRlckNsaWVudCYpOwogCiAgICAgU3Ry
aW5nIG1fdHJhY2tJZDsKICAgICBTdHJpbmcgbV90cmFja0tpbmQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDNiZGYyYWI0YmIxZjQwNzZmYzMwODgz
ZmQzYWVkMTQ1YzAyYzRkYjguLjVmYWQ0NGY0OWMwZjQ3YmE4Yzk3ODllY2ExNmM3Nzk5NjBhMWEw
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC0x
NTgsMTkgKzE1OCwzNCBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvU2V0UmVtb3Rl
RGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkZXNjcgogICAgIG1fYmFja2VuZC0+
U2V0UmVtb3RlRGVzY3JpcHRpb24oJm1fc2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2
ZXIsIHNlc3Npb25EZXNjcmlwdGlvbi5yZWxlYXNlKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0
ZDo6c3RyaW5nIHN0cmVhbUlkKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotICAg
IGF1dG8mIHNlbmRlcnMgPSBjb25uZWN0aW9uLmdldFNlbmRlcnMoKTsKLSAgICBpZiAoc2VuZGVy
cy5zaXplKCkpIHsKLSAgICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMp
IHsKLSAgICAgICAgICAgIGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7Ci0gICAgICAgICAg
ICBpZiAodHJhY2spIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoc2VuZGVyLm1lZGlhU3RyZWFt
SWRzKCkuc2l6ZSgpID09IDEpOwotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyhz
ZW5kZXIubWVkaWFTdHJlYW1JZHMoKS5maXJzdCgpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Cit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmFkZFRyYWNrKE1l
ZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVkaWFTdHJlYW1J
ZHMpCit7CisgICAgaWYgKCFMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzdGQ6OnZlY3Rvcjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKj4g
bWVkaWFTdHJlYW1zOworICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFt
SW50ZXJmYWNlPiBtZWRpYVN0cmVhbSA9IG51bGxwdHI7CisgICAgaWYgKG1lZGlhU3RyZWFtSWRz
LnNpemUoKSkgeworICAgICAgICAvLyBsaWJ3ZWJydGMgaXMgb25seSB1c2luZyB0aGUgZmlyc3Qg
b25lIGlmIGFueS4KKyAgICAgICAgbWVkaWFTdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFj
dG9yeSgpLT5DcmVhdGVMb2NhbE1lZGlhU3RyZWFtKG1lZGlhU3RyZWFtSWRzWzBdLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBtZWRpYVN0cmVhbXMucHVzaF9iYWNrKG1lZGlhU3RyZWFtLmdldCgp
KTsKKyAgICB9CisgICAgCisgICAgYXV0byYgc291cmNlID0gdHJhY2suc291cmNlKCk7CisgICAg
QVNTRVJUKHNvdXJjZS50eXBlKCkgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZSk7CisKKyAg
ICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykgeworICAg
ICAgICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpjcmVh
dGUoc291cmNlKTsKKyAgICAgICAgYXV0byBhdWRpb1RyYWNrID0gTGliV2ViUlRDUHJvdmlkZXI6
OmZhY3RvcnkoKS0+Q3JlYXRlQXVkaW9UcmFjayh0cmFjay5pZCgpLnV0ZjgoKS5kYXRhKCksIHRy
YWNrU291cmNlLnB0cigpKTsKKyAgICAgICAgdHJhY2tTb3VyY2UtPnNldFRyYWNrKHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+KGF1ZGlvVHJhY2spKTsKKyAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkQXVkaW9Tb3VyY2UoV1RGTW92ZSh0cmFj
a1NvdXJjZSkpOworICAgICAgICBtX2JhY2tlbmQtPkFkZFRyYWNrKGF1ZGlvVHJhY2suZ2V0KCks
IFdURk1vdmUobWVkaWFTdHJlYW1zKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byB2aWRl
b1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Cisg
ICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNy
ZWF0ZVZpZGVvVHJhY2sodHJhY2suaWQoKS51dGY4KCkuZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIo
KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1v
dmUodmlkZW9Tb3VyY2UpKTsKKyAgICAgICAgbV9iYWNrZW5kLT5BZGRUcmFjayh2aWRlb1RyYWNr
LmdldCgpLCBXVEZNb3ZlKG1lZGlhU3RyZWFtcykpOwogICAgIH0KLSAgICByZXR1cm4gImF2X2xh
YmVsIjsKIH0KIAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKCkK
QEAgLTE4MSwzMSArMTk2LDYgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0
ZU9mZmVyKCkKICAgICB9CiAgICAgICAgIAogICAgIG1faXNJbml0aWF0b3IgPSB0cnVlOwotICAg
IGF1dG8mIHNlbmRlcnMgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuZ2V0
U2VuZGVycygpOwotICAgIGlmIChzZW5kZXJzLnNpemUoKSkgewotICAgICAgICAvLyBGSVhNRTog
V2Ugb25seSBzdXBwb3J0IG9uZSBzdHJlYW0gZm9yIHRoZSBtb21lbnQuCi0gICAgICAgIGF1dG8g
c3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxNZWRpYVN0
cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsKLSAg
ICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKLSAgICAgICAgICAg
IGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7Ci0gICAgICAgICAgICBpZiAodHJhY2spIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoc2VuZGVyLm1lZGlhU3RyZWFtSWRzKCkuc2l6ZSgpID09
IDEpOwotICAgICAgICAgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLT5zb3VyY2UoKTsKLSAg
ICAgICAgICAgICAgICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpB
dWRpbykgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoc291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAg
YXV0byBydGNUcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUF1ZGlv
VHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOwotICAg
ICAgICAgICAgICAgICAgICB0cmFja1NvdXJjZS0+c2V0VHJhY2socnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4ocnRjVHJhY2spKTsKLSAgICAgICAgICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkQXVkaW9Tb3VyY2UoV1RGTW92ZSh0cmFj
a1NvdXJjZSkpOwotICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUo
cnRjVHJhY2spKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICBhdXRvIHZpZGVvU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpjcmVhdGUo
c291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gTGliV2ViUlRD
UHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlVmlkZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCku
ZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1vdmUodmlkZW9Tb3VyY2UpKTsKLSAg
ICAgICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHZpZGVvVHJhY2spKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbV9i
YWNrZW5kLT5BZGRTdHJlYW0oc3RyZWFtKTsKLSAgICB9CiAgICAgbV9iYWNrZW5kLT5DcmVhdGVP
ZmZlcigmbV9jcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciwgbnVsbHB0cik7CiB9CiAK
QEAgLTIxNywzNyArMjA3LDEzIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVh
dGVBbnN3ZXIoKQogICAgIH0KIAogICAgIG1faXNJbml0aWF0b3IgPSBmYWxzZTsKLQotICAgIGF1
dG8mIHNlbmRlcnMgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuZ2V0U2Vu
ZGVycygpOwotICAgIGlmIChzZW5kZXJzLnNpemUoKSkgewotICAgICAgICAvLyBGSVhNRTogV2Ug
b25seSBzdXBwb3J0IG9uZSBzdHJlYW0gZm9yIHRoZSBtb21lbnQuCi0gICAgICAgIGF1dG8gc3Ry
ZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxNZWRpYVN0cmVh
bShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsKLSAgICAg
ICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKLSAgICAgICAgICAgIGF1
dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7Ci0gICAgICAgICAgICBpZiAodHJhY2spIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoc2VuZGVyLm1lZGlhU3RyZWFtSWRzKCkuc2l6ZSgpID09IDEp
OwotICAgICAgICAgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLT5zb3VyY2UoKTsKLSAgICAg
ICAgICAgICAgICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
bykgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoc291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0
byBydGNUcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUF1ZGlvVHJh
Y2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOwotICAgICAg
ICAgICAgICAgICAgICB0cmFja1NvdXJjZS0+c2V0VHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4ocnRjVHJhY2spKTsKLSAgICAgICAgICAgICAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkQXVkaW9Tb3VyY2UoV1RGTW92ZSh0cmFja1Nv
dXJjZSkpOwotICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUocnRj
VHJhY2spKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBh
dXRvIHZpZGVvU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpjcmVhdGUoc291
cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gTGliV2ViUlRDUHJv
dmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlVmlkZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0
YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fcGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1vdmUodmlkZW9Tb3VyY2UpKTsKLSAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHZpZGVvVHJhY2spKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbV9iYWNr
ZW5kLT5BZGRTdHJlYW0oc3RyZWFtKTsKLSAgICB9CiAgICAgbV9iYWNrZW5kLT5DcmVhdGVBbnN3
ZXIoJm1fY3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIsIG51bGxwdHIpOwogfQogCiB2
b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqIHRy
YWNrLCBjb25zdCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UpCiB7CisgICAgVU5VU0VEX1BBUkFN
KHRyYWNrKTsKKyAgICBVTlVTRURfUEFSQU0ocHJvbWlzZSk7CiAgICAgbV9iYWNrZW5kLT5HZXRT
dGF0cyhTdGF0c0NvbGxlY3Rvcjo6Y3JlYXRlKCp0aGlzLCBwcm9taXNlLCB0cmFjaykuZ2V0KCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggMjhk
MTlkODllMGUwZmI5YjZmN2YwYWZiODI5NGZkYjY4YmRhZmMzZS4uNmU2Yzc2NThjZjk1NjliNDMz
MTc0ZWE1ZmMxYzM5MjgwYzM0MzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuaApAQCAtNzksNiArNzksOCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKICAgICBSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24oKSBjb25z
dDsKIAorICAgIHZvaWQgYWRkVHJhY2soTWVkaWFTdHJlYW1UcmFjayYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7CisKIHByaXZhdGU6CiAgICAgTGliV2ViUlRDTWVkaWFFbmRwb2ludChMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQmLCBMaWJXZWJSVENQcm92aWRlciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRl
eCBiOWVhOWIxODZhMmIxOWQ3N2Q0N2E4NTM1YjExNDI2YWYxYzQ1MjMzLi5iYTkzZTdkYWYzMWM1
M2IxN2IzYmZhZmRkNjQ0ZjAxNmU5YWQ2MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTE2OSwxMSArMTY5LDYgQEAg
dm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvU3RvcCgpCiAKIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0ZSkKIHsKLSAgICBpZiAoIW1faXNSZW1vdGVEZXNjcmlwdGlvblNldCkg
ewotICAgICAgICBhZGRJY2VDYW5kaWRhdGVGYWlsZWQoRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFU
RV9FUlIsICJObyByZW1vdGUgZGVzY3JpcHRpb24gc2V0IiB9KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIHdlYnJ0Yzo6U2RwUGFyc2VFcnJvciBlcnJvcjsKICAgICBpbnQgc2RwTUxp
bmVJbmRleCA9IGNhbmRpZGF0ZS5zZHBNTGluZUluZGV4KCkgPyBjYW5kaWRhdGUuc2RwTUxpbmVJ
bmRleCgpLnZhbHVlKCkgOiAwOwogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OkljZUNhbmRp
ZGF0ZUludGVyZmFjZT4gcnRjQ2FuZGlkYXRlKHdlYnJ0Yzo6Q3JlYXRlSWNlQ2FuZGlkYXRlKGNh
bmRpZGF0ZS5zZHBNaWQoKS51dGY4KCkuZGF0YSgpLCBzZHBNTGluZUluZGV4LCBjYW5kaWRhdGUu
Y2FuZGlkYXRlKCkudXRmOCgpLmRhdGEoKSwgJmVycm9yKSk7CkBAIC0yNTAsNiArMjQ1LDEyIEBA
IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6cmVtb3RlRGVzY3JpcHRpb24oCiAgICAgcmV0dXJuIG1fZW5kcG9pbnQtPnJlbW90ZURl
c2NyaXB0aW9uKCk7CiB9CiAKK3ZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpu
b3RpZnlBZGRlZFRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQoreworICAgIEFTU0VSVChzZW5k
ZXIudHJhY2soKSk7CisgICAgbV9lbmRwb2ludC0+YWRkVHJhY2soKnNlbmRlci50cmFjaygpLCBz
ZW5kZXIubWVkaWFTdHJlYW1JZHMoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IDJlNDIxYWQwZmQwMzVkYjc4OTk4MTc4NTNi
MDkzMWE3ODdhNmIxMjkuLjg1NjAwNTNkZDQyNjYxMDEzNzZhNzI1ZDU1OTBkZDFmMTYwYWNiYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oCkBAIC02Nyw5ICs2NywxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVz
Y3JpcHRpb24+IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIFJl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbigpIGNv
bnN0IGZpbmFsOwogCisgICAgdm9pZCBub3RpZnlBZGRlZFRyYWNrKFJUQ1J0cFNlbmRlciYpIGZp
bmFsOwogICAgIC8vIEZJWE1FOiBBUEkgdG8gaW1wbGVtZW50IGZvciByZWFsCiAgICAgVmVjdG9y
PFJlZlB0cjxNZWRpYVN0cmVhbT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB7IH07IH0KLSAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWZQdHI8
TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwg
RE9NUHJvbWlzZTx2b2lkPiYmKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgZW11bGF0ZVBsYXRmb3Jt
RXZlbnQoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCAyZjgwYWZh
Y2I5OWJjZWQwZTk1MjQ1NTQ1ZTRlMzFkZmYxZmZmMjE4Li43NmU2OTZjODA4ZGI4ZDNkMjk5YzY5
YjAxYjA2NmM5ODFiOTAxZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0yMjYsMjEgKzIyNiwzMSBAQCBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEYXRhQ2hhbm5lbEludGVyZmFjZT4gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uOjpDcgogICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2Jq
ZWN0PE1vY2tMaWJXZWJSVENEYXRhQ2hhbm5lbD4oc3RkOjpzdHJpbmcobGFiZWwpLCBwYXJhbWV0
ZXJzLm9yZGVyZWQsIHBhcmFtZXRlcnMucmVsaWFibGUsIHBhcmFtZXRlcnMuaWQpOwogfQogCi1i
b29sIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6QWRkU3RyZWFtKHdlYnJ0Yzo6TWVkaWFT
dHJlYW1JbnRlcmZhY2UqIHN0cmVhbSkKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlJ0cFNl
bmRlckludGVyZmFjZT4gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpBZGRUcmFjayh3ZWJy
dGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqIHRyYWNrLCBzdGQ6OnZlY3Rvcjx3ZWJydGM6
Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKj4gc3RyZWFtcykKIHsKLSAgICBtX3N0cmVhbSA9IHN0cmVh
bTsKICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDU2lnbmFsaW5nVGhyZWFkKFtv
YnNlcnZlciA9ICZtX29ic2VydmVyXSB7CiAgICAgICAgIG9ic2VydmVyLT5PblJlbmVnb3RpYXRp
b25OZWVkZWQoKTsKICAgICB9KTsKLSAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChzdHJlYW1z
LnNpemUoKSkKKyAgICAgICAgbV9zdHJlYW1MYWJlbCA9IHN0cmVhbXMuZnJvbnQoKS0+bGFiZWwo
KTsKKworICAgIG1fc2VuZGVycy5hcHBlbmQobmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDxNb2Nr
UnRwU2VuZGVyPihydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50
ZXJmYWNlPih0cmFjaykpKTsKKyAgICByZXR1cm4gbV9zZW5kZXJzLmxhc3QoKS5nZXQoKTsKIH0K
IAotdm9pZCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OlJlbW92ZVN0cmVhbSh3ZWJydGM6
Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKikKK2Jvb2wgTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
OjpSZW1vdmVUcmFjayh3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZSogc2VuZGVyKQogewogICAg
IExpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENTaWduYWxpbmdUaHJlYWQoW29ic2VydmVy
ID0gJm1fb2JzZXJ2ZXJdIHsKICAgICAgICAgb2JzZXJ2ZXItPk9uUmVuZWdvdGlhdGlvbk5lZWRl
ZCgpOwogICAgIH0pOwotICAgIG1fc3RyZWFtID0gbnVsbHB0cjsKKyAgICBib29sIGlzUmVtb3Zl
ZCA9IGZhbHNlOworICAgIHJldHVybiBtX3NlbmRlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0o
YXV0byYgaXRlbSkgeworICAgICAgICBpZiAoaXRlbS5nZXQoKSAhPSBzZW5kZXIpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlzUmVtb3ZlZCA9IHRydWU7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0pOwogfQogCiB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bjo6Q3JlYXRlT2ZmZXIod2VicnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciog
b2JzZXJ2ZXIsIGNvbnN0IHdlYnJ0Yzo6TWVkaWFDb25zdHJhaW50c0ludGVyZmFjZSopCkBAIC0y
NTIsMTAgKzI2MiwxMyBAQCB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3JlYXRl
T2ZmZXIod2VicnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYgogICAgICAgICAgICAgIm89
LSA1NjY3MDk0NjQ0MjY2OTMwODQ1ICIgPDwgbV9jb3VudGVyKysgPDwgIiBJTiBJUDQgMTI3LjAu
MC4xXHJcbiIKICAgICAgICAgICAgICJzPS1cclxuIgogICAgICAgICAgICAgInQ9MCAwXHJcbiI7
Ci0gICAgICAgIGlmIChtX3N0cmVhbSkgeworICAgICAgICBpZiAobV9zZW5kZXJzLnNpemUoKSkg
ewogICAgICAgICAgICAgdW5zaWduZWQgcGFydENvdW50ZXIgPSAxOwotICAgICAgICAgICAgc2Rw
IDw8ICJhPW1zaWQtc2VtYW50aWM6V01TICIgPDwgbV9zdHJlYW0tPmxhYmVsKCkgPDwgIlxyXG4i
OwotICAgICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDogbV9zdHJlYW0tPkdldEF1ZGlv
VHJhY2tzKCkpIHsKKyAgICAgICAgICAgIHNkcCA8PCAiYT1tc2lkLXNlbWFudGljOldNUyAiIDw8
IG1fc3RyZWFtTGFiZWwgPDwgIlxyXG4iOworICAgICAgICAgICAgZm9yIChhdXRvJiBzZW5kZXIg
OiBtX3NlbmRlcnMpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHRyYWNrID0gc2VuZGVyLT50cmFj
aygpOworICAgICAgICAgICAgICAgIGlmICh0cmFjay0+a2luZCgpICE9ICJhdWRpbyIpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIHNkcCA8PAogICAgICAg
ICAgICAgICAgICAgICAibT1hdWRpbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDExMSA4IDBcclxuIgog
ICAgICAgICAgICAgICAgICAgICAiYz1JTiBJUDQgMC4wLjAuMFxyXG4iCkBAIC0yNjYsMTMgKzI3
OSwxNiBAQCB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3JlYXRlT2ZmZXIod2Vi
cnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYgogICAgICAgICAgICAgICAgICAgICAiYT1y
dHBtYXA6OCBQQ01BLzgwMDBcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1ydHBtYXA6MCBQ
Q01VLzgwMDBcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1zc3JjOjM0MDkxNzM3MTcgY25h
bWU6L2NoS3pDUzlLNktPZ0wwblxyXG4iCi0gICAgICAgICAgICAgICAgICAgICJhPW1zaWQ6IiA8
PCBtX3N0cmVhbS0+bGFiZWwoKSA8PCAiICIgPDwgYXVkaW9UcmFjay0+aWQoKSA8PCAiXHJcbiIK
KyAgICAgICAgICAgICAgICAgICAgImE9bXNpZDoiIDw8IG1fc3RyZWFtTGFiZWwgPDwgIiAiIDw8
IHRyYWNrLT5pZCgpIDw8ICJcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1pY2UtdWZyYWc6
ZS9CMVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJhPWljZS1wd2Q6WW90azNJbTNtbnlpKzFR
MzhwNTFNRHViXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9ZmluZ2VycHJpbnQ6c2hhLTI1
NiA4Qjo4NzowOTo4QTo1RDpDMjpGMzozMzpFRjpDNTpCMTpGNjo4NDozQTozRDpENjpBMzpFMjo5
QzoxNzo0QzpFNzo0NjozQjoxQjpDRTo4NDo5ODpERDo4RTpBRjo3QlxyXG4iCiAgICAgICAgICAg
ICAgICAgICAgICJhPXNldHVwOmFjdHBhc3NcclxuIjsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGZvciAoYXV0byYgdmlkZW9UcmFjayA6IG1fc3RyZWFtLT5HZXRWaWRlb1RyYWNrcygpKSB7
CisgICAgICAgICAgICBmb3IgKGF1dG8mIHNlbmRlciA6IG1fc2VuZGVycykgeworICAgICAgICAg
ICAgICAgIGF1dG8gdHJhY2sgPSBzZW5kZXItPnRyYWNrKCk7CisgICAgICAgICAgICAgICAgaWYg
KHRyYWNrLT5raW5kKCkgIT0gInZpZGVvIikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgc2RwIDw8CiAgICAgICAgICAgICAgICAgICAgICJtPXZpZGVvIDkg
VURQL1RMUy9SVFAvU0FWUEYgMTAzIDEwMCAxMjBcclxuIgogICAgICAgICAgICAgICAgICAgICAi
Yz1JTiBJUDQgMC4wLjAuMFxyXG4iCkBAIC0yOTAsNyArMzA2LDcgQEAgdm9pZCBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb246OkNyZWF0ZU9mZmVyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2Ny
aXB0aW9uT2IKICAgICAgICAgICAgICAgICAgICAgImE9cnRjcC1mYjoxMDMgY2NtIGZpclxyXG4i
CiAgICAgICAgICAgICAgICAgICAgICJhPXJ0Y3AtZmI6MTAwIGNjbSBmaXJcclxuIgogICAgICAg
ICAgICAgICAgICAgICAiYT1zc3JjOjM0MDkxNzM3MTggY25hbWU6L2NoS3pDUzlLNktPZ0wwblxy
XG4iCi0gICAgICAgICAgICAgICAgICAgICJhPW1zaWQ6IiA8PCBtX3N0cmVhbS0+bGFiZWwoKSA8
PCAiICIgPDwgdmlkZW9UcmFjay0+aWQoKSA8PCAiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAg
ImE9bXNpZDoiIDw8IG1fc3RyZWFtTGFiZWwgPDwgIiAiIDw8IHRyYWNrLT5pZCgpIDw8ICJcclxu
IgogICAgICAgICAgICAgICAgICAgICAiYT1pY2UtdWZyYWc6ZS9CMVxyXG4iCiAgICAgICAgICAg
ICAgICAgICAgICJhPWljZS1wd2Q6WW90azNJbTNtbnlpKzFRMzhwNTFNRHViXHJcbiIKICAgICAg
ICAgICAgICAgICAgICAgImE9ZmluZ2VycHJpbnQ6c2hhLTI1NiA4Qjo4NzowOTo4QTo1RDpDMjpG
MzozMzpFRjpDNTpCMTpGNjo4NDozQTozRDpENjpBMzpFMjo5QzoxNzo0QzpFNzo0NjozQjoxQjpD
RTo4NDo5ODpERDo4RTpBRjo3QlxyXG4iCkBAIC0zMTEsOSArMzI3LDExIEBAIHZvaWQgTW9ja0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uOjpDcmVhdGVBbnN3ZXIod2VicnRjOjpDcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25PCiAgICAgICAgICAgICAibz0tIDU2NjcwOTQ2NDQyNjY5MzA4NDYgIiA8PCBt
X2NvdW50ZXIrKyA8PCAiIElOIElQNCAxMjcuMC4wLjFcclxuIgogICAgICAgICAgICAgInM9LVxy
XG4iCiAgICAgICAgICAgICAidD0wIDBcclxuIjsKLSAgICAgICAgaWYgKG1fc3RyZWFtKSB7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX3N0cmVhbS0+R2V0QXVkaW9UcmFj
a3MoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoYXVkaW9UcmFjaywgISFhdWRp
b1RyYWNrKTsKKyAgICAgICAgaWYgKG1fc2VuZGVycy5zaXplKCkpIHsKKyAgICAgICAgICAgIGZv
ciAoYXV0byYgc2VuZGVyIDogbV9zZW5kZXJzKSB7CisgICAgICAgICAgICAgICAgYXV0byB0cmFj
ayA9IHNlbmRlci0+dHJhY2soKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAh
PSAiYXVkaW8iKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICBzZHAgPDwKICAgICAgICAgICAgICAgICAgICAgIm09YXVkaW8gOSBVRFAvVExTL1JUUC9TQVZQ
RiAxMTEgOCAwXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImM9SU4gSVA0IDAuMC4wLjBcclxu
IgpAQCAtMzI5LDggKzM0NywxMCBAQCB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6
Q3JlYXRlQW5zd2VyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uTwogICAgICAgICAg
ICAgICAgICAgICAiYT1maW5nZXJwcmludDpzaGEtMjU2IDhCOjg3OjA5OjhBOjVEOkMyOkYzOjMz
OkVGOkM1OkIxOkY2Ojg0OjNBOjNEOkQ2OkEzOkUyOjlDOjE3OjRDOkU3OjQ2OjNCOjFCOkNFOjg0
Ojk4OkREOjhFOkFGOjdCXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9c2V0dXA6YWN0aXZl
XHJcbiI7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sg
OiBtX3N0cmVhbS0+R2V0VmlkZW9UcmFja3MoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9V
TlVTRUQodmlkZW9UcmFjaywgISF2aWRlb1RyYWNrKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYg
c2VuZGVyIDogbV9zZW5kZXJzKSB7CisgICAgICAgICAgICAgICAgYXV0byB0cmFjayA9IHNlbmRl
ci0+dHJhY2soKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAhPSAidmlkZW8i
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBzZHAgPDwK
ICAgICAgICAgICAgICAgICAgICAgIm09dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMDMgMTAw
IDEyMFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJjPUlOIElQNCAwLjAuMC4wXHJcbiIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oCmluZGV4IDNlNWZiYmYxMjM5YTg1NDA3MjQ0ZmNiMzhkOGIxMzljYTNjNjUxM2YuLjYxYTA0
MzE2ZDQ0ZmFmNDk4OTgyNWY1NjZmYWE0NzI5YmMzNjdkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtMzQsNiAr
MzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsK
K2NsYXNzIE1vY2tSdHBTZW5kZXI7CiAKIHZvaWQgdXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFj
dG9yeShMaWJXZWJSVENQcm92aWRlciosIGNvbnN0IFN0cmluZyYpOwogCkBAIC01OCwxMiArNTks
MTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIFN0b3BSdGNFdmVudExvZygpIG92ZXJyaWRlIHsgfQog
ICAgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZSB7IH0KIAorICAgIGJvb2wgQWRkU3RyZWFtKHdlYnJ0
Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2UqKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CisgICAgdm9pZCBSZW1vdmVTdHJlYW0od2VicnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZSopIGZp
bmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKwogcHJvdGVjdGVkOgogICAgIHZvaWQgU2V0
UmVtb3RlRGVzY3JpcHRpb24od2VicnRjOjpTZXRTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlcios
IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlKikgZmluYWw7CiAgICAgdm9pZCBD
cmVhdGVBbnN3ZXIod2VicnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciosIGNv
bnN0IHdlYnJ0Yzo6TWVkaWFDb25zdHJhaW50c0ludGVyZmFjZSopIGZpbmFsOwogICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkRhdGFDaGFubmVsSW50ZXJmYWNlPiBDcmVhdGVEYXRhQ2hh
bm5lbChjb25zdCBzdGQ6OnN0cmluZyYsIGNvbnN0IHdlYnJ0Yzo6RGF0YUNoYW5uZWxJbml0Kikg
ZmluYWw7Ci0gICAgYm9vbCBBZGRTdHJlYW0od2VicnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZSop
IGZpbmFsOwotICAgIHZvaWQgUmVtb3ZlU3RyZWFtKHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZh
Y2UqKSBmaW5hbDsKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpSdHBTZW5kZXJJbnRl
cmZhY2U+IEFkZFRyYWNrKHdlYnJ0Yzo6TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZSosIHN0ZDo6
dmVjdG9yPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2UqPiBzdHJlYW1zKSBmaW5hbDsKKyAg
ICBib29sIFJlbW92ZVRyYWNrKHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlKikgZmluYWw7CiAK
ICAgICB2b2lkIFNldExvY2FsRGVzY3JpcHRpb24od2VicnRjOjpTZXRTZXNzaW9uRGVzY3JpcHRp
b25PYnNlcnZlciosIHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlKikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBHZXRTdGF0cyh3ZWJydGM6OlN0YXRzT2JzZXJ2ZXIqLCB3ZWJydGM6Ok1l
ZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqLCBTdGF0c091dHB1dExldmVsKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtNzMsMTAgKzc3LDExIEBAIHByb3RlY3RlZDoKIAogICAgIHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgbV9vYnNlcnZlcjsKICAgICB1bnNpZ25lZCBtX2Nv
dW50ZXIgeyAwIH07Ci0gICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1J
bnRlcmZhY2U+IG1fc3RyZWFtOworICAgIFZlY3RvcjxydGM6OnNjb3BlZF9yZWZwdHI8TW9ja1J0
cFNlbmRlcj4+IG1fc2VuZGVyczsKICAgICBib29sIG1faXNJbml0aWF0b3IgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX2lzUmVjZWl2aW5nQXVkaW8geyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlY2Vp
dmluZ1ZpZGVvIHsgZmFsc2UgfTsKKyAgICBzdGQ6OnN0cmluZyBtX3N0cmVhbUxhYmVsOwogfTsK
IAogY2xhc3MgTW9ja0xpYldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjogcHVibGljIHdlYnJ0Yzo6
U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlIHsKQEAgLTE5OSw2ICsyMDQsMjUgQEAgcHJpdmF0
ZToKICAgICBpbnQgbV9pZCB7IC0xIH07CiB9OwogCitjbGFzcyBNb2NrUnRwU2VuZGVyIDogcHVi
bGljIHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBNb2NrUnRwU2Vu
ZGVyKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+
JiYgdHJhY2spIDogbV90cmFjayhXVEZNb3ZlKHRyYWNrKSkgeyB9CisKKyAgICBib29sIFNldFRy
YWNrKHdlYnJ0Yzo6TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZSopIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1UcmFja0lu
dGVyZmFjZT4gdHJhY2soKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3RyYWNrOyB9CisgICAgCisg
ICAgdWludDMyX3Qgc3NyYygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICBjcmlja2V0OjpNZWRp
YVR5cGUgbWVkaWFfdHlwZSgpIGNvbnN0IHsgcmV0dXJuIGNyaWNrZXQ6Ok1FRElBX1RZUEVfVklE
RU87IH0KKyAgICBzdGQ6OnN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuICIiOyB9CisgICAgc3Rk
Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+IHN0cmVhbV9pZHMoKSBjb25zdCB7IHJldHVybiB7IH07IH0K
KyAgICB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMgR2V0UGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfQorICAgIGJvb2wgU2V0UGFyYW1ldGVycyhjb25zdCB3ZWJydGM6OlJ0cFBhcmFtZXRl
cnMmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkR0
bWZTZW5kZXJJbnRlcmZhY2U+IEdldER0bWZTZW5kZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRy
OyB9CisKK3ByaXZhdGU6CisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJl
YW1UcmFja0ludGVyZmFjZT4gbV90cmFjazsKK307CisgICAgCiBjbGFzcyBNb2NrTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25GYWN0b3J5IDogcHVibGljIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0
b3J5SW50ZXJmYWNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlPiBjcmVhdGUoU3RyaW5nJiYgdGVz
dENhc2UpIHsgcmV0dXJuIG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uRmFjdG9yeT4oV1RGTW92ZSh0ZXN0Q2FzZSkpOyB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzgzNzE3
MTJjOGVlMjQzOTYxN2FjNjM5YTMyYWU5MDQzNmFjMmRiZS4uNmVmZmQxYjA4Yzc0MGY5ZWFhOTYw
ODlhZWYzOWRiYmExOTFlOGM3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAzLTEwICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGxpYndlYnJ0
YyBiYWNrZW5kIHRvIHVzaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDE3LTAzLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWxpZ24gRG9jdW1lbnQuZWxl
bWVudEZyb21Qb2ludCgpIHdpdGggdGhlIENTU09NIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDhjNTFkN2NhZjUyYTgyZDdlMTg2MjdhYTNiYWZjYzMxN2I5YTJmN2MuLjNkN2E1
YzcyMzI4N2QyYjAyMTc2OTEwNjE1OTE0ZmUxODRlMTBlY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNzE0LDggKzcxNCw2IEBAIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNl
Y2FuZGlkYXRlLWV2ZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiAjIFNlZSB3ZWJraXQub3Jn
L2IvMTY4NzM2CiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRp
ZGF0ZS5odG1sIFsgRmFpbHVyZSAgXQotZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1hZGRUcmFjay1yZXVzZS1zZW5kZXIuaHRtbCBbIEZhaWx1cmUgIF0KLWZhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tbGVnYWN5LXN0cmVhbS1iYXNlZC1hcGkuaHRtbCBbIEZhaWx1
cmUgIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVs
LWVtcHR5c3RyaW5nLmh0bWwgWyBGYWlsdXJlICBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1jYWxsLmh0bWwgWyBGYWlsdXJlICBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwgWyBGYWlsdXJl
ICBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304052</attachid>
            <date>2017-03-10 10:09:27 -0800</date>
            <delta_ts>2017-03-10 13:56:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169472-20170310100927.patch</filename>
            <type>text/plain</type>
            <size>34901</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA2ODg1Yjg0OGYzODllMjE5M2U2NWQwZmEzNjE1N2FiYTc1NGNiNmUwLi5mMjFl
NjhiMmE1ZWU2NGVmNTc5NTRkMDhiODA4NmI2OTk2M2QxNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMy0xMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsaWJ3ZWJydGMgYmFja2Vu
ZCB0byB1c2luZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2OTQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5jYzogTW92aW5n
IGZyb20gdXNpbmcgbWVkaWEgc3RyZWFtIHRvIHRyYWNrcy4KKwogMjAxNy0wMy0wOCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIEgyNjQgaGFyZHdhcmUg
ZW5jb2RlciBmb3IgTWFjIGxpYndlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFhNTY2MjdkZDE2NzIxN2Ux
NTM5MTg3NjI5OThiMzRkNDBmMjkwZDcuLjkyM2IyOGExNDBhOTFkYzY4ZWJiODMzODhhYjI1MzJm
YzcwN2IwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxNy0wMy0xMCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsaWJ3ZWJydGMgYmFj
a2VuZCB0byB1c2luZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvdmVyZWQgYnkgY3VycmVudCB0ZXN0IHNldHMuCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgYWxsb3dzIHRvIG1vdmUgYXdheSBmcm9tIHN0cmVhbXMgYW5kIHVzZSBtb3JlIHRy
YWNrcy4KKyAgICAgICAgVGhpcyBhbGxvd3MgZnV0dXJlIGJldHRlciBhbGlnbm1lbnQgd2l0aCB0
aGUgc3BlYyBhbmQgYmV0dGVyIGltcGxlbWVudGF0aW9uIG9mIHNlbmRlci9yZWNlb3Zlci90cmFu
c2NlaXZlci4KKworICAgICAgICBTbWFsbCByZWZhY3RvcmluZyB0byB1c2UgbW9yZSBSZWY8PiBp
biBXZWJSVEMgdHJhY2stYmFzZWQgY29kZS4KKyAgICAgICAgQWRkZWQgYSBub3RpZnlBZGRlZFRy
YWNrIHRvIG5vdGlmeSB0aGUgYmFja2VuZCB0aGF0IGEgdHJhY2sgd2FzIGFkZGVkLgorICAgICAg
ICBGb3IgbGlid2VicnRjLCB0aGlzIGFsbG93cyBjYWxsaW5nIEFkZFRyYWNrIGJlZm9yZSBtYWtp
bmcgdGhlIG9mZmVyLgorICAgICAgICBVcGRhdGVkIG1vY2sgbGlid2VicnRjIGJhY2tlbmQgYWNj
b3JkaW5nbHkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OnJlcGxhY2VUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFja1Rhc2spOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6bm90aWZ5QWRkZWRUcmFjayk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVl
ckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6c2V0VHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2VuZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlQW5zd2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmdldFN0YXRzKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZG9BZGRJY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpub3RpZnlBZGRlZFRyYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkFkZFRyYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6UmVtb3ZlVHJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpDcmVhdGVPZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkNyZWF0
ZUFuc3dlcik6CisgICAgICAgICogdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5kZXI6Ok1vY2tSdHBTZW5kZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1J0cFNlbmRlcjo6c3NyYyk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrUnRwU2VuZGVyOjptZWRpYV90eXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5k
ZXI6OmlkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5kZXI6OnN0cmVhbV9pZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1J0cFNlbmRlcjo6R2V0UGFyYW1ldGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrUnRwU2VuZGVyOjpTZXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tSdHBTZW5kZXI6OkdldER0bWZTZW5kZXIpOgorCiAyMDE3LTAzLTA4ICBNYXR0IFJh
amNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBMZXQgY2xpZW50cyBjb250cm9sIGF1
dG9wbGF5IHF1aXJrcyB3aXRoIHdlYnNpdGUgcG9saWNpZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3J0Y3N0YXRz
Y29sbGVjdG9yLmNjCmluZGV4IDM0N2JjYTUzZWEwMWM0NTlmNjZiNTlkNDhiZDA2MTZmNWFkZWYy
NmYuLjVmNTJhOTg4Y2I0OWNhM2I5ZTU4ODEwYzdhMThjZTgyYzM2MDI2M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3J0Y3N0YXRzY29s
bGVjdG9yLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3BjL3J0Y3N0YXRzY29sbGVjdG9yLmNjCkBAIC0xMTk4LDYgKzExOTgsMjAgQEAgc3RkOjptYXA8
TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZSosIHN0ZDo6c3RyaW5nPgogUlRDU3RhdHNDb2xsZWN0
b3I6OlByZXBhcmVUcmFja1RvSURfcygpIGNvbnN0IHsKICAgUlRDX0RDSEVDSyhzaWduYWxpbmdf
dGhyZWFkXy0+SXNDdXJyZW50KCkpOwogICBzdGQ6Om1hcDxNZWRpYVN0cmVhbVRyYWNrSW50ZXJm
YWNlKiwgc3RkOjpzdHJpbmc+IHRyYWNrX3RvX2lkOworI2lmIGRlZmluZWQoV0VCUlRDX1dFQktJ
VF9CVUlMRCkKKyAgZm9yIChhdXRvJiBzZW5kZXIgOiBwY18tPkdldFNlbmRlcnMoKSkgeworICAg
IGF1dG8gdHJhY2sgPSBzZW5kZXItPnRyYWNrKCk7CisgICAgaWYgKCF0cmFjaykKKyAgICAgIGNv
bnRpbnVlOworICAgIHRyYWNrX3RvX2lkW3RyYWNrLmdldCgpXSA9IHRyYWNrLT5pZCgpOworICB9
CisgIGZvciAoYXV0byYgcmVjZWl2ZXIgOiBwY18tPkdldFJlY2VpdmVycygpKSB7CisgICAgYXV0
byB0cmFjayA9IHJlY2VpdmVyLT50cmFjaygpOworICAgIGlmICghdHJhY2spCisgICAgICBjb250
aW51ZTsKKyAgICB0cmFja190b19pZFt0cmFjay5nZXQoKV0gPSB0cmFjay0+aWQoKTsKKyAgfQor
I2Vsc2UKICAgU3RyZWFtQ29sbGVjdGlvbkludGVyZmFjZSogbG9jYWxfYW5kX3JlbW90ZV9zdHJl
YW1zW10gPQogICAgICAgeyBwY18tPmxvY2FsX3N0cmVhbXMoKS5nZXQoKSwgcGNfLT5yZW1vdGVf
c3RyZWFtcygpLmdldCgpIH07CiAgIGZvciAoYXV0byYgc3RyZWFtcyA6IGxvY2FsX2FuZF9yZW1v
dGVfc3RyZWFtcykgewpAQCAtMTIxNSw2ICsxMjI5LDcgQEAgUlRDU3RhdHNDb2xsZWN0b3I6OlBy
ZXBhcmVUcmFja1RvSURfcygpIGNvbnN0IHsKICAgICAgIH0KICAgICB9CiAgIH0KKyNlbmRpZgog
ICByZXR1cm4gdHJhY2tfdG9faWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmNwcAppbmRleCAxNGVlMGY1ZDMxODMzOTE0ZTgyZTQ4NGFmNTQyNTMyZmY4NGY0N2JmLi5iMzcw
NTQ0Mzk1NDBjN2M4MDBmMDJlMDc0NTRkMzhlZjEzM2VlYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uY3BwCkBAIC02OTMsNyArNjkzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJU
Q0RhdGFDaGFubmVsSGFuZGxlcj4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVE
YXRhQ2gKICAgICByZXR1cm4gbV9tZWRpYUVuZHBvaW50LT5jcmVhdGVEYXRhQ2hhbm5lbEhhbmRs
ZXIobGFiZWwsIG9wdGlvbnMpOwogfQogCi12b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBSZWZQdHI8TWVkaWFTdHJlYW1U
cmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21pc2U8dm9pZD4mJiBwcm9taXNlKQordm9pZCBNZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImIHNlbmRl
ciwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYgd2l0aFRyYWNrLCBET01Qcm9taXNlPHZvaWQ+JiYg
cHJvbWlzZSkKIHsKICAgICBSVENSdHBUcmFuc2NlaXZlciogdHJhbnNjZWl2ZXIgPSBtYXRjaFRy
YW5zY2VpdmVyKG1fcGVlckNvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKCksIFsmc2VuZGVyXSAo
UlRDUnRwVHJhbnNjZWl2ZXImIGN1cnJlbnQpIHsKICAgICAgICAgcmV0dXJuICZjdXJyZW50LnNl
bmRlcigpID09ICZzZW5kZXI7CkBAIC03MTMsNyArNzEzLDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlciwgUmVmUHRy
PE1lZGkKICAgICB9KTsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJl
cGxhY2VUcmFja1Rhc2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIGNvbnN0IFN0cmluZyYgbWlkLCBS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21pc2U8dm9pZD4mIHBy
b21pc2UpCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFz
ayhSVENSdHBTZW5kZXImIHNlbmRlciwgY29uc3QgU3RyaW5nJiBtaWQsIFJlZjxNZWRpYVN0cmVh
bVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2b2lkPiYgcHJvbWlzZSkKIHsKICAgICBp
ZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5n
U3RhdGU6OkNsb3NlZCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uLmgKaW5kZXggMDFiMzc4NDNkNTA3Y2YxYTYxMmQ5NjJmMjgwMjhhOGUyOGE1NTk5Yy4uZmY0
NTI4YjM4YjQwN2MwMmEyNGZiZDFjOWNiYjZlYjIzYjRlMTdhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbi5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJl
ZlB0cjxNZWRpYVN0cmVhbT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCBmaW5hbDsKIAogICAg
IFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJiB0cmFuc2Nl
aXZlck1pZCwgY29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCkg
ZmluYWw7Ci0gICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgZmluYWw7CisgICAgdm9pZCByZXBs
YWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21p
c2U8dm9pZD4mJikgZmluYWw7CiAKICAgICB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0
IFN0cmluZyYgYWN0aW9uKSBmaW5hbDsKIApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBhZGRJY2VDYW5kaWRhdGVUYXNrKFJUQ0ljZUNhbmRpZGF0ZSYpOwogCi0gICAgdm9p
ZCByZXBsYWNlVHJhY2tUYXNrKFJUQ1J0cFNlbmRlciYsIGNvbnN0IFN0cmluZyYgbWlkLCBSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYpOworICAgIHZvaWQgcmVw
bGFjZVRyYWNrVGFzayhSVENSdHBTZW5kZXImLCBjb25zdCBTdHJpbmcmIG1pZCwgUmVmPE1lZGlh
U3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mKTsKIAogICAgIGJvb2wgbG9jYWxEZXNj
cmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSkg
Y29uc3Q7CiAgICAgYm9vbCByZW1vdGVEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRl
eCA2MTk1MThiYWY5MDZlMDc4NmYzNjJlNmE1ODVmODA5Y2Y3MWE4ODdkLi5iNjZiOTVjNmZmZTZj
OGRmMjRjMjZiNTcwNzA3MzkxM2Y4ZWU2Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTkz
LDcgKzkzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIFJlZjxSVENS
dHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXIoY29uc3QgU3RyaW5nJiB0cmFuc2NlaXZlck1pZCwg
Y29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVBy
b21pc2U8dm9pZD4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBZGRlZFRyYWNrKFJU
Q1J0cFNlbmRlciYpIHsgfQogCiAgICAgdm9pZCBtYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKTsK
ICAgICBib29sIGlzTmVnb3RpYXRpb25OZWVkZWQoKSBjb25zdCB7IHJldHVybiBtX25lZ290aWF0
aW9uTmVlZGVkOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCAxZjhkZGQwYjExMmZlY2M3ODlkNWJh
NDAwMDdiNjhkZGI3ODNjODVkLi5mYTgwNWU4YzAyZTEyNzlmYTBmZWNiYjkxYjdiYjQ4MmJhOTRh
NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxSVENSdHBTZW5kZXI+PiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2soUmVmPE1lZGlhU3Ry
ZWFtVHJhY2s+CiAgICAgICAgICAgICBleGlzdGluZ1NlbmRlci5zZXRNZWRpYVN0cmVhbUlkcyhX
VEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSk7CiAgICAgICAgICAgICB0cmFuc2NlaXZlci0+ZW5hYmxl
U2VuZGluZ0RpcmVjdGlvbigpOwogICAgICAgICAgICAgc2VuZGVyID0gJmV4aXN0aW5nU2VuZGVy
OworICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAg
LTE0Niw2ICsxNDcsNyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gUlRDUGVlckNv
bm5lY3Rpb246OmFkZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPgogCiAgICAgbV9iYWNrZW5k
LT5tYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKTsKIAorICAgIG1fYmFja2VuZC0+bm90aWZ5QWRk
ZWRUcmFjaygqc2VuZGVyKTsKICAgICByZXR1cm4gUmVmPFJUQ1J0cFNlbmRlcj4geyAqc2VuZGVy
IH07CiB9CiAKQEAgLTUxMCw3ICs1MTIsNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpmaXJl
RXZlbnQoRXZlbnQmIGV2ZW50KQogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCi12b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2b2lkPiYmIHBy
b21pc2UpCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVy
JiBzZW5kZXIsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2
b2lkPiYmIHByb21pc2UpCiB7CiAgICAgbV9iYWNrZW5kLT5yZXBsYWNlVHJhY2soc2VuZGVyLCBX
VEZNb3ZlKHdpdGhUcmFjayksIFdURk1vdmUocHJvbWlzZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4
IDJjMDU2MmUzODI0ZTA1NGI1YmE4NmQ5MTcwNTY5MDE1OWUxYmZmOWQuLjI5ZjEzODk2YzA4Njgw
MDRhODIyYzU0ZDYwMmFkYWM4NjVlODI4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTE1OSw3ICsxNTks
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigp
IGNvbnN0IGZpbmFsOwogCiAgICAgLy8gUlRDUnRwU2VuZGVyQ2xpZW50Ci0gICAgdm9pZCByZXBs
YWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVBy
b21pc2U8dm9pZD4mJikgZmluYWw7CisgICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVy
JiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgZmluYWw7CiAK
ICAgICBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgbV9zaWduYWxpbmdTdGF0
ZSB7IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6U3RhYmxlIH07CiAgICAg
UGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlIG1faWNlR2F0aGVyaW5nU3Rh
dGUgeyBQZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGU6Ok5ldyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3Bw
CmluZGV4IDUzYjZmMmNkNGUyOWUwMjUyNmE5ZWExMTY4ZWJiNDhkM2E4YTU4ZGUuLjk2ODA1NDNj
ZDk3MzA0ZTYyZmY0MGRlOTQ4Nzk3ZTJmODhmYTExOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKQEAgLTM5LDMxICszOSwy
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxSVENSdHBTZW5kZXI+IFJUQ1J0cFNlbmRl
cjo6Y3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBWZWN0b3I8U3RyaW5nPiYm
IG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5kZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBjb25z
dCBTdHJpbmcmIHRyYWNrS2luZCA9IHRyYWNrLT5raW5kKCk7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUlRDUnRwU2VuZGVyKFdURk1vdmUodHJhY2spLCB0cmFja0tpbmQsIFdURk1vdmUobWVk
aWFTdHJlYW1JZHMpLCBjbGllbnQpKTsKKyAgICBhdXRvIHNlbmRlciA9IGFkb3B0UmVmKCpuZXcg
UlRDUnRwU2VuZGVyKHRyYWNrLT5raW5kKCksIFdURk1vdmUobWVkaWFTdHJlYW1JZHMpLCBjbGll
bnQpKTsKKyAgICBzZW5kZXItPnNldFRyYWNrKFdURk1vdmUodHJhY2spKTsKKyAgICByZXR1cm4g
c2VuZGVyOwogfQogCiBSZWY8UlRDUnRwU2VuZGVyPiBSVENSdHBTZW5kZXI6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIHRyYWNrS2luZCwgVmVjdG9yPFN0cmluZz4mJiBtZWRpYVN0cmVhbUlkcywgUlRD
UnRwU2VuZGVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
UnRwU2VuZGVyKG51bGxwdHIsIHRyYWNrS2luZCwgV1RGTW92ZShtZWRpYVN0cmVhbUlkcyksIGNs
aWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNlbmRlcih0cmFja0tpbmQs
IFdURk1vdmUobWVkaWFTdHJlYW1JZHMpLCBjbGllbnQpKTsKIH0KIAotUlRDUnRwU2VuZGVyOjpS
VENSdHBTZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ssIGNvbnN0IFN0cmlu
ZyYgdHJhY2tLaW5kLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5k
ZXJDbGllbnQmIGNsaWVudCkKK1JUQ1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKGNvbnN0IFN0cmlu
ZyYgdHJhY2tLaW5kLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5k
ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IFJUQ1J0cFNlbmRlclJlY2VpdmVyQmFzZSgpCiAgICAg
LCBtX3RyYWNrS2luZCh0cmFja0tpbmQpCiAgICAgLCBtX21lZGlhU3RyZWFtSWRzKFdURk1vdmUo
bWVkaWFTdHJlYW1JZHMpKQogICAgICwgbV9jbGllbnQoJmNsaWVudCkKIHsKLSAgICBzZXRUcmFj
ayhXVEZNb3ZlKHRyYWNrKSk7CiB9CiAKLXZvaWQgUlRDUnRwU2VuZGVyOjpzZXRUcmFjayhSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFjaykKK3ZvaWQgUlRDUnRwU2VuZGVyOjpzZXRUcmFj
ayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFjaykKIHsKLSAgICAvLyBTYXZlIHRoZSBpZCBm
cm9tIHRoZSBmaXJzdCBub24tbnVsbCB0cmFjayBzZXQuIFRoYXQgaWQgd2lsbCBiZSB1c2VkIHRv
IG5lZ290aWF0ZSB0aGUgc2VuZGVyCi0gICAgLy8gZXZlbiBpZiB0aGUgdHJhY2sgaXMgcmVwbGFj
ZWQuCi0gICAgaWYgKCFtX3RyYWNrICYmIHRyYWNrKQotICAgICAgICBtX3RyYWNrSWQgPSB0cmFj
ay0+aWQoKTsKLQorICAgIEFTU0VSVCghaXNTdG9wcGVkKCkpOworICAgIEFTU0VSVCghbV90cmFj
ayk7CisgICAgbV90cmFja0lkID0gdHJhY2stPmlkKCk7CiAgICAgbV90cmFjayA9IFdURk1vdmUo
dHJhY2spOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNlbmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuaAppbmRleCA5NWJlYThiN2IzMmNkMjU4ZDU0MDNiNzc2ZWFhMWFmNWM0N2Ji
ZTNiLi41YjAzMmQ3M2I0YTdlYTYwNWI1M2RlNTkyYjBkMTA1NDFmNjVjYjVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmgKQEAgLTM5
LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSVENSdHBTZW5kZXJDbGll
bnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVy
JiwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3Ry
ZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgPSAwOwogCiAgICAgdmlydHVhbCB+UlRD
UnRwU2VuZGVyQ2xpZW50KCkgeyB9CiB9OwpAQCAtNTcsMTIgKzU3LDEyIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNTdG9wcGVkKCkgY29uc3QgeyByZXR1cm4gIW1fY2xpZW50OyB9CiAgICAgdm9p
ZCBzdG9wKCkgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KLSAgICB2b2lkIHNldFRyYWNrKFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiYmKTsKKyAgICB2b2lkIHNldFRyYWNrKFJlZjxNZWRpYVN0cmVh
bVRyYWNrPiYmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlcGxhY2VUcmFjayhSZWY8TWVk
aWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYmKTsKIAogcHJpdmF0ZToKLSAgICBS
VENSdHBTZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIGNvbnN0IFN0cmluZyYgdHJh
Y2tLaW5kLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5kZXJDbGll
bnQmKTsKKyAgICBSVENSdHBTZW5kZXIoY29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIFZlY3RvcjxT
dHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRlckNsaWVudCYpOwogCiAgICAgU3Ry
aW5nIG1fdHJhY2tJZDsKICAgICBTdHJpbmcgbV90cmFja0tpbmQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCmluZGV4IDNiZGYyYWI0YmIxZjQwNzZmYzMwODgz
ZmQzYWVkMTQ1YzAyYzRkYjguLjVmYWQ0NGY0OWMwZjQ3YmE4Yzk3ODllY2ExNmM3Nzk5NjBhMWEw
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC0x
NTgsMTkgKzE1OCwzNCBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvU2V0UmVtb3Rl
RGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkZXNjcgogICAgIG1fYmFja2VuZC0+
U2V0UmVtb3RlRGVzY3JpcHRpb24oJm1fc2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2
ZXIsIHNlc3Npb25EZXNjcmlwdGlvbi5yZWxlYXNlKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0
ZDo6c3RyaW5nIHN0cmVhbUlkKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotICAg
IGF1dG8mIHNlbmRlcnMgPSBjb25uZWN0aW9uLmdldFNlbmRlcnMoKTsKLSAgICBpZiAoc2VuZGVy
cy5zaXplKCkpIHsKLSAgICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMp
IHsKLSAgICAgICAgICAgIGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7Ci0gICAgICAgICAg
ICBpZiAodHJhY2spIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoc2VuZGVyLm1lZGlhU3RyZWFt
SWRzKCkuc2l6ZSgpID09IDEpOwotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZyhz
ZW5kZXIubWVkaWFTdHJlYW1JZHMoKS5maXJzdCgpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Cit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmFkZFRyYWNrKE1l
ZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVkaWFTdHJlYW1J
ZHMpCit7CisgICAgaWYgKCFMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzdGQ6OnZlY3Rvcjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKj4g
bWVkaWFTdHJlYW1zOworICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFt
SW50ZXJmYWNlPiBtZWRpYVN0cmVhbSA9IG51bGxwdHI7CisgICAgaWYgKG1lZGlhU3RyZWFtSWRz
LnNpemUoKSkgeworICAgICAgICAvLyBsaWJ3ZWJydGMgaXMgb25seSB1c2luZyB0aGUgZmlyc3Qg
b25lIGlmIGFueS4KKyAgICAgICAgbWVkaWFTdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFj
dG9yeSgpLT5DcmVhdGVMb2NhbE1lZGlhU3RyZWFtKG1lZGlhU3RyZWFtSWRzWzBdLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBtZWRpYVN0cmVhbXMucHVzaF9iYWNrKG1lZGlhU3RyZWFtLmdldCgp
KTsKKyAgICB9CisgICAgCisgICAgYXV0byYgc291cmNlID0gdHJhY2suc291cmNlKCk7CisgICAg
QVNTRVJUKHNvdXJjZS50eXBlKCkgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZSk7CisKKyAg
ICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykgeworICAg
ICAgICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpjcmVh
dGUoc291cmNlKTsKKyAgICAgICAgYXV0byBhdWRpb1RyYWNrID0gTGliV2ViUlRDUHJvdmlkZXI6
OmZhY3RvcnkoKS0+Q3JlYXRlQXVkaW9UcmFjayh0cmFjay5pZCgpLnV0ZjgoKS5kYXRhKCksIHRy
YWNrU291cmNlLnB0cigpKTsKKyAgICAgICAgdHJhY2tTb3VyY2UtPnNldFRyYWNrKHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+KGF1ZGlvVHJhY2spKTsKKyAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkQXVkaW9Tb3VyY2UoV1RGTW92ZSh0cmFj
a1NvdXJjZSkpOworICAgICAgICBtX2JhY2tlbmQtPkFkZFRyYWNrKGF1ZGlvVHJhY2suZ2V0KCks
IFdURk1vdmUobWVkaWFTdHJlYW1zKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byB2aWRl
b1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Cisg
ICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNy
ZWF0ZVZpZGVvVHJhY2sodHJhY2suaWQoKS51dGY4KCkuZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIo
KSk7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1v
dmUodmlkZW9Tb3VyY2UpKTsKKyAgICAgICAgbV9iYWNrZW5kLT5BZGRUcmFjayh2aWRlb1RyYWNr
LmdldCgpLCBXVEZNb3ZlKG1lZGlhU3RyZWFtcykpOwogICAgIH0KLSAgICByZXR1cm4gImF2X2xh
YmVsIjsKIH0KIAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKCkK
QEAgLTE4MSwzMSArMTk2LDYgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0
ZU9mZmVyKCkKICAgICB9CiAgICAgICAgIAogICAgIG1faXNJbml0aWF0b3IgPSB0cnVlOwotICAg
IGF1dG8mIHNlbmRlcnMgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuZ2V0
U2VuZGVycygpOwotICAgIGlmIChzZW5kZXJzLnNpemUoKSkgewotICAgICAgICAvLyBGSVhNRTog
V2Ugb25seSBzdXBwb3J0IG9uZSBzdHJlYW0gZm9yIHRoZSBtb21lbnQuCi0gICAgICAgIGF1dG8g
c3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxNZWRpYVN0
cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsKLSAg
ICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKLSAgICAgICAgICAg
IGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7Ci0gICAgICAgICAgICBpZiAodHJhY2spIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoc2VuZGVyLm1lZGlhU3RyZWFtSWRzKCkuc2l6ZSgpID09
IDEpOwotICAgICAgICAgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLT5zb3VyY2UoKTsKLSAg
ICAgICAgICAgICAgICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpB
dWRpbykgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoc291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAg
YXV0byBydGNUcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUF1ZGlv
VHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOwotICAg
ICAgICAgICAgICAgICAgICB0cmFja1NvdXJjZS0+c2V0VHJhY2socnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4ocnRjVHJhY2spKTsKLSAgICAgICAgICAgICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkQXVkaW9Tb3VyY2UoV1RGTW92ZSh0cmFj
a1NvdXJjZSkpOwotICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUo
cnRjVHJhY2spKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICBhdXRvIHZpZGVvU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpjcmVhdGUo
c291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gTGliV2ViUlRD
UHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlVmlkZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCku
ZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1vdmUodmlkZW9Tb3VyY2UpKTsKLSAg
ICAgICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHZpZGVvVHJhY2spKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbV9i
YWNrZW5kLT5BZGRTdHJlYW0oc3RyZWFtKTsKLSAgICB9CiAgICAgbV9iYWNrZW5kLT5DcmVhdGVP
ZmZlcigmbV9jcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciwgbnVsbHB0cik7CiB9CiAK
QEAgLTIxNywzNyArMjA3LDEzIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVh
dGVBbnN3ZXIoKQogICAgIH0KIAogICAgIG1faXNJbml0aWF0b3IgPSBmYWxzZTsKLQotICAgIGF1
dG8mIHNlbmRlcnMgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkuZ2V0U2Vu
ZGVycygpOwotICAgIGlmIChzZW5kZXJzLnNpemUoKSkgewotICAgICAgICAvLyBGSVhNRTogV2Ug
b25seSBzdXBwb3J0IG9uZSBzdHJlYW0gZm9yIHRoZSBtb21lbnQuCi0gICAgICAgIGF1dG8gc3Ry
ZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxNZWRpYVN0cmVh
bShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsKLSAgICAg
ICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKLSAgICAgICAgICAgIGF1
dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7Ci0gICAgICAgICAgICBpZiAodHJhY2spIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoc2VuZGVyLm1lZGlhU3RyZWFtSWRzKCkuc2l6ZSgpID09IDEp
OwotICAgICAgICAgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLT5zb3VyY2UoKTsKLSAgICAg
ICAgICAgICAgICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
bykgewotICAgICAgICAgICAgICAgICAgICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoc291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0
byBydGNUcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUF1ZGlvVHJh
Y2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOwotICAgICAg
ICAgICAgICAgICAgICB0cmFja1NvdXJjZS0+c2V0VHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4ocnRjVHJhY2spKTsKLSAgICAgICAgICAgICAgICAg
ICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkQXVkaW9Tb3VyY2UoV1RGTW92ZSh0cmFja1Nv
dXJjZSkpOwotICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUocnRj
VHJhY2spKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBh
dXRvIHZpZGVvU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpjcmVhdGUoc291
cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gTGliV2ViUlRDUHJv
dmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlVmlkZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0
YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fcGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1vdmUodmlkZW9Tb3VyY2UpKTsKLSAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHZpZGVvVHJhY2spKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbV9iYWNr
ZW5kLT5BZGRTdHJlYW0oc3RyZWFtKTsKLSAgICB9CiAgICAgbV9iYWNrZW5kLT5DcmVhdGVBbnN3
ZXIoJm1fY3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIsIG51bGxwdHIpOwogfQogCiB2
b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqIHRy
YWNrLCBjb25zdCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UpCiB7CisgICAgVU5VU0VEX1BBUkFN
KHRyYWNrKTsKKyAgICBVTlVTRURfUEFSQU0ocHJvbWlzZSk7CiAgICAgbV9iYWNrZW5kLT5HZXRT
dGF0cyhTdGF0c0NvbGxlY3Rvcjo6Y3JlYXRlKCp0aGlzLCBwcm9taXNlLCB0cmFjaykuZ2V0KCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXggMjhk
MTlkODllMGUwZmI5YjZmN2YwYWZiODI5NGZkYjY4YmRhZmMzZS4uNmU2Yzc2NThjZjk1NjliNDMz
MTc0ZWE1ZmMxYzM5MjgwYzM0MzhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuaApAQCAtNzksNiArNzksOCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKICAgICBSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24oKSBjb25z
dDsKIAorICAgIHZvaWQgYWRkVHJhY2soTWVkaWFTdHJlYW1UcmFjayYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7CisKIHByaXZhdGU6CiAgICAgTGliV2ViUlRDTWVkaWFFbmRwb2ludChMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQmLCBMaWJXZWJSVENQcm92aWRlciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRl
eCBiOWVhOWIxODZhMmIxOWQ3N2Q0N2E4NTM1YjExNDI2YWYxYzQ1MjMzLi5iYTkzZTdkYWYzMWM1
M2IxN2IzYmZhZmRkNjQ0ZjAxNmU5YWQ2MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTE2OSwxMSArMTY5LDYgQEAg
dm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvU3RvcCgpCiAKIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0ZSkKIHsKLSAgICBpZiAoIW1faXNSZW1vdGVEZXNjcmlwdGlvblNldCkg
ewotICAgICAgICBhZGRJY2VDYW5kaWRhdGVGYWlsZWQoRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFU
RV9FUlIsICJObyByZW1vdGUgZGVzY3JpcHRpb24gc2V0IiB9KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIHdlYnJ0Yzo6U2RwUGFyc2VFcnJvciBlcnJvcjsKICAgICBpbnQgc2RwTUxp
bmVJbmRleCA9IGNhbmRpZGF0ZS5zZHBNTGluZUluZGV4KCkgPyBjYW5kaWRhdGUuc2RwTUxpbmVJ
bmRleCgpLnZhbHVlKCkgOiAwOwogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OkljZUNhbmRp
ZGF0ZUludGVyZmFjZT4gcnRjQ2FuZGlkYXRlKHdlYnJ0Yzo6Q3JlYXRlSWNlQ2FuZGlkYXRlKGNh
bmRpZGF0ZS5zZHBNaWQoKS51dGY4KCkuZGF0YSgpLCBzZHBNTGluZUluZGV4LCBjYW5kaWRhdGUu
Y2FuZGlkYXRlKCkudXRmOCgpLmRhdGEoKSwgJmVycm9yKSk7CkBAIC0yNTAsNiArMjQ1LDEyIEBA
IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6cmVtb3RlRGVzY3JpcHRpb24oCiAgICAgcmV0dXJuIG1fZW5kcG9pbnQtPnJlbW90ZURl
c2NyaXB0aW9uKCk7CiB9CiAKK3ZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpu
b3RpZnlBZGRlZFRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQoreworICAgIEFTU0VSVChzZW5k
ZXIudHJhY2soKSk7CisgICAgbV9lbmRwb2ludC0+YWRkVHJhY2soKnNlbmRlci50cmFjaygpLCBz
ZW5kZXIubWVkaWFTdHJlYW1JZHMoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IDJlNDIxYWQwZmQwMzVkYjc4OTk4MTc4NTNi
MDkzMWE3ODdhNmIxMjkuLjg1NjAwNTNkZDQyNjYxMDEzNzZhNzI1ZDU1OTBkZDFmMTYwYWNiYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oCkBAIC02Nyw5ICs2NywxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVz
Y3JpcHRpb24+IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIFJl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbigpIGNv
bnN0IGZpbmFsOwogCisgICAgdm9pZCBub3RpZnlBZGRlZFRyYWNrKFJUQ1J0cFNlbmRlciYpIGZp
bmFsOwogICAgIC8vIEZJWE1FOiBBUEkgdG8gaW1wbGVtZW50IGZvciByZWFsCiAgICAgVmVjdG9y
PFJlZlB0cjxNZWRpYVN0cmVhbT4+IGdldFJlbW90ZVN0cmVhbXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB7IH07IH0KLSAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWZQdHI8
TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZTx2b2lkPiYmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwg
RE9NUHJvbWlzZTx2b2lkPiYmKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgZW11bGF0ZVBsYXRmb3Jt
RXZlbnQoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCAyZjgwYWZh
Y2I5OWJjZWQwZTk1MjQ1NTQ1ZTRlMzFkZmYxZmZmMjE4Li43NmU2OTZjODA4ZGI4ZDNkMjk5YzY5
YjAxYjA2NmM5ODFiOTAxZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0yMjYsMjEgKzIyNiwzMSBAQCBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEYXRhQ2hhbm5lbEludGVyZmFjZT4gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uOjpDcgogICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2Jq
ZWN0PE1vY2tMaWJXZWJSVENEYXRhQ2hhbm5lbD4oc3RkOjpzdHJpbmcobGFiZWwpLCBwYXJhbWV0
ZXJzLm9yZGVyZWQsIHBhcmFtZXRlcnMucmVsaWFibGUsIHBhcmFtZXRlcnMuaWQpOwogfQogCi1i
b29sIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6QWRkU3RyZWFtKHdlYnJ0Yzo6TWVkaWFT
dHJlYW1JbnRlcmZhY2UqIHN0cmVhbSkKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlJ0cFNl
bmRlckludGVyZmFjZT4gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpBZGRUcmFjayh3ZWJy
dGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqIHRyYWNrLCBzdGQ6OnZlY3Rvcjx3ZWJydGM6
Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKj4gc3RyZWFtcykKIHsKLSAgICBtX3N0cmVhbSA9IHN0cmVh
bTsKICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDU2lnbmFsaW5nVGhyZWFkKFtv
YnNlcnZlciA9ICZtX29ic2VydmVyXSB7CiAgICAgICAgIG9ic2VydmVyLT5PblJlbmVnb3RpYXRp
b25OZWVkZWQoKTsKICAgICB9KTsKLSAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChzdHJlYW1z
LnNpemUoKSkKKyAgICAgICAgbV9zdHJlYW1MYWJlbCA9IHN0cmVhbXMuZnJvbnQoKS0+bGFiZWwo
KTsKKworICAgIG1fc2VuZGVycy5hcHBlbmQobmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDxNb2Nr
UnRwU2VuZGVyPihydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50
ZXJmYWNlPih0cmFjaykpKTsKKyAgICByZXR1cm4gbV9zZW5kZXJzLmxhc3QoKS5nZXQoKTsKIH0K
IAotdm9pZCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OlJlbW92ZVN0cmVhbSh3ZWJydGM6
Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKikKK2Jvb2wgTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
OjpSZW1vdmVUcmFjayh3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZSogc2VuZGVyKQogewogICAg
IExpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENTaWduYWxpbmdUaHJlYWQoW29ic2VydmVy
ID0gJm1fb2JzZXJ2ZXJdIHsKICAgICAgICAgb2JzZXJ2ZXItPk9uUmVuZWdvdGlhdGlvbk5lZWRl
ZCgpOwogICAgIH0pOwotICAgIG1fc3RyZWFtID0gbnVsbHB0cjsKKyAgICBib29sIGlzUmVtb3Zl
ZCA9IGZhbHNlOworICAgIHJldHVybiBtX3NlbmRlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJl0o
YXV0byYgaXRlbSkgeworICAgICAgICBpZiAoaXRlbS5nZXQoKSAhPSBzZW5kZXIpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlzUmVtb3ZlZCA9IHRydWU7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0pOwogfQogCiB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bjo6Q3JlYXRlT2ZmZXIod2VicnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciog
b2JzZXJ2ZXIsIGNvbnN0IHdlYnJ0Yzo6TWVkaWFDb25zdHJhaW50c0ludGVyZmFjZSopCkBAIC0y
NTIsMTAgKzI2MiwxMyBAQCB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3JlYXRl
T2ZmZXIod2VicnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYgogICAgICAgICAgICAgIm89
LSA1NjY3MDk0NjQ0MjY2OTMwODQ1ICIgPDwgbV9jb3VudGVyKysgPDwgIiBJTiBJUDQgMTI3LjAu
MC4xXHJcbiIKICAgICAgICAgICAgICJzPS1cclxuIgogICAgICAgICAgICAgInQ9MCAwXHJcbiI7
Ci0gICAgICAgIGlmIChtX3N0cmVhbSkgeworICAgICAgICBpZiAobV9zZW5kZXJzLnNpemUoKSkg
ewogICAgICAgICAgICAgdW5zaWduZWQgcGFydENvdW50ZXIgPSAxOwotICAgICAgICAgICAgc2Rw
IDw8ICJhPW1zaWQtc2VtYW50aWM6V01TICIgPDwgbV9zdHJlYW0tPmxhYmVsKCkgPDwgIlxyXG4i
OwotICAgICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDogbV9zdHJlYW0tPkdldEF1ZGlv
VHJhY2tzKCkpIHsKKyAgICAgICAgICAgIHNkcCA8PCAiYT1tc2lkLXNlbWFudGljOldNUyAiIDw8
IG1fc3RyZWFtTGFiZWwgPDwgIlxyXG4iOworICAgICAgICAgICAgZm9yIChhdXRvJiBzZW5kZXIg
OiBtX3NlbmRlcnMpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHRyYWNrID0gc2VuZGVyLT50cmFj
aygpOworICAgICAgICAgICAgICAgIGlmICh0cmFjay0+a2luZCgpICE9ICJhdWRpbyIpCisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIHNkcCA8PAogICAgICAg
ICAgICAgICAgICAgICAibT1hdWRpbyA5IFVEUC9UTFMvUlRQL1NBVlBGIDExMSA4IDBcclxuIgog
ICAgICAgICAgICAgICAgICAgICAiYz1JTiBJUDQgMC4wLjAuMFxyXG4iCkBAIC0yNjYsMTMgKzI3
OSwxNiBAQCB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3JlYXRlT2ZmZXIod2Vi
cnRjOjpDcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYgogICAgICAgICAgICAgICAgICAgICAiYT1y
dHBtYXA6OCBQQ01BLzgwMDBcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1ydHBtYXA6MCBQ
Q01VLzgwMDBcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1zc3JjOjM0MDkxNzM3MTcgY25h
bWU6L2NoS3pDUzlLNktPZ0wwblxyXG4iCi0gICAgICAgICAgICAgICAgICAgICJhPW1zaWQ6IiA8
PCBtX3N0cmVhbS0+bGFiZWwoKSA8PCAiICIgPDwgYXVkaW9UcmFjay0+aWQoKSA8PCAiXHJcbiIK
KyAgICAgICAgICAgICAgICAgICAgImE9bXNpZDoiIDw8IG1fc3RyZWFtTGFiZWwgPDwgIiAiIDw8
IHRyYWNrLT5pZCgpIDw8ICJcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1pY2UtdWZyYWc6
ZS9CMVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJhPWljZS1wd2Q6WW90azNJbTNtbnlpKzFR
MzhwNTFNRHViXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9ZmluZ2VycHJpbnQ6c2hhLTI1
NiA4Qjo4NzowOTo4QTo1RDpDMjpGMzozMzpFRjpDNTpCMTpGNjo4NDozQTozRDpENjpBMzpFMjo5
QzoxNzo0QzpFNzo0NjozQjoxQjpDRTo4NDo5ODpERDo4RTpBRjo3QlxyXG4iCiAgICAgICAgICAg
ICAgICAgICAgICJhPXNldHVwOmFjdHBhc3NcclxuIjsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGZvciAoYXV0byYgdmlkZW9UcmFjayA6IG1fc3RyZWFtLT5HZXRWaWRlb1RyYWNrcygpKSB7
CisgICAgICAgICAgICBmb3IgKGF1dG8mIHNlbmRlciA6IG1fc2VuZGVycykgeworICAgICAgICAg
ICAgICAgIGF1dG8gdHJhY2sgPSBzZW5kZXItPnRyYWNrKCk7CisgICAgICAgICAgICAgICAgaWYg
KHRyYWNrLT5raW5kKCkgIT0gInZpZGVvIikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgc2RwIDw8CiAgICAgICAgICAgICAgICAgICAgICJtPXZpZGVvIDkg
VURQL1RMUy9SVFAvU0FWUEYgMTAzIDEwMCAxMjBcclxuIgogICAgICAgICAgICAgICAgICAgICAi
Yz1JTiBJUDQgMC4wLjAuMFxyXG4iCkBAIC0yOTAsNyArMzA2LDcgQEAgdm9pZCBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb246OkNyZWF0ZU9mZmVyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2Ny
aXB0aW9uT2IKICAgICAgICAgICAgICAgICAgICAgImE9cnRjcC1mYjoxMDMgY2NtIGZpclxyXG4i
CiAgICAgICAgICAgICAgICAgICAgICJhPXJ0Y3AtZmI6MTAwIGNjbSBmaXJcclxuIgogICAgICAg
ICAgICAgICAgICAgICAiYT1zc3JjOjM0MDkxNzM3MTggY25hbWU6L2NoS3pDUzlLNktPZ0wwblxy
XG4iCi0gICAgICAgICAgICAgICAgICAgICJhPW1zaWQ6IiA8PCBtX3N0cmVhbS0+bGFiZWwoKSA8
PCAiICIgPDwgdmlkZW9UcmFjay0+aWQoKSA8PCAiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAg
ImE9bXNpZDoiIDw8IG1fc3RyZWFtTGFiZWwgPDwgIiAiIDw8IHRyYWNrLT5pZCgpIDw8ICJcclxu
IgogICAgICAgICAgICAgICAgICAgICAiYT1pY2UtdWZyYWc6ZS9CMVxyXG4iCiAgICAgICAgICAg
ICAgICAgICAgICJhPWljZS1wd2Q6WW90azNJbTNtbnlpKzFRMzhwNTFNRHViXHJcbiIKICAgICAg
ICAgICAgICAgICAgICAgImE9ZmluZ2VycHJpbnQ6c2hhLTI1NiA4Qjo4NzowOTo4QTo1RDpDMjpG
MzozMzpFRjpDNTpCMTpGNjo4NDozQTozRDpENjpBMzpFMjo5QzoxNzo0QzpFNzo0NjozQjoxQjpD
RTo4NDo5ODpERDo4RTpBRjo3QlxyXG4iCkBAIC0zMTEsOSArMzI3LDExIEBAIHZvaWQgTW9ja0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uOjpDcmVhdGVBbnN3ZXIod2VicnRjOjpDcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25PCiAgICAgICAgICAgICAibz0tIDU2NjcwOTQ2NDQyNjY5MzA4NDYgIiA8PCBt
X2NvdW50ZXIrKyA8PCAiIElOIElQNCAxMjcuMC4wLjFcclxuIgogICAgICAgICAgICAgInM9LVxy
XG4iCiAgICAgICAgICAgICAidD0wIDBcclxuIjsKLSAgICAgICAgaWYgKG1fc3RyZWFtKSB7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBtX3N0cmVhbS0+R2V0QXVkaW9UcmFj
a3MoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoYXVkaW9UcmFjaywgISFhdWRp
b1RyYWNrKTsKKyAgICAgICAgaWYgKG1fc2VuZGVycy5zaXplKCkpIHsKKyAgICAgICAgICAgIGZv
ciAoYXV0byYgc2VuZGVyIDogbV9zZW5kZXJzKSB7CisgICAgICAgICAgICAgICAgYXV0byB0cmFj
ayA9IHNlbmRlci0+dHJhY2soKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAh
PSAiYXVkaW8iKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICBzZHAgPDwKICAgICAgICAgICAgICAgICAgICAgIm09YXVkaW8gOSBVRFAvVExTL1JUUC9TQVZQ
RiAxMTEgOCAwXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImM9SU4gSVA0IDAuMC4wLjBcclxu
IgpAQCAtMzI5LDggKzM0NywxMCBAQCB2b2lkIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6
Q3JlYXRlQW5zd2VyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uTwogICAgICAgICAg
ICAgICAgICAgICAiYT1maW5nZXJwcmludDpzaGEtMjU2IDhCOjg3OjA5OjhBOjVEOkMyOkYzOjMz
OkVGOkM1OkIxOkY2Ojg0OjNBOjNEOkQ2OkEzOkUyOjlDOjE3OjRDOkU3OjQ2OjNCOjFCOkNFOjg0
Ojk4OkREOjhFOkFGOjdCXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9c2V0dXA6YWN0aXZl
XHJcbiI7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sg
OiBtX3N0cmVhbS0+R2V0VmlkZW9UcmFja3MoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVF9V
TlVTRUQodmlkZW9UcmFjaywgISF2aWRlb1RyYWNrKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYg
c2VuZGVyIDogbV9zZW5kZXJzKSB7CisgICAgICAgICAgICAgICAgYXV0byB0cmFjayA9IHNlbmRl
ci0+dHJhY2soKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAhPSAidmlkZW8i
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBzZHAgPDwK
ICAgICAgICAgICAgICAgICAgICAgIm09dmlkZW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMDMgMTAw
IDEyMFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJjPUlOIElQNCAwLjAuMC4wXHJcbiIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oCmluZGV4IDNlNWZiYmYxMjM5YTg1NDA3MjQ0ZmNiMzhkOGIxMzljYTNjNjUxM2YuLjAyMWI0
NDE5MWY3M2YzYmU1Y2EwNWVhZWFmODJlMGFhOWEyOWY5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtMzQsNiAr
MzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsK
K2NsYXNzIE1vY2tSdHBTZW5kZXI7CiAKIHZvaWQgdXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFj
dG9yeShMaWJXZWJSVENQcm92aWRlciosIGNvbnN0IFN0cmluZyYpOwogCkBAIC01OCwxMiArNTks
MTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIFN0b3BSdGNFdmVudExvZygpIG92ZXJyaWRlIHsgfQog
ICAgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZSB7IH0KIAorICAgIGJvb2wgQWRkU3RyZWFtKHdlYnJ0
Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2UqKSBmaW5hbCB7IH0KKyAgICB2b2lkIFJlbW92ZVN0cmVh
bSh3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKikgZmluYWwgeyB9CisKIHByb3RlY3RlZDoK
ICAgICB2b2lkIFNldFJlbW90ZURlc2NyaXB0aW9uKHdlYnJ0Yzo6U2V0U2Vzc2lvbkRlc2NyaXB0
aW9uT2JzZXJ2ZXIqLCB3ZWJydGM6OlNlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZSopIGZpbmFs
OwogICAgIHZvaWQgQ3JlYXRlQW5zd2VyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9u
T2JzZXJ2ZXIqLCBjb25zdCB3ZWJydGM6Ok1lZGlhQ29uc3RyYWludHNJbnRlcmZhY2UqKSBmaW5h
bDsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEYXRhQ2hhbm5lbEludGVyZmFjZT4g
Q3JlYXRlRGF0YUNoYW5uZWwoY29uc3Qgc3RkOjpzdHJpbmcmLCBjb25zdCB3ZWJydGM6OkRhdGFD
aGFubmVsSW5pdCopIGZpbmFsOwotICAgIGJvb2wgQWRkU3RyZWFtKHdlYnJ0Yzo6TWVkaWFTdHJl
YW1JbnRlcmZhY2UqKSBmaW5hbDsKLSAgICB2b2lkIFJlbW92ZVN0cmVhbSh3ZWJydGM6Ok1lZGlh
U3RyZWFtSW50ZXJmYWNlKikgZmluYWw7CisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
UnRwU2VuZGVySW50ZXJmYWNlPiBBZGRUcmFjayh3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRl
cmZhY2UqLCBzdGQ6OnZlY3Rvcjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKj4gc3RyZWFt
cykgZmluYWw7CisgICAgYm9vbCBSZW1vdmVUcmFjayh3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFj
ZSopIGZpbmFsOwogCiAgICAgdm9pZCBTZXRMb2NhbERlc2NyaXB0aW9uKHdlYnJ0Yzo6U2V0U2Vz
c2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqLCB3ZWJydGM6OlNlc3Npb25EZXNjcmlwdGlvbkludGVy
ZmFjZSopIG92ZXJyaWRlOwogICAgIGJvb2wgR2V0U3RhdHMod2VicnRjOjpTdGF0c09ic2VydmVy
Kiwgd2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlKiwgU3RhdHNPdXRwdXRMZXZlbCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTczLDEwICs3NywxMSBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG1fb2JzZXJ2ZXI7CiAgICAg
dW5zaWduZWQgbV9jb3VudGVyIHsgMCB9OwotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6
Ok1lZGlhU3RyZWFtSW50ZXJmYWNlPiBtX3N0cmVhbTsKKyAgICBWZWN0b3I8cnRjOjpzY29wZWRf
cmVmcHRyPE1vY2tSdHBTZW5kZXI+PiBtX3NlbmRlcnM7CiAgICAgYm9vbCBtX2lzSW5pdGlhdG9y
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1JlY2VpdmluZ0F1ZGlvIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNSZWNlaXZpbmdWaWRlbyB7IGZhbHNlIH07CisgICAgc3RkOjpzdHJpbmcgbV9zdHJl
YW1MYWJlbDsKIH07CiAKIGNsYXNzIE1vY2tMaWJXZWJSVENTZXNzaW9uRGVzY3JpcHRpb246IHB1
YmxpYyB3ZWJydGM6OlNlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZSB7CkBAIC0xOTksNiArMjA0
LDI1IEBAIHByaXZhdGU6CiAgICAgaW50IG1faWQgeyAtMSB9OwogfTsKIAorY2xhc3MgTW9ja1J0
cFNlbmRlciA6IHB1YmxpYyB3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZSB7CitwdWJsaWM6Cisg
ICAgTW9ja1J0cFNlbmRlcihydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRy
YWNrSW50ZXJmYWNlPiYmIHRyYWNrKSA6IG1fdHJhY2soV1RGTW92ZSh0cmFjaykpIHsgfQorCisg
ICAgYm9vbCBTZXRUcmFjayh3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlh
U3RyZWFtVHJhY2tJbnRlcmZhY2U+IHRyYWNrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFj
azsgfQorICAgIAorICAgIHVpbnQzMl90IHNzcmMoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAg
Y3JpY2tldDo6TWVkaWFUeXBlIG1lZGlhX3R5cGUoKSBjb25zdCB7IHJldHVybiBjcmlja2V0OjpN
RURJQV9UWVBFX1ZJREVPOyB9CisgICAgc3RkOjpzdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiAi
IjsgfQorICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzdHJlYW1faWRzKCkgY29uc3QgeyBy
ZXR1cm4geyB9OyB9CisgICAgd2VicnRjOjpSdHBQYXJhbWV0ZXJzIEdldFBhcmFtZXRlcnMoKSBj
b25zdCB7IHJldHVybiB7IH07IH0KKyAgICBib29sIFNldFBhcmFtZXRlcnMoY29uc3Qgd2VicnRj
OjpSdHBQYXJhbWV0ZXJzJikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBydGM6OnNjb3BlZF9yZWZw
dHI8d2VicnRjOjpEdG1mU2VuZGVySW50ZXJmYWNlPiBHZXREdG1mU2VuZGVyKCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IG1fdHJhY2s7Cit9OworICAgIAogY2xhc3Mg
TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSA6IHB1YmxpYyB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4gY3JlYXRl
KFN0cmluZyYmIHRlc3RDYXNlKSB7IHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk+KFdURk1vdmUodGVzdENhc2UpKTsgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDc4MzcxNzEyYzhlZTI0Mzk2MTdhYzYzOWEzMmFlOTA0MzZhYzJkYmUuLjZlZmZkMWIw
OGM3NDBmOWVhYTk2MDg5YWVmMzlkYmJhMTkxZThjNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxNy0wMy0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
TW92ZSBsaWJ3ZWJydGMgYmFja2VuZCB0byB1c2luZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTQ3MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
Ny0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFsaWdu
IERvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoKSB3aXRoIHRoZSBDU1NPTSBzcGVjaWZpY2F0aW9u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA4YzUxZDdjYWY1MmE4MmQ3ZTE4NjI3YWEzYmFmY2MzMTdi
OWEyZjdjLi4zZDdhNWM3MjMyODdkMmIwMjE3NjkxMDYxNTkxNGZlMTg0ZTEwZWNiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTcxNCw4ICs3MTQsNiBAQCBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLWljZWNhbmRpZGF0ZS1ldmVudC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBT
ZWUgd2Via2l0Lm9yZy9iLzE2ODczNgogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1hZGRJY2VDYW5kaWRhdGUuaHRtbCBbIEZhaWx1cmUgIF0KLWZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tYWRkVHJhY2stcmV1c2Utc2VuZGVyLmh0bWwgWyBGYWlsdXJlICBdCi1m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxlZ2FjeS1zdHJlYW0tYmFzZWQtYXBp
Lmh0bWwgWyBGYWlsdXJlICBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC1lbXB0eXN0cmluZy5odG1sIFsgRmFpbHVyZSAgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvbm8tbWVkaWEtY2FsbC5odG1sIFsgRmFpbHVyZSAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvbWlzZXMtY2FsbC5o
dG1sIFsgRmFpbHVyZSAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304071</attachid>
            <date>2017-03-10 13:56:46 -0800</date>
            <delta_ts>2017-03-10 16:46:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169472-20170310135645.patch</filename>
            <type>text/plain</type>
            <size>34921</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA2ODg1Yjg0OGYzODllMjE5M2U2NWQwZmEzNjE1N2FiYTc1NGNiNmUwLi5jNWZk
NjA2MjFlZGE3YTBhZDRhMDMwOGY2ZWU3M2FhMDlmOTAzOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMy0xMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBsaWJ3ZWJydGMgYmFja2Vu
ZCB0byB1c2luZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2OTQ3MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3BjL3J0Y3N0YXRzY29sbGVjdG9yLmNjOiBNb3Zp
bmcgZnJvbSB1c2luZyBtZWRpYSBzdHJlYW0gdG8gdHJhY2tzLgorCiAyMDE3LTAzLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgSDI2NCBoYXJkd2Fy
ZSBlbmNvZGVyIGZvciBNYWMgbGlid2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE1NjYyN2RkMTY3MjE3
ZTE1MzkxODc2Mjk5OGIzNGQ0MGYyOTBkNy4uOGIxZDM1NWJmNWE3ZjA2MzZhNGY1M2NlNWVjYTE0
ZWJjOGI1YjkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE3LTAzLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGxpYndlYnJ0YyBi
YWNrZW5kIHRvIHVzaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5NDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdCBzZXRzLgorCisgICAgICAg
IFRoaXMgY2hhbmdlIGFsbG93cyB0byBtb3ZlIGF3YXkgZnJvbSBzdHJlYW1zIGFuZCB1c2UgbW9y
ZSB0cmFja3MuCisgICAgICAgIFRoaXMgYWxsb3dzIGZ1dHVyZSBiZXR0ZXIgYWxpZ25tZW50IHdp
dGggdGhlIHNwZWMgYW5kIGJldHRlciBpbXBsZW1lbnRhdGlvbiBvZiBzZW5kZXIvcmVjZW92ZXIv
dHJhbnNjZWl2ZXIuCisKKyAgICAgICAgU21hbGwgcmVmYWN0b3JpbmcgdG8gdXNlIG1vcmUgUmVm
PD4gaW4gV2ViUlRDIHRyYWNrLWJhc2VkIGNvZGUuCisgICAgICAgIEFkZGVkIGEgbm90aWZ5QWRk
ZWRUcmFjayB0byBub3RpZnkgdGhlIGJhY2tlbmQgdGhhdCBhIHRyYWNrIHdhcyBhZGRlZC4KKyAg
ICAgICAgRm9yIGxpYndlYnJ0YywgdGhpcyBhbGxvd3MgY2FsbGluZyBBZGRUcmFjayBiZWZvcmUg
bWFraW5nIHRoZSBvZmZlci4KKyAgICAgICAgVXBkYXRlZCBtb2NrIGxpYndlYnJ0YyBiYWNrZW5k
IGFjY29yZGluZ2x5LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2tUYXNrKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5vdGlmeUFkZGVkVHJhY2spOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmFkZFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNlbmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXI6OlJUQ1J0cFNlbmRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXI6OnNldFRyYWNrKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZUFuc3dlcik6CisgICAgICAgIChXZWJD
b3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpnZXRTdGF0cyk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmRvQWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZDo6bm90aWZ5QWRkZWRUcmFjayk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg6
CisgICAgICAgICogdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpBZGRUcmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OlJlbW92ZVRyYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3JlYXRl
T2ZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpD
cmVhdGVBbnN3ZXIpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUnRwU2VuZGVyOjpNb2NrUnRwU2VuZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5kZXI6OnNzcmMpOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1J0cFNlbmRlcjo6bWVkaWFfdHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUnRw
U2VuZGVyOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUnRwU2VuZGVyOjpzdHJlYW1faWRz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBTZW5kZXI6OkdldFBhcmFtZXRlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6TW9ja1J0cFNlbmRlcjo6U2V0UGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUnRwU2VuZGVyOjpHZXREdG1mU2VuZGVyKToKKwogMjAxNy0wMy0wOCAgTWF0
dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTGV0IGNsaWVudHMgY29udHJv
bCBhdXRvcGxheSBxdWlya3Mgd2l0aCB3ZWJzaXRlIHBvbGljaWVzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcGMvcnRjc3RhdHNjb2xsZWN0
b3IuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9ydGNz
dGF0c2NvbGxlY3Rvci5jYwppbmRleCAzNDdiY2E1M2VhMDFjNDU5ZjY2YjU5ZDQ4YmQwNjE2ZjVh
ZGVmMjZmLi41ZjUyYTk4OGNiNDljYTNiOWU1ODgxMGM3YTE4Y2U4MmMzNjAyNjNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9ydGNzdGF0
c2NvbGxlY3Rvci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9wYy9ydGNzdGF0c2NvbGxlY3Rvci5jYwpAQCAtMTE5OCw2ICsxMTk4LDIwIEBAIHN0ZDo6
bWFwPE1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqLCBzdGQ6OnN0cmluZz4KIFJUQ1N0YXRzQ29s
bGVjdG9yOjpQcmVwYXJlVHJhY2tUb0lEX3MoKSBjb25zdCB7CiAgIFJUQ19EQ0hFQ0soc2lnbmFs
aW5nX3RocmVhZF8tPklzQ3VycmVudCgpKTsKICAgc3RkOjptYXA8TWVkaWFTdHJlYW1UcmFja0lu
dGVyZmFjZSosIHN0ZDo6c3RyaW5nPiB0cmFja190b19pZDsKKyNpZiBkZWZpbmVkKFdFQlJUQ19X
RUJLSVRfQlVJTEQpCisgIGZvciAoYXV0byYgc2VuZGVyIDogcGNfLT5HZXRTZW5kZXJzKCkpIHsK
KyAgICBhdXRvIHRyYWNrID0gc2VuZGVyLT50cmFjaygpOworICAgIGlmICghdHJhY2spCisgICAg
ICBjb250aW51ZTsKKyAgICB0cmFja190b19pZFt0cmFjay5nZXQoKV0gPSB0cmFjay0+aWQoKTsK
KyAgfQorICBmb3IgKGF1dG8mIHJlY2VpdmVyIDogcGNfLT5HZXRSZWNlaXZlcnMoKSkgeworICAg
IGF1dG8gdHJhY2sgPSByZWNlaXZlci0+dHJhY2soKTsKKyAgICBpZiAoIXRyYWNrKQorICAgICAg
Y29udGludWU7CisgICAgdHJhY2tfdG9faWRbdHJhY2suZ2V0KCldID0gdHJhY2stPmlkKCk7Cisg
IH0KKyNlbHNlCiAgIFN0cmVhbUNvbGxlY3Rpb25JbnRlcmZhY2UqIGxvY2FsX2FuZF9yZW1vdGVf
c3RyZWFtc1tdID0KICAgICAgIHsgcGNfLT5sb2NhbF9zdHJlYW1zKCkuZ2V0KCksIHBjXy0+cmVt
b3RlX3N0cmVhbXMoKS5nZXQoKSB9OwogICBmb3IgKGF1dG8mIHN0cmVhbXMgOiBsb2NhbF9hbmRf
cmVtb3RlX3N0cmVhbXMpIHsKQEAgLTEyMTUsNiArMTIyOSw3IEBAIFJUQ1N0YXRzQ29sbGVjdG9y
OjpQcmVwYXJlVHJhY2tUb0lEX3MoKSBjb25zdCB7CiAgICAgICB9CiAgICAgfQogICB9CisjZW5k
aWYKICAgcmV0dXJuIHRyYWNrX3RvX2lkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggMTRlZTBmNWQzMTgzMzkxNGU4MmU0ODRhZjU0MjUzMmZmODRmNDdiZi4u
YjM3MDU0NDM5NTQwYzdjODAwZjAyZTA3NDU0ZDM4ZWYxMzNlZWIyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtNjkzLDcgKzY5Myw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3Jl
YXRlRGF0YUNoCiAgICAgcmV0dXJuIG1fbWVkaWFFbmRwb2ludC0+Y3JlYXRlRGF0YUNoYW5uZWxI
YW5kbGVyKGxhYmVsLCBvcHRpb25zKTsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5l
Y3Rpb246OnJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlciwgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+JiYgd2l0aFRyYWNrLCBET01Qcm9taXNlPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQg
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBz
ZW5kZXIsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHdpdGhUcmFjaywgRE9NUHJvbWlzZTx2b2lk
PiYmIHByb21pc2UpCiB7CiAgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIHRyYW5zY2VpdmVyID0gbWF0
Y2hUcmFuc2NlaXZlcihtX3BlZXJDb25uZWN0aW9uLmdldFRyYW5zY2VpdmVycygpLCBbJnNlbmRl
cl0gKFJUQ1J0cFRyYW5zY2VpdmVyJiBjdXJyZW50KSB7CiAgICAgICAgIHJldHVybiAmY3VycmVu
dC5zZW5kZXIoKSA9PSAmc2VuZGVyOwpAQCAtNzEzLDcgKzcxMyw3IEBAIHZvaWQgTWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJl
ZlB0cjxNZWRpCiAgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
OjpyZXBsYWNlVHJhY2tUYXNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBjb25zdCBTdHJpbmcmIG1p
ZCwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgd2l0aFRyYWNrLCBET01Qcm9taXNlPHZvaWQ+
JiBwcm9taXNlKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJlcGxhY2VUcmFj
a1Rhc2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIGNvbnN0IFN0cmluZyYgbWlkLCBSZWY8TWVkaWFT
dHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21pc2U8dm9pZD4mIHByb21pc2UpCiB7CiAg
ICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFNpZ25h
bGluZ1N0YXRlOjpDbG9zZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29u
bmVjdGlvbi5oCmluZGV4IDAxYjM3ODQzZDUwN2NmMWE2MTJkOTYyZjI4MDI4YThlMjhhNTU5OWMu
LmZmNDUyOGIzOGI0MDdjMDJhMjRmYmQxYzljYmI2ZWIyM2I0ZTE3YWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIFZlY3Rv
cjxSZWZQdHI8TWVkaWFTdHJlYW0+PiBnZXRSZW1vdGVTdHJlYW1zKCkgY29uc3QgZmluYWw7CiAK
ICAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IGNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHJh
bnNjZWl2ZXJNaWQsIGNvbnN0IFN0cmluZyYgdHJhY2tLaW5kLCBjb25zdCBTdHJpbmcmIHRyYWNr
SWQpIGZpbmFsOwotICAgIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlPHZvaWQ+JiYpIGZpbmFsOworICAgIHZvaWQg
cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Q
cm9taXNlPHZvaWQ+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChj
b25zdCBTdHJpbmcmIGFjdGlvbikgZmluYWw7CiAKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlVGFzayhSVENJY2VDYW5kaWRhdGUmKTsKIAotICAg
IHZvaWQgcmVwbGFjZVRyYWNrVGFzayhSVENSdHBTZW5kZXImLCBjb25zdCBTdHJpbmcmIG1pZCwg
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mKTsKKyAgICB2b2lk
IHJlcGxhY2VUcmFja1Rhc2soUlRDUnRwU2VuZGVyJiwgY29uc3QgU3RyaW5nJiBtaWQsIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlPHZvaWQ+Jik7CiAKICAgICBib29sIGxvY2Fs
RGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5
cGUpIGNvbnN0OwogICAgIGJvb2wgcmVtb3RlRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShS
VENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgK
aW5kZXggNjE5NTE4YmFmOTA2ZTA3ODZmMzYyZTZhNTg1ZjgwOWNmNzFhODg3ZC4uYjY2Yjk1YzZm
ZmU2YzhkZjI0YzI2YjU3MDcwNzM5MTNmOGVlNmNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBA
IC05Myw3ICs5Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZlY3RvcjxSZWZQdHI8TWVkaWFT
dHJlYW0+PiBnZXRSZW1vdGVTdHJlYW1zKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBSZWY8
UlRDUnRwUmVjZWl2ZXI+IGNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHJhbnNjZWl2ZXJN
aWQsIGNvbnN0IFN0cmluZyYgdHJhY2tLaW5kLCBjb25zdCBTdHJpbmcmIHRyYWNrSWQpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlPHZvaWQ+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBE
T01Qcm9taXNlPHZvaWQ+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWRkZWRUcmFj
ayhSVENSdHBTZW5kZXImKSB7IH0KIAogICAgIHZvaWQgbWFya0FzTmVlZGluZ05lZ290aWF0aW9u
KCk7CiAgICAgYm9vbCBpc05lZ290aWF0aW9uTmVlZGVkKCkgY29uc3QgeyByZXR1cm4gbV9uZWdv
dGlhdGlvbk5lZWRlZDsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMWY4ZGRkMGIxMTJmZWNjNzg5
ZDViYTQwMDA3YjY4ZGRiNzgzYzg1ZC4uZmE4MDVlOGMwMmUxMjc5ZmEwZmVjYmI5MWI3YmI0ODJi
YTk0YTZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTEyMyw2ICsxMjMsNyBAQCBFeGNlcHRpb25P
cjxSZWY8UlRDUnRwU2VuZGVyPj4gUlRDUGVlckNvbm5lY3Rpb246OmFkZFRyYWNrKFJlZjxNZWRp
YVN0cmVhbVRyYWNrPgogICAgICAgICAgICAgZXhpc3RpbmdTZW5kZXIuc2V0TWVkaWFTdHJlYW1J
ZHMoV1RGTW92ZShtZWRpYVN0cmVhbUlkcykpOwogICAgICAgICAgICAgdHJhbnNjZWl2ZXItPmVu
YWJsZVNlbmRpbmdEaXJlY3Rpb24oKTsKICAgICAgICAgICAgIHNlbmRlciA9ICZleGlzdGluZ1Nl
bmRlcjsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xNDYsNiArMTQ3LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNlbmRlcj4+IFJUQ1Bl
ZXJDb25uZWN0aW9uOjphZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4KIAogICAgIG1fYmFj
a2VuZC0+bWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCk7CiAKKyAgICBtX2JhY2tlbmQtPm5vdGlm
eUFkZGVkVHJhY2soKnNlbmRlcik7CiAgICAgcmV0dXJuIFJlZjxSVENSdHBTZW5kZXI+IHsgKnNl
bmRlciB9OwogfQogCkBAIC01MTAsNyArNTEyLDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6
ZmlyZUV2ZW50KEV2ZW50JiBldmVudCkKICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKIH0KIAot
dm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVy
LCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21pc2U8dm9pZD4m
JiBwcm9taXNlKQordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKFJUQ1J0cFNl
bmRlciYgc2VuZGVyLCBSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIERPTVByb21p
c2U8dm9pZD4mJiBwcm9taXNlKQogewogICAgIG1fYmFja2VuZC0+cmVwbGFjZVRyYWNrKHNlbmRl
ciwgV1RGTW92ZSh3aXRoVHJhY2spLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApp
bmRleCAyYzA1NjJlMzgyNGUwNTRiNWJhODZkOTE3MDU2OTAxNTllMWJmZjlkLi4yOWYxMzg5NmMw
ODY4MDA0YTgyMmM1NGQ2MDJhZGFjODY1ZTgyODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xNTksNyAr
MTU5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNp
b24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFJUQ1J0cFNlbmRlckNsaWVudAotICAgIHZvaWQg
cmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBE
T01Qcm9taXNlPHZvaWQ+JiYpIGZpbmFsOworICAgIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNl
bmRlciYsIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlPHZvaWQ+JiYpIGZpbmFs
OwogCiAgICAgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlIG1fc2lnbmFsaW5n
U3RhdGUgeyBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OlN0YWJsZSB9Owog
ICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBtX2ljZUdhdGhlcmlu
Z1N0YXRlIHsgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlOjpOZXcgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Vu
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVy
LmNwcAppbmRleCA1M2I2ZjJjZDRlMjllMDI1MjZhOWVhMTE2OGViYjQ4ZDNhOGE1OGRlLi45Njgw
NTQzY2Q5NzMwNGU2MmZmNDBkZTk0ODc5N2UyZjg4ZmExMTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwCkBAIC0zOSwzMSAr
MzksMjkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8UlRDUnRwU2VuZGVyPiBSVENSdHBT
ZW5kZXI6OmNyZWF0ZShSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFjaywgVmVjdG9yPFN0cmlu
Zz4mJiBtZWRpYVN0cmVhbUlkcywgUlRDUnRwU2VuZGVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAg
Y29uc3QgU3RyaW5nJiB0cmFja0tpbmQgPSB0cmFjay0+a2luZCgpOwotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJUQ1J0cFNlbmRlcihXVEZNb3ZlKHRyYWNrKSwgdHJhY2tLaW5kLCBXVEZNb3Zl
KG1lZGlhU3RyZWFtSWRzKSwgY2xpZW50KSk7CisgICAgYXV0byBzZW5kZXIgPSBhZG9wdFJlZigq
bmV3IFJUQ1J0cFNlbmRlcih0cmFjay0+a2luZCgpLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSwg
Y2xpZW50KSk7CisgICAgc2VuZGVyLT5zZXRUcmFjayhXVEZNb3ZlKHRyYWNrKSk7CisgICAgcmV0
dXJuIHNlbmRlcjsKIH0KIAogUmVmPFJUQ1J0cFNlbmRlcj4gUlRDUnRwU2VuZGVyOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIFZlY3RvcjxTdHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMs
IFJUQ1J0cFNlbmRlckNsaWVudCYgY2xpZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJUQ1J0cFNlbmRlcihudWxscHRyLCB0cmFja0tpbmQsIFdURk1vdmUobWVkaWFTdHJlYW1JZHMp
LCBjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTZW5kZXIodHJhY2tL
aW5kLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSwgY2xpZW50KSk7CiB9CiAKLVJUQ1J0cFNlbmRl
cjo6UlRDUnRwU2VuZGVyKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBjb25zdCBT
dHJpbmcmIHRyYWNrS2luZCwgVmVjdG9yPFN0cmluZz4mJiBtZWRpYVN0cmVhbUlkcywgUlRDUnRw
U2VuZGVyQ2xpZW50JiBjbGllbnQpCitSVENSdHBTZW5kZXI6OlJUQ1J0cFNlbmRlcihjb25zdCBT
dHJpbmcmIHRyYWNrS2luZCwgVmVjdG9yPFN0cmluZz4mJiBtZWRpYVN0cmVhbUlkcywgUlRDUnRw
U2VuZGVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBSVENSdHBTZW5kZXJSZWNlaXZlckJhc2UoKQog
ICAgICwgbV90cmFja0tpbmQodHJhY2tLaW5kKQogICAgICwgbV9tZWRpYVN0cmVhbUlkcyhXVEZN
b3ZlKG1lZGlhU3RyZWFtSWRzKSkKICAgICAsIG1fY2xpZW50KCZjbGllbnQpCiB7Ci0gICAgc2V0
VHJhY2soV1RGTW92ZSh0cmFjaykpOwogfQogCi12b2lkIFJUQ1J0cFNlbmRlcjo6c2V0VHJhY2so
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2spCit2b2lkIFJUQ1J0cFNlbmRlcjo6c2V0
VHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2spCiB7Ci0gICAgLy8gU2F2ZSB0aGUg
aWQgZnJvbSB0aGUgZmlyc3Qgbm9uLW51bGwgdHJhY2sgc2V0LiBUaGF0IGlkIHdpbGwgYmUgdXNl
ZCB0byBuZWdvdGlhdGUgdGhlIHNlbmRlcgotICAgIC8vIGV2ZW4gaWYgdGhlIHRyYWNrIGlzIHJl
cGxhY2VkLgotICAgIGlmICghbV90cmFjayAmJiB0cmFjaykKLSAgICAgICAgbV90cmFja0lkID0g
dHJhY2stPmlkKCk7Ci0KKyAgICBBU1NFUlQoIWlzU3RvcHBlZCgpKTsKKyAgICBBU1NFUlQoIW1f
dHJhY2spOworICAgIG1fdHJhY2tJZCA9IHRyYWNrLT5pZCgpOwogICAgIG1fdHJhY2sgPSBXVEZN
b3ZlKHRyYWNrKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2VuZGVyLmgKaW5kZXggOTViZWE4YjdiMzJjZDI1OGQ1NDAzYjc3NmVhYTFhZjVj
NDdiYmUzYi4uNWIwMzJkNzNiNGE3ZWE2MDViNTNkZTU5MmIwZDEwNTQxZjY1Y2I1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oCkBA
IC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUlRDUnRwU2VuZGVy
Q2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNl
bmRlciYsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlPHZvaWQ+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZjxNZWRp
YVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlPHZvaWQ+JiYpID0gMDsKIAogICAgIHZpcnR1YWwg
flJUQ1J0cFNlbmRlckNsaWVudCgpIHsgfQogfTsKQEAgLTU3LDEyICs1NywxMiBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzU3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2NsaWVudDsgfQogICAg
IHZvaWQgc3RvcCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9Ci0gICAgdm9pZCBzZXRUcmFjayhS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJik7CisgICAgdm9pZCBzZXRUcmFjayhSZWY8TWVkaWFT
dHJlYW1UcmFjaz4mJik7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXBsYWNlVHJhY2soUmVm
PE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJik7CiAKIHByaXZhdGU6Ci0g
ICAgUlRDUnRwU2VuZGVyKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBjb25zdCBTdHJpbmcm
IHRyYWNrS2luZCwgVmVjdG9yPFN0cmluZz4mJiBtZWRpYVN0cmVhbUlkcywgUlRDUnRwU2VuZGVy
Q2xpZW50Jik7CisgICAgUlRDUnRwU2VuZGVyKGNvbnN0IFN0cmluZyYgdHJhY2tLaW5kLCBWZWN0
b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzLCBSVENSdHBTZW5kZXJDbGllbnQmKTsKIAogICAg
IFN0cmluZyBtX3RyYWNrSWQ7CiAgICAgU3RyaW5nIG1fdHJhY2tLaW5kOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVk
aWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCAzYmRmMmFiNGJiMWY0MDc2ZmMz
MDg4M2ZkM2FlZDE0NWMwMmM0ZGI4Li41ZmFkNDRmNDljMGY0N2JhOGM5Nzg5ZWNhMTZjNzc5OTYw
YTFhMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcApA
QCAtMTU4LDE5ICsxNTgsMzQgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb1NldFJl
bW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYgZGVzY3IKICAgICBtX2JhY2tl
bmQtPlNldFJlbW90ZURlc2NyaXB0aW9uKCZtX3NldFJlbW90ZVNlc3Npb25EZXNjcmlwdGlvbk9i
c2VydmVyLCBzZXNzaW9uRGVzY3JpcHRpb24ucmVsZWFzZSgpKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBzdGQ6OnN0cmluZyBzdHJlYW1JZChSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsK
LSAgICBhdXRvJiBzZW5kZXJzID0gY29ubmVjdGlvbi5nZXRTZW5kZXJzKCk7Ci0gICAgaWYgKHNl
bmRlcnMuc2l6ZSgpKSB7Ci0gICAgICAgIGZvciAoUlRDUnRwU2VuZGVyJiBzZW5kZXIgOiBzZW5k
ZXJzKSB7Ci0gICAgICAgICAgICBhdXRvKiB0cmFjayA9IHNlbmRlci50cmFjaygpOwotICAgICAg
ICAgICAgaWYgKHRyYWNrKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHNlbmRlci5tZWRpYVN0
cmVhbUlkcygpLnNpemUoKSA9PSAxKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjpzdHJp
bmcoc2VuZGVyLm1lZGlhU3RyZWFtSWRzKCkuZmlyc3QoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQordm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRUcmFj
ayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1lZGlhU3Ry
ZWFtSWRzKQoreworICAgIGlmICghTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgc3RkOjp2ZWN0b3I8d2VicnRjOjpNZWRpYVN0cmVhbUludGVyZmFj
ZSo+IG1lZGlhU3RyZWFtczsKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0
cmVhbUludGVyZmFjZT4gbWVkaWFTdHJlYW0gPSBudWxscHRyOworICAgIGlmIChtZWRpYVN0cmVh
bUlkcy5zaXplKCkpIHsKKyAgICAgICAgLy8gbGlid2VicnRjIGlzIG9ubHkgdXNpbmcgdGhlIGZp
cnN0IG9uZSBpZiBhbnkuCisgICAgICAgIG1lZGlhU3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6
OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxNZWRpYVN0cmVhbShtZWRpYVN0cmVhbUlkc1swXS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgbWVkaWFTdHJlYW1zLnB1c2hfYmFjayhtZWRpYVN0cmVhbS5n
ZXQoKSk7CisgICAgfQorICAgIAorICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLnNvdXJjZSgpOwor
ICAgIEFTU0VSVChzb3VyY2UudHlwZSgpICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmUpOwor
CisgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pIHsK
KyAgICAgICAgYXV0byB0cmFja1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6
Y3JlYXRlKHNvdXJjZSk7CisgICAgICAgIGF1dG8gYXVkaW9UcmFjayA9IExpYldlYlJUQ1Byb3Zp
ZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUF1ZGlvVHJhY2sodHJhY2suaWQoKS51dGY4KCkuZGF0YSgp
LCB0cmFja1NvdXJjZS5wdHIoKSk7CisgICAgICAgIHRyYWNrU291cmNlLT5zZXRUcmFjayhydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPihhdWRpb1RyYWNrKSk7
CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZEF1ZGlvU291cmNlKFdURk1vdmUo
dHJhY2tTb3VyY2UpKTsKKyAgICAgICAgbV9iYWNrZW5kLT5BZGRUcmFjayhhdWRpb1RyYWNrLmdl
dCgpLCBXVEZNb3ZlKG1lZGlhU3RyZWFtcykpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8g
dmlkZW9Tb3VyY2UgPSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShzb3VyY2Up
OworICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgp
LT5DcmVhdGVWaWRlb1RyYWNrKHRyYWNrLmlkKCkudXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2Uu
cHRyKCkpOworICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRWaWRlb1NvdXJjZShX
VEZNb3ZlKHZpZGVvU291cmNlKSk7CisgICAgICAgIG1fYmFja2VuZC0+QWRkVHJhY2sodmlkZW9U
cmFjay5nZXQoKSwgV1RGTW92ZShtZWRpYVN0cmVhbXMpKTsKICAgICB9Ci0gICAgcmV0dXJuICJh
dl9sYWJlbCI7CiB9CiAKIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmZl
cigpCkBAIC0xODEsMzEgKzE5Niw2IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9D
cmVhdGVPZmZlcigpCiAgICAgfQogICAgICAgICAKICAgICBtX2lzSW5pdGlhdG9yID0gdHJ1ZTsK
LSAgICBhdXRvJiBzZW5kZXJzID0gbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigp
LmdldFNlbmRlcnMoKTsKLSAgICBpZiAoc2VuZGVycy5zaXplKCkpIHsKLSAgICAgICAgLy8gRklY
TUU6IFdlIG9ubHkgc3VwcG9ydCBvbmUgc3RyZWFtIGZvciB0aGUgbW9tZW50LgotICAgICAgICBh
dXRvIHN0cmVhbSA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUxvY2FsTWVk
aWFTdHJlYW0oc3RyZWFtSWQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpKSk7
Ci0gICAgICAgIGZvciAoUlRDUnRwU2VuZGVyJiBzZW5kZXIgOiBzZW5kZXJzKSB7Ci0gICAgICAg
ICAgICBhdXRvKiB0cmFjayA9IHNlbmRlci50cmFjaygpOwotICAgICAgICAgICAgaWYgKHRyYWNr
KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHNlbmRlci5tZWRpYVN0cmVhbUlkcygpLnNpemUo
KSA9PSAxKTsKLSAgICAgICAgICAgICAgICBhdXRvJiBzb3VyY2UgPSB0cmFjay0+c291cmNlKCk7
Ci0gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW8pIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB0cmFja1NvdXJjZSA9IFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVB
dWRpb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5kYXRhKCksIHRyYWNrU291cmNlLnB0cigpKTsK
LSAgICAgICAgICAgICAgICAgICAgdHJhY2tTb3VyY2UtPnNldFRyYWNrKHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+KHJ0Y1RyYWNrKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZEF1ZGlvU291cmNlKFdURk1vdmUo
dHJhY2tTb3VyY2UpKTsKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZN
b3ZlKHJ0Y1RyYWNrKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXV0byB2aWRlb1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3Jl
YXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldl
YlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCkudXRm
OCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkpOwotICAgICAgICAgICAgICAgICAgICBtX3Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5hZGRWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvU291cmNlKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNr
KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IG1fYmFja2VuZC0+QWRkU3RyZWFtKHN0cmVhbSk7Ci0gICAgfQogICAgIG1fYmFja2VuZC0+Q3Jl
YXRlT2ZmZXIoJm1fY3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIsIG51bGxwdHIpOwog
fQogCkBAIC0yMTcsMzcgKzIwNywxMyBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRv
Q3JlYXRlQW5zd2VyKCkKICAgICB9CiAKICAgICBtX2lzSW5pdGlhdG9yID0gZmFsc2U7Ci0KLSAg
ICBhdXRvJiBzZW5kZXJzID0gbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLmdl
dFNlbmRlcnMoKTsKLSAgICBpZiAoc2VuZGVycy5zaXplKCkpIHsKLSAgICAgICAgLy8gRklYTUU6
IFdlIG9ubHkgc3VwcG9ydCBvbmUgc3RyZWFtIGZvciB0aGUgbW9tZW50LgotICAgICAgICBhdXRv
IHN0cmVhbSA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZUxvY2FsTWVkaWFT
dHJlYW0oc3RyZWFtSWQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpKSk7Ci0g
ICAgICAgIGZvciAoUlRDUnRwU2VuZGVyJiBzZW5kZXIgOiBzZW5kZXJzKSB7Ci0gICAgICAgICAg
ICBhdXRvKiB0cmFjayA9IHNlbmRlci50cmFjaygpOwotICAgICAgICAgICAgaWYgKHRyYWNrKSB7
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHNlbmRlci5tZWRpYVN0cmVhbUlkcygpLnNpemUoKSA9
PSAxKTsKLSAgICAgICAgICAgICAgICBhdXRvJiBzb3VyY2UgPSB0cmFjay0+c291cmNlKCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW8pIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byB0cmFja1NvdXJjZSA9IFJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAg
IGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVBdWRp
b1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5kYXRhKCksIHRyYWNrU291cmNlLnB0cigpKTsKLSAg
ICAgICAgICAgICAgICAgICAgdHJhY2tTb3VyY2UtPnNldFRyYWNrKHJ0Yzo6c2NvcGVkX3JlZnB0
cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+KHJ0Y1RyYWNrKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZEF1ZGlvU291cmNlKFdURk1vdmUodHJh
Y2tTb3VyY2UpKTsKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3Zl
KHJ0Y1RyYWNrKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgYXV0byB2aWRlb1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRl
KHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJU
Q1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCkudXRmOCgp
LmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkpOwotICAgICAgICAgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uQmFja2VuZC5hZGRWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvU291cmNlKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIG1f
YmFja2VuZC0+QWRkU3RyZWFtKHN0cmVhbSk7Ci0gICAgfQogICAgIG1fYmFja2VuZC0+Q3JlYXRl
QW5zd2VyKCZtX2NyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk9ic2VydmVyLCBudWxscHRyKTsKIH0K
IAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNr
KiB0cmFjaywgY29uc3QgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlKQogeworICAgIFVOVVNFRF9Q
QVJBTSh0cmFjayk7CisgICAgVU5VU0VEX1BBUkFNKHByb21pc2UpOwogICAgIG1fYmFja2VuZC0+
R2V0U3RhdHMoU3RhdHNDb2xsZWN0b3I6OmNyZWF0ZSgqdGhpcywgcHJvbWlzZSwgdHJhY2spLmdl
dCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCmluZGV4
IDI4ZDE5ZDg5ZTBlMGZiOWI2ZjdmMGFmYjgyOTRmZGI2OGJkYWZjM2UuLjZlNmM3NjU4Y2Y5NTY5
YjQzMzE3NGVhNWZjMWMzOTI4MGMzNDM4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENN
ZWRpYUVuZHBvaW50LmgKQEAgLTc5LDYgKzc5LDggQEAgcHVibGljOgogICAgIFJlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKCkgY29uc3Q7CiAgICAg
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uKCkg
Y29uc3Q7CiAKKyAgICB2b2lkIGFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2smLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYpOworCiBwcml2YXRlOgogICAgIExpYldlYlJUQ01lZGlhRW5kcG9pbnQoTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGliV2ViUlRDUHJvdmlkZXImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
aW5kZXggYjllYTliMTg2YTJiMTlkNzdkNDdhODUzNWIxMTQyNmFmMWM0NTIzMy4uYmE5M2U3ZGFm
MzFjNTNiMTdiM2JmYWZkZDY0NGYwMTZlOWFkNjJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0xNjksMTEgKzE2OSw2
IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb1N0b3AoKQogCiB2b2lk
IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNl
Q2FuZGlkYXRlJiBjYW5kaWRhdGUpCiB7Ci0gICAgaWYgKCFtX2lzUmVtb3RlRGVzY3JpcHRpb25T
ZXQpIHsKLSAgICAgICAgYWRkSWNlQ2FuZGlkYXRlRmFpbGVkKEV4Y2VwdGlvbiB7IElOVkFMSURf
U1RBVEVfRVJSLCAiTm8gcmVtb3RlIGRlc2NyaXB0aW9uIHNldCIgfSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KICAgICB3ZWJydGM6OlNkcFBhcnNlRXJyb3IgZXJyb3I7CiAgICAgaW50IHNk
cE1MaW5lSW5kZXggPSBjYW5kaWRhdGUuc2RwTUxpbmVJbmRleCgpID8gY2FuZGlkYXRlLnNkcE1M
aW5lSW5kZXgoKS52YWx1ZSgpIDogMDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpJY2VD
YW5kaWRhdGVJbnRlcmZhY2U+IHJ0Y0NhbmRpZGF0ZSh3ZWJydGM6OkNyZWF0ZUljZUNhbmRpZGF0
ZShjYW5kaWRhdGUuc2RwTWlkKCkudXRmOCgpLmRhdGEoKSwgc2RwTUxpbmVJbmRleCwgY2FuZGlk
YXRlLmNhbmRpZGF0ZSgpLnV0ZjgoKS5kYXRhKCksICZlcnJvcikpOwpAQCAtMjUwLDYgKzI0NSwx
MiBAQCBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OnJlbW90ZURlc2NyaXB0aW9uKAogICAgIHJldHVybiBtX2VuZHBvaW50LT5yZW1v
dGVEZXNjcmlwdGlvbigpOwogfQogCit2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6bm90aWZ5QWRkZWRUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlcikKK3sKKyAgICBBU1NFUlQo
c2VuZGVyLnRyYWNrKCkpOworICAgIG1fZW5kcG9pbnQtPmFkZFRyYWNrKCpzZW5kZXIudHJhY2so
KSwgc2VuZGVyLm1lZGlhU3RyZWFtSWRzKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCAyZTQyMWFkMGZkMDM1ZGI3ODk5ODE3
ODUzYjA5MzFhNzg3YTZiMTI5Li44NTYwMDUzZGQ0MjY2MTAxMzc2YTcyNWQ1NTkwZGQxZjE2MGFj
YmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuaApAQCAtNjcsOSArNjcsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uPiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKICAg
ICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24o
KSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgbm90aWZ5QWRkZWRUcmFjayhSVENSdHBTZW5kZXIm
KSBmaW5hbDsKICAgICAvLyBGSVhNRTogQVBJIHRvIGltcGxlbWVudCBmb3IgcmVhbAogICAgIFZl
Y3RvcjxSZWZQdHI8TWVkaWFTdHJlYW0+PiBnZXRSZW1vdGVTdHJlYW1zKCkgY29uc3QgZmluYWwg
eyByZXR1cm4geyB9OyB9Ci0gICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVByb21pc2U8dm9pZD4mJikgZmluYWwgeyB9Cisg
ICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+
JiYsIERPTVByb21pc2U8dm9pZD4mJikgZmluYWwgeyB9CiAKICAgICB2b2lkIGVtdWxhdGVQbGF0
Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMmY4
MGFmYWNiOTliY2VkMGU5NTI0NTU0NWU0ZTMxZGZmMWZmZjIxOC4uNzZlNjk2YzgwOGRiOGQzZDI5
OWM2OWIwMWIwNjZjOTgxYjkwMWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjI2LDIxICsyMjYsMzEg
QEAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6RGF0YUNoYW5uZWxJbnRlcmZhY2U+IE1vY2tM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3IKICAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRl
ZE9iamVjdDxNb2NrTGliV2ViUlRDRGF0YUNoYW5uZWw+KHN0ZDo6c3RyaW5nKGxhYmVsKSwgcGFy
YW1ldGVycy5vcmRlcmVkLCBwYXJhbWV0ZXJzLnJlbGlhYmxlLCBwYXJhbWV0ZXJzLmlkKTsKIH0K
IAotYm9vbCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkFkZFN0cmVhbSh3ZWJydGM6Ok1l
ZGlhU3RyZWFtSW50ZXJmYWNlKiBzdHJlYW0pCitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpS
dHBTZW5kZXJJbnRlcmZhY2U+IE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6QWRkVHJhY2so
d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlKiB0cmFjaywgc3RkOjp2ZWN0b3I8d2Vi
cnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZSo+IHN0cmVhbXMpCiB7Ci0gICAgbV9zdHJlYW0gPSBz
dHJlYW07CiAgICAgTGliV2ViUlRDUHJvdmlkZXI6OmNhbGxPbldlYlJUQ1NpZ25hbGluZ1RocmVh
ZChbb2JzZXJ2ZXIgPSAmbV9vYnNlcnZlcl0gewogICAgICAgICBvYnNlcnZlci0+T25SZW5lZ290
aWF0aW9uTmVlZGVkKCk7CiAgICAgfSk7Ci0gICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoc3Ry
ZWFtcy5zaXplKCkpCisgICAgICAgIG1fc3RyZWFtTGFiZWwgPSBzdHJlYW1zLmZyb250KCktPmxh
YmVsKCk7CisKKyAgICBtX3NlbmRlcnMuYXBwZW5kKG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8
TW9ja1J0cFNlbmRlcj4ocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1UcmFj
a0ludGVyZmFjZT4odHJhY2spKSk7CisgICAgcmV0dXJuIG1fc2VuZGVycy5sYXN0KCkuZ2V0KCk7
CiB9CiAKLXZvaWQgTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uOjpSZW1vdmVTdHJlYW0od2Vi
cnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZSopCitib29sIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbjo6UmVtb3ZlVHJhY2sod2VicnRjOjpSdHBTZW5kZXJJbnRlcmZhY2UqIHNlbmRlcikKIHsK
ICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDU2lnbmFsaW5nVGhyZWFkKFtvYnNl
cnZlciA9ICZtX29ic2VydmVyXSB7CiAgICAgICAgIG9ic2VydmVyLT5PblJlbmVnb3RpYXRpb25O
ZWVkZWQoKTsKICAgICB9KTsKLSAgICBtX3N0cmVhbSA9IG51bGxwdHI7CisgICAgYm9vbCBpc1Jl
bW92ZWQgPSBmYWxzZTsKKyAgICByZXR1cm4gbV9zZW5kZXJzLnJlbW92ZUZpcnN0TWF0Y2hpbmco
WyZdKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0uZ2V0KCkgIT0gc2VuZGVyKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpc1JlbW92ZWQgPSB0cnVlOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKIH0KIAogdm9pZCBNb2NrTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb246OkNyZWF0ZU9mZmVyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2
ZXIqIG9ic2VydmVyLCBjb25zdCB3ZWJydGM6Ok1lZGlhQ29uc3RyYWludHNJbnRlcmZhY2UqKQpA
QCAtMjUyLDEwICsyNjIsMTMgQEAgdm9pZCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkNy
ZWF0ZU9mZmVyKHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2IKICAgICAgICAgICAg
ICJvPS0gNTY2NzA5NDY0NDI2NjkzMDg0NSAiIDw8IG1fY291bnRlcisrIDw8ICIgSU4gSVA0IDEy
Ny4wLjAuMVxyXG4iCiAgICAgICAgICAgICAicz0tXHJcbiIKICAgICAgICAgICAgICJ0PTAgMFxy
XG4iOwotICAgICAgICBpZiAobV9zdHJlYW0pIHsKKyAgICAgICAgaWYgKG1fc2VuZGVycy5zaXpl
KCkpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIHBhcnRDb3VudGVyID0gMTsKLSAgICAgICAgICAg
IHNkcCA8PCAiYT1tc2lkLXNlbWFudGljOldNUyAiIDw8IG1fc3RyZWFtLT5sYWJlbCgpIDw8ICJc
clxuIjsKLSAgICAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFjayA6IG1fc3RyZWFtLT5HZXRB
dWRpb1RyYWNrcygpKSB7CisgICAgICAgICAgICBzZHAgPDwgImE9bXNpZC1zZW1hbnRpYzpXTVMg
IiA8PCBtX3N0cmVhbUxhYmVsIDw8ICJcclxuIjsKKyAgICAgICAgICAgIGZvciAoYXV0byYgc2Vu
ZGVyIDogbV9zZW5kZXJzKSB7CisgICAgICAgICAgICAgICAgYXV0byB0cmFjayA9IHNlbmRlci0+
dHJhY2soKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhY2stPmtpbmQoKSAhPSAiYXVkaW8iKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBzZHAgPDwKICAg
ICAgICAgICAgICAgICAgICAgIm09YXVkaW8gOSBVRFAvVExTL1JUUC9TQVZQRiAxMTEgOCAwXHJc
biIKICAgICAgICAgICAgICAgICAgICAgImM9SU4gSVA0IDAuMC4wLjBcclxuIgpAQCAtMjY2LDEz
ICsyNzksMTYgQEAgdm9pZCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb246OkNyZWF0ZU9mZmVy
KHdlYnJ0Yzo6Q3JlYXRlU2Vzc2lvbkRlc2NyaXB0aW9uT2IKICAgICAgICAgICAgICAgICAgICAg
ImE9cnRwbWFwOjggUENNQS84MDAwXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9cnRwbWFw
OjAgUENNVS84MDAwXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9c3NyYzozNDA5MTczNzE3
IGNuYW1lOi9jaEt6Q1M5SzZLT2dMMG5cclxuIgotICAgICAgICAgICAgICAgICAgICAiYT1tc2lk
OiIgPDwgbV9zdHJlYW0tPmxhYmVsKCkgPDwgIiAiIDw8IGF1ZGlvVHJhY2stPmlkKCkgPDwgIlxy
XG4iCisgICAgICAgICAgICAgICAgICAgICJhPW1zaWQ6IiA8PCBtX3N0cmVhbUxhYmVsIDw8ICIg
IiA8PCB0cmFjay0+aWQoKSA8PCAiXHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9aWNlLXVm
cmFnOmUvQjFcclxuIgogICAgICAgICAgICAgICAgICAgICAiYT1pY2UtcHdkOllvdGszSW0zbW55
aSsxUTM4cDUxTUR1YlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJhPWZpbmdlcnByaW50OnNo
YS0yNTYgOEI6ODc6MDk6OEE6NUQ6QzI6RjM6MzM6RUY6QzU6QjE6RjY6ODQ6M0E6M0Q6RDY6QTM6
RTI6OUM6MTc6NEM6RTc6NDY6M0I6MUI6Q0U6ODQ6OTg6REQ6OEU6QUY6N0JcclxuIgogICAgICAg
ICAgICAgICAgICAgICAiYT1zZXR1cDphY3RwYXNzXHJcbiI7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2sgOiBtX3N0cmVhbS0+R2V0VmlkZW9UcmFja3Mo
KSkgeworICAgICAgICAgICAgZm9yIChhdXRvJiBzZW5kZXIgOiBtX3NlbmRlcnMpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIHRyYWNrID0gc2VuZGVyLT50cmFjaygpOworICAgICAgICAgICAgICAg
IGlmICh0cmFjay0+a2luZCgpICE9ICJ2aWRlbyIpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgIHNkcCA8PAogICAgICAgICAgICAgICAgICAgICAibT12aWRl
byA5IFVEUC9UTFMvUlRQL1NBVlBGIDEwMyAxMDAgMTIwXHJcbiIKICAgICAgICAgICAgICAgICAg
ICAgImM9SU4gSVA0IDAuMC4wLjBcclxuIgpAQCAtMjkwLDcgKzMwNiw3IEBAIHZvaWQgTW9ja0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uOjpDcmVhdGVPZmZlcih3ZWJydGM6OkNyZWF0ZVNlc3Npb25E
ZXNjcmlwdGlvbk9iCiAgICAgICAgICAgICAgICAgICAgICJhPXJ0Y3AtZmI6MTAzIGNjbSBmaXJc
clxuIgogICAgICAgICAgICAgICAgICAgICAiYT1ydGNwLWZiOjEwMCBjY20gZmlyXHJcbiIKICAg
ICAgICAgICAgICAgICAgICAgImE9c3NyYzozNDA5MTczNzE4IGNuYW1lOi9jaEt6Q1M5SzZLT2dM
MG5cclxuIgotICAgICAgICAgICAgICAgICAgICAiYT1tc2lkOiIgPDwgbV9zdHJlYW0tPmxhYmVs
KCkgPDwgIiAiIDw8IHZpZGVvVHJhY2stPmlkKCkgPDwgIlxyXG4iCisgICAgICAgICAgICAgICAg
ICAgICJhPW1zaWQ6IiA8PCBtX3N0cmVhbUxhYmVsIDw8ICIgIiA8PCB0cmFjay0+aWQoKSA8PCAi
XHJcbiIKICAgICAgICAgICAgICAgICAgICAgImE9aWNlLXVmcmFnOmUvQjFcclxuIgogICAgICAg
ICAgICAgICAgICAgICAiYT1pY2UtcHdkOllvdGszSW0zbW55aSsxUTM4cDUxTUR1YlxyXG4iCiAg
ICAgICAgICAgICAgICAgICAgICJhPWZpbmdlcnByaW50OnNoYS0yNTYgOEI6ODc6MDk6OEE6NUQ6
QzI6RjM6MzM6RUY6QzU6QjE6RjY6ODQ6M0E6M0Q6RDY6QTM6RTI6OUM6MTc6NEM6RTc6NDY6M0I6
MUI6Q0U6ODQ6OTg6REQ6OEU6QUY6N0JcclxuIgpAQCAtMzExLDkgKzMyNywxMSBAQCB2b2lkIE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbjo6Q3JlYXRlQW5zd2VyKHdlYnJ0Yzo6Q3JlYXRlU2Vz
c2lvbkRlc2NyaXB0aW9uTwogICAgICAgICAgICAgIm89LSA1NjY3MDk0NjQ0MjY2OTMwODQ2ICIg
PDwgbV9jb3VudGVyKysgPDwgIiBJTiBJUDQgMTI3LjAuMC4xXHJcbiIKICAgICAgICAgICAgICJz
PS1cclxuIgogICAgICAgICAgICAgInQ9MCAwXHJcbiI7Ci0gICAgICAgIGlmIChtX3N0cmVhbSkg
ewotICAgICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrIDogbV9zdHJlYW0tPkdldEF1ZGlv
VHJhY2tzKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGF1ZGlvVHJhY2ssICEh
YXVkaW9UcmFjayk7CisgICAgICAgIGlmIChtX3NlbmRlcnMuc2l6ZSgpKSB7CisgICAgICAgICAg
ICBmb3IgKGF1dG8mIHNlbmRlciA6IG1fc2VuZGVycykgeworICAgICAgICAgICAgICAgIGF1dG8g
dHJhY2sgPSBzZW5kZXItPnRyYWNrKCk7CisgICAgICAgICAgICAgICAgaWYgKHRyYWNrLT5raW5k
KCkgIT0gImF1ZGlvIikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAgICAgc2RwIDw8CiAgICAgICAgICAgICAgICAgICAgICJtPWF1ZGlvIDkgVURQL1RMUy9SVFAv
U0FWUEYgMTExIDggMFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJjPUlOIElQNCAwLjAuMC4w
XHJcbiIKQEAgLTMyOSw4ICszNDcsMTAgQEAgdm9pZCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rp
b246OkNyZWF0ZUFuc3dlcih3ZWJydGM6OkNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbk8KICAgICAg
ICAgICAgICAgICAgICAgImE9ZmluZ2VycHJpbnQ6c2hhLTI1NiA4Qjo4NzowOTo4QTo1RDpDMjpG
MzozMzpFRjpDNTpCMTpGNjo4NDozQTozRDpENjpBMzpFMjo5QzoxNzo0QzpFNzo0NjozQjoxQjpD
RTo4NDo5ODpERDo4RTpBRjo3QlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICJhPXNldHVwOmFj
dGl2ZVxyXG4iOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChhdXRvJiB2aWRlb1Ry
YWNrIDogbV9zdHJlYW0tPkdldFZpZGVvVHJhY2tzKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NF
UlRfVU5VU0VEKHZpZGVvVHJhY2ssICEhdmlkZW9UcmFjayk7CisgICAgICAgICAgICBmb3IgKGF1
dG8mIHNlbmRlciA6IG1fc2VuZGVycykgeworICAgICAgICAgICAgICAgIGF1dG8gdHJhY2sgPSBz
ZW5kZXItPnRyYWNrKCk7CisgICAgICAgICAgICAgICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gInZp
ZGVvIikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgc2Rw
IDw8CiAgICAgICAgICAgICAgICAgICAgICJtPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FWUEYgMTAz
IDEwMCAxMjBcclxuIgogICAgICAgICAgICAgICAgICAgICAiYz1JTiBJUDQgMC4wLjAuMFxyXG4i
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb24uaAppbmRleCAzZTVmYmJmMTIzOWE4NTQwNzI0NGZjYjM4ZDhiMTM5Y2EzYzY1MTNmLi5l
Y2NhMjk5OWU4ZDllYzUyNmY2YjE5ZWIyYzczOGJhZWQ2MWNjNjc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTM0
LDYgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGliV2ViUlRDUHJvdmlk
ZXI7CitjbGFzcyBNb2NrUnRwU2VuZGVyOwogCiB2b2lkIHVzZU1vY2tSVENQZWVyQ29ubmVjdGlv
bkZhY3RvcnkoTGliV2ViUlRDUHJvdmlkZXIqLCBjb25zdCBTdHJpbmcmKTsKIApAQCAtNTgsMTIg
KzU5LDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBTdG9wUnRjRXZlbnRMb2coKSBvdmVycmlkZSB7
IH0KICAgICB2b2lkIENsb3NlKCkgb3ZlcnJpZGUgeyB9CiAKKyAgICBib29sIEFkZFN0cmVhbSh3
ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2b2lkIFJlbW92ZVN0cmVhbSh3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKikgZmluYWwg
eyB9CisKIHByb3RlY3RlZDoKICAgICB2b2lkIFNldFJlbW90ZURlc2NyaXB0aW9uKHdlYnJ0Yzo6
U2V0U2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqLCB3ZWJydGM6OlNlc3Npb25EZXNjcmlwdGlv
bkludGVyZmFjZSopIGZpbmFsOwogICAgIHZvaWQgQ3JlYXRlQW5zd2VyKHdlYnJ0Yzo6Q3JlYXRl
U2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqLCBjb25zdCB3ZWJydGM6Ok1lZGlhQ29uc3RyYWlu
dHNJbnRlcmZhY2UqKSBmaW5hbDsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEYXRh
Q2hhbm5lbEludGVyZmFjZT4gQ3JlYXRlRGF0YUNoYW5uZWwoY29uc3Qgc3RkOjpzdHJpbmcmLCBj
b25zdCB3ZWJydGM6OkRhdGFDaGFubmVsSW5pdCopIGZpbmFsOwotICAgIGJvb2wgQWRkU3RyZWFt
KHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRlcmZhY2UqKSBmaW5hbDsKLSAgICB2b2lkIFJlbW92ZVN0
cmVhbSh3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlKikgZmluYWw7CisgICAgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiBBZGRUcmFjayh3ZWJydGM6Ok1l
ZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2UqLCBzdGQ6OnZlY3Rvcjx3ZWJydGM6Ok1lZGlhU3RyZWFt
SW50ZXJmYWNlKj4gc3RyZWFtcykgZmluYWw7CisgICAgYm9vbCBSZW1vdmVUcmFjayh3ZWJydGM6
OlJ0cFNlbmRlckludGVyZmFjZSopIGZpbmFsOwogCiAgICAgdm9pZCBTZXRMb2NhbERlc2NyaXB0
aW9uKHdlYnJ0Yzo6U2V0U2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXIqLCB3ZWJydGM6OlNlc3Np
b25EZXNjcmlwdGlvbkludGVyZmFjZSopIG92ZXJyaWRlOwogICAgIGJvb2wgR2V0U3RhdHMod2Vi
cnRjOjpTdGF0c09ic2VydmVyKiwgd2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlKiwg
U3RhdHNPdXRwdXRMZXZlbCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTczLDEwICs3
NywxMSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIm
IG1fb2JzZXJ2ZXI7CiAgICAgdW5zaWduZWQgbV9jb3VudGVyIHsgMCB9OwotICAgIHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtSW50ZXJmYWNlPiBtX3N0cmVhbTsKKyAgICBW
ZWN0b3I8cnRjOjpzY29wZWRfcmVmcHRyPE1vY2tSdHBTZW5kZXI+PiBtX3NlbmRlcnM7CiAgICAg
Ym9vbCBtX2lzSW5pdGlhdG9yIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1JlY2VpdmluZ0F1ZGlv
IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNSZWNlaXZpbmdWaWRlbyB7IGZhbHNlIH07CisgICAg
c3RkOjpzdHJpbmcgbV9zdHJlYW1MYWJlbDsKIH07CiAKIGNsYXNzIE1vY2tMaWJXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb246IHB1YmxpYyB3ZWJydGM6OlNlc3Npb25EZXNjcmlwdGlvbkludGVyZmFj
ZSB7CkBAIC0xOTksNiArMjA0LDI1IEBAIHByaXZhdGU6CiAgICAgaW50IG1faWQgeyAtMSB9Owog
fTsKIAorY2xhc3MgTW9ja1J0cFNlbmRlciA6IHB1YmxpYyB3ZWJydGM6OlJ0cFNlbmRlckludGVy
ZmFjZSB7CitwdWJsaWM6CisgICAgTW9ja1J0cFNlbmRlcihydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlPiYmIHRyYWNrKSA6IG1fdHJhY2soV1RGTW92
ZSh0cmFjaykpIHsgfQorCisgICAgYm9vbCBTZXRUcmFjayh3ZWJydGM6Ok1lZGlhU3RyZWFtVHJh
Y2tJbnRlcmZhY2UqKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IHRyYWNrKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV90cmFjazsgfQorICAgIAorICAgIHVpbnQzMl90IHNzcmMoKSBjb25zdCB7
IHJldHVybiAwOyB9CisgICAgY3JpY2tldDo6TWVkaWFUeXBlIG1lZGlhX3R5cGUoKSBjb25zdCB7
IHJldHVybiBjcmlja2V0OjpNRURJQV9UWVBFX1ZJREVPOyB9CisgICAgc3RkOjpzdHJpbmcgaWQo
KSBjb25zdCB7IHJldHVybiAiIjsgfQorICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzdHJl
YW1faWRzKCkgY29uc3QgeyByZXR1cm4geyB9OyB9CisgICAgd2VicnRjOjpSdHBQYXJhbWV0ZXJz
IEdldFBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiB7IH07IH0KKyAgICBib29sIFNldFBhcmFt
ZXRlcnMoY29uc3Qgd2VicnRjOjpSdHBQYXJhbWV0ZXJzJikgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEdG1mU2VuZGVySW50ZXJmYWNlPiBHZXREdG1m
U2VuZGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IG1fdHJhY2s7
Cit9OworICAgIAogY2xhc3MgTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSA6IHB1
YmxpYyB3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9y
eUludGVyZmFjZT4gY3JlYXRlKFN0cmluZyYmIHRlc3RDYXNlKSB7IHJldHVybiBuZXcgcnRjOjpS
ZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk+KFdURk1v
dmUodGVzdENhc2UpKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc4MzcxNzEyYzhlZTI0Mzk2MTdhYzYzOWEzMmFlOTA0
MzZhYzJkYmUuLjliMmQ5NzkwMGJkMzBiYTgzOGIzMzllMWZkY2NiOWY0NWZlZjJmNDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxNy0wMy0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgTW92ZSBsaWJ3ZWJydGMgYmFja2VuZCB0byB1c2luZyB0cmFja3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTQ3Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOgorCiAyMDE3LTAzLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgQWxpZ24gRG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCgpIHdpdGggdGhl
IENTU09NIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDhjNTFkN2NhZjUyYTgy
ZDdlMTg2MjdhYTNiYWZjYzMxN2I5YTJmN2MuLjNkN2E1YzcyMzI4N2QyYjAyMTc2OTEwNjE1OTE0
ZmUxODRlMTBlY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzE0LDggKzcxNCw2IEBAIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCiAjIFNlZSB3ZWJraXQub3JnL2IvMTY4NzM2CiBmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sIFsgRmFpbHVyZSAgXQot
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay1yZXVzZS1zZW5kZXIu
aHRtbCBbIEZhaWx1cmUgIF0KLWZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbGVn
YWN5LXN0cmVhbS1iYXNlZC1hcGkuaHRtbCBbIEZhaWx1cmUgIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL2RhdGFjaGFubmVsLWVtcHR5c3RyaW5nLmh0bWwgWyBGYWls
dXJlICBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9uby1tZWRpYS1j
YWxsLmh0bWwgWyBGYWlsdXJlICBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9wcm9taXNlcy1jYWxsLmh0bWwgWyBGYWlsdXJlICBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304092</attachid>
            <date>2017-03-10 16:18:51 -0800</date>
            <delta_ts>2017-03-10 16:21:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169472-20170310161850.patch</filename>
            <type>text/plain</type>
            <size>20730</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIxZDM1NWJmNWE3ZjA2
MzZhNGY1M2NlNWVjYTE0ZWJjOGI1YjkwYi4uOGQ4YTUzZmMyN2U3MTgwNmI4YWU5NzYxODE0MWMx
NTYyMTdiMDk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDQ5IEBACiAgICAgICAgIE1vdmUgbGli
d2VicnRjIGJhY2tlbmQgdG8gdXNpbmcgdHJhY2tzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0NzIKIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U6
OlNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6Z2V0QXVkaW9UcmFja3MpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmdldFZpZGVvVHJhY2tzKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1UcmFjazo6a2luZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRUcmFjayk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6c2FtcGxlQnVmZmVyVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoQ2FwdHVyZURldmljZU1hbmFnZXI6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0
cmFpbnRzKToKKyAgICAgICAgKENhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzb3VyY2VXaXRoVUlEKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OkFWQXVkaW9DYXB0dXJlU291cmNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0Nh
cHR1cmVTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRp
YUVuZHBvaW50OjpjcmVhdGVNdXRlZFJlbW90ZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZSk6CisKKzIwMTctMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIE1vdmUgbGlid2VicnRjIGJhY2tlbmQgdG8gdXNpbmcgdHJhY2tzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk0NzIKKwogICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgogCiAgICAgICAgIENvdmVyZWQgYnkg
Y3VycmVudCB0ZXN0IHNldHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3Bw
CmluZGV4IGViNDNiYjAyZjQ2N2JiZWI0MjZhZGQ5MTAzYWViZWE0MWRhOTIwMzguLjZmMDRkYmEz
MTgxYjBjOGY2OTUxM2M2ZTFlY2EwZGRjOTZiNGE4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2suY3BwCkBAIC01OSw3ICs1OSw3IEBAIFJlZjxDYW52YXNDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazo6U291cmNlPiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazo6U291
cmNlCiAKIC8vIEZJWE1FOiBHaXZlIHNvdXJjZSBpZCBhbmQgbmFtZQogQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6U291cmNlKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMs
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGZyYW1lUmVxdWVzdFJhdGUpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFN0cmluZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgU3RyaW5n
KCkpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFN0cmluZygpLCBUeXBlOjpWaWRlbywgU3Ry
aW5nKCkpCiAgICAgLCBtX2ZyYW1lUmVxdWVzdFJhdGUoV1RGTW92ZShmcmFtZVJlcXVlc3RSYXRl
KSkKICAgICAsIG1fcmVxdWVzdEZyYW1lVGltZXIoKnRoaXMsICZTb3VyY2U6OnJlcXVlc3RGcmFt
ZVRpbWVyRmlyZWQpCiAgICAgLCBtX2NhbnZhcygmY2FudmFzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCBkY2FjZjhmODJm
MGY1NzAzOTljZTYzNWUxM2U2NDk2ZTIxZDRiNmY5Li4yY2M5YzczZDczZmMyZmZiZjNkYTQ2OGJm
ZWI3ZmNlMTE0Y2ExYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtMTU4LDEyICsxNTgsMTIgQEAgTWVkaWFTdHJlYW1U
cmFjayogTWVkaWFTdHJlYW06OmdldFRyYWNrQnlJZChTdHJpbmcgaWQpCiAKIE1lZGlhU3RyZWFt
VHJhY2tWZWN0b3IgTWVkaWFTdHJlYW06OmdldEF1ZGlvVHJhY2tzKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gdHJhY2tWZWN0b3JGb3JUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKTsKKyAg
ICByZXR1cm4gdHJhY2tWZWN0b3JGb3JUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFja1ZlY3RvciBNZWRpYVN0cmVhbTo6Z2V0VmlkZW9U
cmFja3MoKSBjb25zdAogewotICAgIHJldHVybiB0cmFja1ZlY3RvckZvclR5cGUoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW8pOworICAgIHJldHVybiB0cmFja1ZlY3RvckZvclR5cGUoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrVmVjdG9y
IE1lZGlhU3RyZWFtOjpnZXRUcmFja3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggOTZjYzYy
OThiMjczOTZkZDJmZmJmOTY3NzFiYmQxMTVjYjkyN2Q4MS4uNTJlYTI5ZjI4OWNkZTg1OWVlYTdm
NjdmNDA3M2MxNTE4MDMzYjliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC02OCw3ICs2OCw3IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgTWVkaWFTdHJlYW1UcmFjazo6a2luZCgpIGNvbnN0CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gYXVkaW9LaW5kKCJhdWRpbyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHZpZGVvS2luZCgidmlkZW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKIAotICAgIGlmIChtX3ByaXZhdGUtPnR5cGUoKSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpbykKKyAgICBpZiAobV9wcml2YXRlLT50eXBlKCkgPT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCiAgICAgICAgIHJldHVybiBhdWRpb0tpbmQ7CiAgICAg
cmV0dXJuIHZpZGVvS2luZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHAKaW5kZXggNWZhZDQ0ZjQ5YzBmNDdiYThjOTc4OWVjYTE2Yzc3OTk2MGExYTA1MC4u
MmE1OTdmODE0OTAyMjAwYWMxMmZkMGQwNTllMzA0NTQ2YTA1MjliNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKQEAgLTE3MiwxOSArMTcyLDI0IEBAIHZv
aWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkVHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJh
Y2ssIGNvbnN0IFZlY3RvcjxTdHJpCiAgICAgfQogICAgIAogICAgIGF1dG8mIHNvdXJjZSA9IHRy
YWNrLnNvdXJjZSgpOwotICAgIEFTU0VSVChzb3VyY2UudHlwZSgpICE9IFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok5vbmUpOwotCi0gICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW8pIHsKKyAgICBzd2l0Y2ggKHNvdXJjZS50eXBlKCkpIHsKKyAgICBjYXNlIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOiB7CiAgICAgICAgIGF1dG8gdHJhY2tTb3Vy
Y2UgPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShzb3VyY2UpOwogICAgICAg
ICBhdXRvIGF1ZGlvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVB
dWRpb1RyYWNrKHRyYWNrLmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOwog
ICAgICAgICB0cmFja1NvdXJjZS0+c2V0VHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
QXVkaW9UcmFja0ludGVyZmFjZT4oYXVkaW9UcmFjaykpOwogICAgICAgICBtX3BlZXJDb25uZWN0
aW9uQmFja2VuZC5hZGRBdWRpb1NvdXJjZShXVEZNb3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAg
IG1fYmFja2VuZC0+QWRkVHJhY2soYXVkaW9UcmFjay5nZXQoKSwgV1RGTW92ZShtZWRpYVN0cmVh
bXMpKTsKLSAgICB9IGVsc2UgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86IHsKICAgICAgICAgYXV0byB2aWRlb1NvdXJj
ZSA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7CiAgICAgICAg
IGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZVZp
ZGVvVHJhY2sodHJhY2suaWQoKS51dGY4KCkuZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7CiAg
ICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1vdmUodmlk
ZW9Tb3VyY2UpKTsKICAgICAgICAgbV9iYWNrZW5kLT5BZGRUcmFjayh2aWRlb1RyYWNrLmdldCgp
LCBXVEZNb3ZlKG1lZGlhU3RyZWFtcykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNh
c2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAppbmRleCA0YzI3NGFlZTUw
Mzg3OGM4MDA5MjNmNWU4MDI3ZWI5YTBhMTBjYTA3Li5kNDcyMTkwNTY5ZGQ1ODFmYjM4YzlmODQ3
NTY1OWFkNGVkZTE1NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAg
UmVmPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNyZWF0
ZSgpCiB9CiAKIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2Uo
KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShBU0NJSUxpdGVyYWwoIldlYkF1ZGlvLSIpICsg
Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywg
Ik1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUiKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShBU0NJSUxpdGVyYWwoIldlYkF1ZGlvLSIpICsgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmlu
ZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgIk1lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGUiKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXgg
OTljMGEyYzA1MTcxZDk1ZDU4MTliZDNhNDUyODE0ZDMxNjUyZTk1NC4uN2UxMGE1MDIxZDc5YmQz
ZjUyNWNjNzczZGM2N2Q3MTY0MzBjZjAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpA
QCAtNzQzLDEyICs3NDMsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1AKICAgICAgICAgcmV0
dXJuOwogCiAgICAgc3dpdGNoICh0cmFjay50eXBlKCkpIHsKLSAgICBjYXNlIFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok5vbmU6CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25l
OgogICAgICAgICAvLyBEbyBub3RoaW5nLgogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW86CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VmlkZW86CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKICAgICAg
ICAgaWYgKCZ0cmFjayA9PSBtX2FjdGl2ZVZpZGVvVHJhY2suZ2V0KCkpCiAgICAgICAgICAgICBl
bnF1ZXVlVmlkZW9TYW1wbGUodHJhY2ssIG1lZGlhU2FtcGxlKTsKICAgICAgICAgYnJlYWs7CkBA
IC04NzQsNyArODc0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnVwZGF0ZVRyYWNrcygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH07
Ci0gICAgdXBkYXRlVHJhY2tzT2ZUeXBlKG1fYXVkaW9UcmFja01hcCwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW8sIGN1cnJlbnRUcmFja3MsICZBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
Q29jb2E6OmNyZWF0ZSwgc2V0QXVkaW9UcmFja1N0YXRlKTsKKyAgICB1cGRhdGVUcmFja3NPZlR5
cGUobV9hdWRpb1RyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgY3Vy
cmVudFRyYWNrcywgJkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYTo6Y3JlYXRlLCBz
ZXRBdWRpb1RyYWNrU3RhdGUpOwogCiAgICAgRnVuY3Rpb248dm9pZChSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbT4sIGludCwgVHJhY2tTdGF0ZSk+IHNldFZpZGVvVHJhY2tTdGF0
ZSA9IFsmXShhdXRvIHRyYWNrLCBpbnQgaW5kZXgsIFRyYWNrU3RhdGUgc3RhdGUpCiAgICAgewpA
QCAtODk2LDcgKzg5Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjp1cGRhdGVUcmFja3MoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9
OwotICAgIHVwZGF0ZVRyYWNrc09mVHlwZShtX3ZpZGVvVHJhY2tNYXAsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlZpZGVvLCBjdXJyZW50VHJhY2tzLCAmVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bTo6Y3JlYXRlLCBzZXRWaWRlb1RyYWNrU3RhdGUpOworICAgIHVwZGF0ZVRyYWNrc09mVHlwZSht
X3ZpZGVvVHJhY2tNYXAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBjdXJyZW50
VHJhY2tzLCAmVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y3JlYXRlLCBzZXRWaWRlb1Ry
YWNrU3RhdGUpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNlZWthYmxlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyLmNwcAppbmRleCAxOWZlM2EwMmZiYTQ4ZTYyNTZkMWQyYmQzNmRlMWE0M2Iz
MmMwYTJjLi4wNDMwZmM2YjEyNmUwYzljMjkxM2VmMGQxMDAwMjU5M2UyZmYzMDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVy
ZURldmljZU1hbmFnZXIuY3BwCkBAIC04MCw3ICs4MCw4IEBAIFZlY3RvcjxTdHJpbmc+IENhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGlt
ZU1lCiAgICAgICAgIH0KICAgICB9IHNvcnRCYXNlZE9uRml0bmVzc1Njb3JlOwogCi0gICAgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlID0gdHlwZSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlbyA/IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvIDogQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW87CisgICAgQVNTRVJUKHR5cGUgIT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZSk7CisgICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBk
ZXZpY2VUeXBlID0gdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyA/IENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvIDogQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6QXVkaW87CiAgICAgZm9yIChhdXRvJiBjYXB0dXJlRGV2aWNlIDogY2FwdHVyZURldmljZXMo
KSkgewogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UuZW5hYmxlZCgpIHx8IGNhcHR1cmVEZXZp
Y2UudHlwZSgpICE9IGRldmljZVR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTEwNCwx
MCArMTA1LDE5IEBAIFZlY3RvcjxTdHJpbmc+IENhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291
cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lCiBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gQ2FwdHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQoY29uc3QgU3RyaW5n
JiBkZXZpY2VVSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCiB7CiAg
ICAgZm9yIChhdXRvJiBjYXB0dXJlRGV2aWNlIDogY2FwdHVyZURldmljZXMoKSkgewotICAgICAg
ICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpOb25lKQorICAgICAgICBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGU7CisKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvOgorICAgICAgICAgICAgZGV2aWNlVHlwZSA9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkF1ZGlvOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgICAgICBkZXZpY2VUeXBlID0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6VmlkZW87CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogCi0g
ICAgICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSA9IHR5cGUgPT0gUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gPyBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRl
byA6IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvOwogICAgICAgICBpZiAoY2FwdHVy
ZURldmljZS5wZXJzaXN0ZW50SWQoKSAhPSBkZXZpY2VVSUQgfHwgY2FwdHVyZURldmljZS50eXBl
KCkgIT0gZGV2aWNlVHlwZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwCmluZGV4
IDAyZGZkZGI2MjljYWRhMzJjYWM5MDVkZDllNWNmZjcxNzEzYTZjNWIuLmU2ZmRjMjAyNDcyM2Y3
NThjNTgwNjFkMmJkNTFhMTVkMGE4YjNjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSk7IH0K
IAogcHJpdmF0ZToKLSAgICBFbXB0eVJlYWx0aW1lTWVkaWFTb3VyY2UoKSA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoZW1wdHlTdHJpbmcoKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZSwgZW1wdHlT
dHJpbmcoKSkgeyB9CisgICAgRW1wdHlSZWFsdGltZU1lZGlhU291cmNlKCkgOiBSZWFsdGltZU1l
ZGlhU291cmNlKGVtcHR5U3RyaW5nKCksIFR5cGU6Ok5vbmUsIGVtcHR5U3RyaW5nKCkpIHsgfQog
CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3Vy
Y2VTZXR0aW5nczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDI5ZDNkODMyNzEwZTM3MzU5MDE1
NzFkM2NjZDVjZWUzYzNhNjNkNDAuLmY3ZjY3ZGQ1N2YyMWRkMjgzZTRmNGE1MjFkMjU0YTE2NDk1
NDA1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHVibGljOgogICAg
IGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50
SUQ7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYgcGVy
c2lzdGVudElEKSB7IG1fcGVyc2lzdGVudElEID0gcGVyc2lzdGVudElEOyB9CiAKLSAgICBlbnVt
IFR5cGUgeyBOb25lLCBBdWRpbywgVmlkZW8gfTsKKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25l
LCBBdWRpbywgVmlkZW8gfTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KIAogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9u
YW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggNTc4ZjI4ZTAyMzA5Mzhm
ZjMxZWRkNDQ2ZmYxZDk4MWNiM2QwZmJiMS4uNWQ3ZGIzMTBlYTRlYTkyMWUwNGRhMTNiM2U3M2M0
NDEzODM5ZWM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtOTAsNyArOTAs
NyBAQCBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IEFWQXVkaW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZgogfQogCiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
QVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25z
dCBBdG9taWNTdHJpbmcmIGlkKQotICAgIDogQVZNZWRpYUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBp
ZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgOiBBVk1lZGlhQ2FwdHVyZVNvdXJj
ZShkZXZpY2UsIGlkLCBUeXBlOjpBdWRpbykKIHsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQppbmRleCA5N2Y1ZDBmZTgxZjM5ZWQxMzAwNWMyN2VjNzY2ZTc4ZDcxZjQ4ZDNk
Li40YjY3ZjNkOTMxMmY4ZTU0ZGM0MGFkMmI5NmJkMzA1NjRiZDQ0YzM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCkBAIC0xMjAsNyArMTIwLDcgQEAgUmVmUHRyPEFWTWVkaWFDYXB0
dXJlU291cmNlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5
cGVkZWYKIH0KIAogQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFW
Q2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKLSAg
ICA6IEFWTWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlZpZGVvKQorICAgIDogQVZNZWRpYUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCwgVHlwZTo6Vmlk
ZW8pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNw
cAppbmRleCBiZTdiYTExZjMwOWRjZGYzMDZiYjBiMDVhN2Y4ZmVjZjdiMGI5MWM1Li4xZWMwY2Mz
MjkzNGM2MDJlMGQ1NTdiZDNhNjljZjFjNzUzMjcyZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1I
YW5kbGVyIGNvbXBsCiAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50OwogCiAgICAgaWYgKCFh
dWRpb0RldmljZUlELmlzRW1wdHkoKSkgewotICAgICAgICBhdXRvIGF1ZGlvU291cmNlID0gQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc291cmNlV2l0aFVJRChhdWRpb0Rldmlj
ZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxp
ZENvbnN0cmFpbnQpOworICAgICAgICBhdXRvIGF1ZGlvU291cmNlID0gQVZDYXB0dXJlRGV2aWNl
TWFuYWdlcjo6c2luZ2xldG9uKCkuc291cmNlV2l0aFVJRChhdWRpb0RldmljZUlELCBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0
cmFpbnQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWlu
dC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZhaWxl
ZCB0byBhcHBseTogJXMiLCB0aGlzLCBpbnZhbGlkQ29uc3RyYWludC51dGY4KCkuZGF0YSgpKTsK
QEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNy
ZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wbAogICAgICAgICAgICAg
YXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9
CiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSkgewotICAgICAgICBhdXRvIHZpZGVv
U291cmNlID0gQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc291cmNlV2l0aFVJ
RCh2aWRlb0RldmljZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgdmlkZW9Db25zdHJh
aW50cywgaW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICBhdXRvIHZpZGVvU291cmNlID0gQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc291cmNlV2l0aFVJRCh2aWRlb0Rldmlj
ZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgdmlkZW9Db25zdHJhaW50cywg
aW52YWxpZENvbnN0cmFpbnQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgaWYgKCFpbnZh
bGlkQ29uc3RyYWludC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0
cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBpbnZhbGlkQ29uc3RyYWludC51dGY4
KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVk
aWFFbmRwb2ludC5jcHAKaW5kZXggMjUzYjZlOTM4NTZlMTlkYzUyOTMzY2E3YTFiNDZiMGFiYWUz
OGIzNi4uYzc1YzU1NDcyNGEwZmQyMDExNTllOGY2NGYyZGViMmY1MzJlOGEwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKQEAg
LTE5Niw5ICsxOTYsMTMgQEAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IE1vY2tNZWRpYUVuZHBv
aW50OjpjcmVhdGVNdXRlZFJlbW90ZVNvdXJjZShjb25zdCBTdHJpbmcKICAgICBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gc291cmNlOwogCiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2Fz
ZSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbzogc291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZU11dGVkKCJyZW1vdGUgYXVkaW8iKTsgYnJlYWs7Ci0gICAgY2FzZSBSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlbzogc291cmNlID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZU11dGVkKCJyZW1vdGUgdmlkZW8iKTsgYnJlYWs7Ci0gICAgY2FzZSBSZWFsdGltZU1l
ZGlhU291cmNlOjpOb25lOgorICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW86CisgICAgICAgIHNvdXJjZSA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVNdXRl
ZCgicmVtb3RlIGF1ZGlvIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGVNdXRlZCgicmVtb3RlIHZpZGVvIik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDUzYTYwZWJiODI1OThk
ZWY4MWM3ZTU3OGY0YzdiNjNlNzQ2NGVhMjQuLjBjNDg3N2JjZGIyMDg4ZTU0Nzg3NTk3ZjYwMjg5
YTAwMmJhMDY4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC01OSw3ICs1OSw3IEBAIFJlZlB0cjxN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZU11
dGVkKGNvbnN0IFN0cmluCiAjZW5kaWYKICAgICAKIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvLCBuYW1lKQorICAgIDogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UoY3Jl
YXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
bywgbmFtZSkKICAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OnRpY2spCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDJlMDMy
NTVhOTFhZmZmYTAzMjBmNmUyMzE1MmE4NTM4MTc1ZWM3MjEuLjcwMDQ0ZjVjZDJkOTRjYjZkZDEx
MTdmMmM0OTBkY2Q4MWFhNTczNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC04NCwxMCArODQsMTYg
QEAgQ2FwdHVyZURldmljZSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VJbmZv
KCkKIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShjb25z
dCBTdHJpbmcmIGlkLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKICAgICA6IEJhc2VSZWFsdGltZU1lZGlhU291cmNlQ2xhc3MoaWQsIHR5cGUsIG5h
bWUpCiB7Ci0gICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
bzoKICAgICAgICAgc2V0UGVyc2lzdGVudElEKG1vY2tBdWRpb1NvdXJjZVBlcnNpc3RlbnRJRCgp
KTsKLSAgICBlbHNlCisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvOgogICAgICAgICBzZXRQZXJzaXN0ZW50SUQobW9ja1ZpZGVvU291cmNl
UGVyc2lzdGVudElEKCkpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CiB9CiAKIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRp
ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcAppbmRleCA1NmM2MDdhZjkyNTRlODFiZTlhNDgyYzMwY2FhMmVl
YjIxODYwOTE0Li4yYThmNzgyMDc2YjA5MTNlOGM4M2NjNWNhYTNlZDFiZmE5ZjgxZTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcApAQCAtNjYsNyArNjYsNyBAQCBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVNdXRlZChjb25zdCBTdHJpbgog
I2VuZGlmCiAKIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZShjcmVh
dGVDYW5vbmljYWxVVUlEU3RyaW5nKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBuYW1l
KQorICAgIDogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmlu
ZygpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgbmFtZSkKICAgICAsIG1fdGlt
ZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Omdl
bmVyYXRlRnJhbWUpCiB7CiAgICAgc2V0RnJhbWVSYXRlKDMwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>