<?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>184509</bug_id>
          
          <creation_ts>2018-04-11 10:36:00 -0700</creation_ts>
          <short_desc>Preventively expect UTF8 strings from libwebrtc SDP and error messages</short_desc>
          <delta_ts>2018-04-11 14:50:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1413740</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-11 10:36:00 -0700</bug_when>
    <thetext>LibWebRTC currently sends SDP as std::string and only contains ASCII characters.
But SDP spec does not preclude use of UTF8 characters for instance for some media stream track IDs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413751</commentid>
    <comment_count>1</comment_count>
      <attachid>337716</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-04-11 11:07:03 -0700</bug_when>
    <thetext>Created attachment 337716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413825</commentid>
    <comment_count>2</comment_count>
      <attachid>337716</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-11 14:49:33 -0700</bug_when>
    <thetext>Comment on attachment 337716
Patch

Clearing flags on attachment: 337716

Committed r230548: &lt;https://trac.webkit.org/changeset/230548&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413826</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-11 14:49:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413827</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-11 14:50:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/39361377&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337716</attachid>
            <date>2018-04-11 11:07:03 -0700</date>
            <delta_ts>2018-04-11 14:49:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184509-20180411110702.patch</filename>
            <type>text/plain</type>
            <size>20322</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcxZWU2MWRhMTAzYTk0
MTQwNWM3MGQ0ZDNkMzZkNDM0YzA1ZTc0YS4uYTIyNTNkNzlkN2EzMjA4MmIyNGYwZTVjNmUyYjRj
NTdhMTQwZWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA0LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBQcmV2ZW50aXZlbHkgZXhw
ZWN0IFVURjggc3RyaW5ncyBmcm9tIGxpYndlYnJ0YyBTRFAgYW5kIGVycm9yIG1lc3NhZ2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ1MDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYkNv
cmUgY29kZSBleHBlY3QgYW55IGxpYndlYnJ0YyBzdHJpbmcgdG8gY29udGFpbiBVVEYtOC4KKyAg
ICAgICAgQ3VycmVudGx5IFNEUHMgZG8gbm90IGNvbnRhaW4gYW55IFVURi04IHNwZWNpZmljIGNo
YXJhY3RlcgorICAgICAgICBidXQgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ1NjYg
YWxsb3dzIGl0LgorCisgICAgICAgIEFkZCBJbnRlcm5hbHMgQVBJIHRvIHNldCB0cmFjayBpZCBz
byB0aGF0IHdlIGNhbiBpbmplY3QgVVRGLTggaW5zaWRlIHNvbWUgV2ViUlRDIHRlc3RzLgorICAg
ICAgICBUZXN0OiB3ZWJydGMvdXRmOC1zZHAuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bVRyYWNrOjpzZXRJZEZvclRlc3RpbmcpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZnJvbVN0ZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpmcm9tU2Vzc2lvbkRlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvU2V0TG9jYWxE
ZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpk
b1NldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlh
RW5kcG9pbnQ6Om1lZGlhU3RyZWFtRnJvbVJUQ1N0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRSZW1vdGVUcmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGREYXRhQ2hhbm5lbCk6CisgICAgICAgIChXZWJD
b3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25T
dWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Y3Jl
YXRlU2Vzc2lvbkRlc2NyaXB0aW9uRmFpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJU
Q01lZGlhRW5kcG9pbnQ6OnNldExvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uRmFpbGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNldFJlbW90ZVNlc3Npb25EZXNj
cmlwdGlvbkZhaWxlZCk6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0lkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZnJvbVN0ZFN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQWRkSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlY2VpdmVyRm9yU291cmNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldElkRm9yVGVzdGlu
Zyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpzZXRNZWRpYVN0cmVhbVRyYWNrSWRlbnRpZmllcik6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIw
MTgtMDQtMTEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
U2hvdyBwdW55Y29kZSBpZiBVUkwgY29udGFpbnMgTGF0aW4gZHVtIGNoYXJhY3RlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aAppbmRleCA3M2VhNTdjNzllNDhmMDY3MzU3ZjZhMTdhN2VhMWEwOTA5ZDUwZGJkLi5kYTFiMWMw
NjA3Yjg3YTE5OWM2MzNhMjliZGM0ZDQ0ZGNlNzI3NDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtMTM4LDYg
KzEzOCw4IEBAIHB1YmxpYzoKICAgICAvLyBBY3RpdmVET01PYmplY3QgQVBJLgogICAgIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lkIHNldElkRm9yVGVz
dGluZyhTdHJpbmcmJiBpZCkgeyBtX3ByaXZhdGUtPnNldElkRm9yVGVzdGluZyhXVEZNb3ZlKGlk
KSk7IH0KKwogcHJvdGVjdGVkOgogICAgIE1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggYjEwNTc1MjE3ZTNlNzhiZTUz
OTQwNWJjYzU2YjNhYzE1NzhlYmFmMC4uNDE1ZWY5N2M3OTE4YzM0MWIyY2VjNTlhZGFkMzU0MGMz
ZWI0ZDgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAK
QEAgLTU3LDYgKzU3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGlubGlu
ZSBTdHJpbmcgZnJvbVN0ZFN0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpCit7CisgICAg
cmV0dXJuIFN0cmluZzo6ZnJvbVVURjgodmFsdWUuZGF0YSgpLCB2YWx1ZS5sZW5ndGgoKSk7Cit9
CisKIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQoTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiBwZWVyQ29ubmVjdGlvbiwgTGliV2ViUlRDUHJvdmlk
ZXImIGNsaWVudCkKICAgICA6IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kKHBlZXJDb25uZWN0aW9u
KQogICAgICwgbV9wZWVyQ29ubmVjdGlvbkZhY3RvcnkoKmNsaWVudC5mYWN0b3J5KCkpCkBAIC0x
MTYsOSArMTIxLDggQEAgc3RhdGljIGlubGluZSBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
PiBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uKGNvbnN0IHdlYnJ0YzoKIAogICAgIHN0ZDo6c3RyaW5n
IHNkcDsKICAgICBkZXNjcmlwdGlvbi0+VG9TdHJpbmcoJnNkcCk7Ci0gICAgU3RyaW5nIHNkcFN0
cmluZyhzZHAuZGF0YSgpLCBzZHAuc2l6ZSgpKTsKIAotICAgIHJldHVybiBSVENTZXNzaW9uRGVz
Y3JpcHRpb246OmNyZWF0ZShmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24p
LCBXVEZNb3ZlKHNkcFN0cmluZykpOworICAgIHJldHVybiBSVENTZXNzaW9uRGVzY3JpcHRpb246
OmNyZWF0ZShmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24pLCBmcm9tU3Rk
U3RyaW5nKHNkcCkpOwogfQogCiAvLyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byBjcmVhdGUgYSBu
ZXcgb2JqZWN0IG9ubHkgaWYgdGhlIHNlc3Npb24gYWN0dWFsbHkgY2hhbmdlZCBmb3IgYWxsIGRl
c2NyaXB0aW9uIGdldHRlcnMuCkBAIC0xNjAsOCArMTY0LDcgQEAgdm9pZCBMaWJXZWJSVENNZWRp
YUVuZHBvaW50Ojpkb1NldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBk
ZXNjcmkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpTZXNzaW9uRGVzY3JpcHRpb25JbnRl
cmZhY2U+IHNlc3Npb25EZXNjcmlwdGlvbih3ZWJydGM6OkNyZWF0ZVNlc3Npb25EZXNjcmlwdGlv
bihzZXNzaW9uRGVzY3JpcHRpb25UeXBlKGRlc2NyaXB0aW9uLnR5cGUoKSksIGRlc2NyaXB0aW9u
LnNkcCgpLnV0ZjgoKS5kYXRhKCksICZlcnJvcikpOwogCiAgICAgaWYgKCFzZXNzaW9uRGVzY3Jp
cHRpb24pIHsKLSAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZShlcnJvci5kZXNjcmlwdGlvbi5k
YXRhKCksIGVycm9yLmRlc2NyaXB0aW9uLnNpemUoKSk7Ci0gICAgICAgIG1fcGVlckNvbm5lY3Rp
b25CYWNrZW5kLnNldExvY2FsRGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9uIHsgT3BlcmF0aW9u
RXJyb3IsIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9KTsKKyAgICAgICAgbV9wZWVyQ29ubmVjdGlv
bkJhY2tlbmQuc2V0TG9jYWxEZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24geyBPcGVyYXRpb25F
cnJvciwgZnJvbVN0ZFN0cmluZyhlcnJvci5kZXNjcmlwdGlvbikgfSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTE4MSw4ICsxODQsNyBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6OmRvU2V0UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkZXNjcgog
ICAgIHdlYnJ0Yzo6U2RwUGFyc2VFcnJvciBlcnJvcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8d2Vi
cnRjOjpTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2U+IHNlc3Npb25EZXNjcmlwdGlvbih3ZWJy
dGM6OkNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb25UeXBlKGRlc2Ny
aXB0aW9uLnR5cGUoKSksIGRlc2NyaXB0aW9uLnNkcCgpLnV0ZjgoKS5kYXRhKCksICZlcnJvcikp
OwogICAgIGlmICghc2Vzc2lvbkRlc2NyaXB0aW9uKSB7Ci0gICAgICAgIFN0cmluZyBlcnJvck1l
c3NhZ2UoZXJyb3IuZGVzY3JpcHRpb24uZGF0YSgpLCBlcnJvci5kZXNjcmlwdGlvbi5zaXplKCkp
OwotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5zZXRSZW1vdGVEZXNjcmlwdGlvbkZh
aWxlZChFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0p
OworICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5zZXRSZW1vdGVEZXNjcmlwdGlvbkZh
aWxlZChFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgZnJvbVN0ZFN0cmluZyhlcnJvci5kZXNj
cmlwdGlvbikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9iYWNrZW5kLT5TZXRS
ZW1vdGVEZXNjcmlwdGlvbigmbV9zZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciwg
c2Vzc2lvbkRlc2NyaXB0aW9uLnJlbGVhc2UoKSk7CkBAIC0zMDMsMTEgKzMwNSw2IEBAIExpYldl
YlJUQ01lZGlhRW5kcG9pbnQ6OlN0YXRzQ29sbGVjdG9yOjpTdGF0c0NvbGxlY3RvcihSZWY8TGli
V2ViUlRDTWVkaWFFbmRwb2luCiAgICAgICAgIG1faWQgPSB0cmFjay0+aWQoKTsKIH0KIAotc3Rh
dGljIGlubGluZSBTdHJpbmcgZnJvbVN0ZFN0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUp
Ci17Ci0gICAgcmV0dXJuIFN0cmluZyh2YWx1ZS5kYXRhKCksIHZhbHVlLmxlbmd0aCgpKTsKLX0K
LQogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSVENTdGF0cyhSVENTdGF0c1JlcG9ydDo6U3RhdHMm
IHN0YXRzLCBjb25zdCB3ZWJydGM6OlJUQ1N0YXRzJiBydGNTdGF0cykKIHsKICAgICBzdGF0cy50
aW1lc3RhbXAgPSBQZXJmb3JtYW5jZTo6cmVkdWNlVGltZVJlc29sdXRpb24oU2Vjb25kczo6ZnJv
bU1pY3Jvc2Vjb25kcyhydGNTdGF0cy50aW1lc3RhbXBfdXMoKSkpLm1pbGxpc2Vjb25kcygpOwpA
QCAtNjE4LDE2ICs2MTUsMTEgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPblNpZ25h
bGluZ0NoYW5nZSh3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjoKICAgICB9KTsKIH0K
IAotc3RhdGljIGlubGluZSBTdHJpbmcgdHJhY2tJZCh3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJ
bnRlcmZhY2UmIHZpZGVvVHJhY2spCi17Ci0gICAgcmV0dXJuIFN0cmluZyh2aWRlb1RyYWNrLmlk
KCkuZGF0YSgpLCB2aWRlb1RyYWNrLmlkKCkuc2l6ZSgpKTsKLX0KLQogTWVkaWFTdHJlYW0mIExp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6Om1lZGlhU3RyZWFtRnJvbVJUQ1N0cmVhbSh3ZWJydGM6Ok1l
ZGlhU3RyZWFtSW50ZXJmYWNlJiBydGNTdHJlYW0pCiB7CiAgICAgYXV0byBtZWRpYVN0cmVhbSA9
IG1fc3RyZWFtcy5lbnN1cmUoJnJ0Y1N0cmVhbSwgWyZydGNTdHJlYW0sIHRoaXNdIHsKICAgICAg
ICAgYXV0byBsYWJlbCA9IHJ0Y1N0cmVhbS5sYWJlbCgpOwotICAgICAgICBhdXRvIHN0cmVhbSA9
IE1lZGlhU3RyZWFtOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24o
KS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHsg
fSwgU3RyaW5nKGxhYmVsLmRhdGEoKSwgbGFiZWwuc2l6ZSgpKSkpOworICAgICAgICBhdXRvIHN0
cmVhbSA9IE1lZGlhU3RyZWFtOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5l
Y3Rpb24oKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3Jl
YXRlKHsgfSwgZnJvbVN0ZFN0cmluZyhsYWJlbCkpKTsKICAgICAgICAgYXV0byBzdHJlYW1Qb2lu
dGVyID0gc3RyZWFtLnB0cigpOwogICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRS
ZW1vdGVTdHJlYW0oV1RGTW92ZShzdHJlYW0pKTsKICAgICAgICAgcmV0dXJuIHN0cmVhbVBvaW50
ZXI7CkBAIC02NjcsNyArNjU5LDcgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRS
ZW1vdGVUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpSdHBSZWNlaXYKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9BVURJTzogewogICAgICAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiBhdWRpb1RyYWNr
ID0gc3RhdGljX2Nhc3Q8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlKj4ocnRjVHJhY2spOwot
ICAgICAgICBhdXRvIGF1ZGlvUmVjZWl2ZXIgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hdWRp
b1JlY2VpdmVyKHRyYWNrSWQoKnJ0Y1RyYWNrKSk7CisgICAgICAgIGF1dG8gYXVkaW9SZWNlaXZl
ciA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmF1ZGlvUmVjZWl2ZXIoZnJvbVN0ZFN0cmluZyhy
dGNUcmFjay0+aWQoKSkpOwogCiAgICAgICAgIHJlY2VpdmVyID0gV1RGTW92ZShhdWRpb1JlY2Vp
dmVyLnJlY2VpdmVyKTsKICAgICAgICAgYXVkaW9SZWNlaXZlci5zb3VyY2UtPnNldFNvdXJjZVRy
YWNrKFdURk1vdmUoYXVkaW9UcmFjaykpOwpAQCAtNjc1LDcgKzY2Nyw3IEBAIHZvaWQgTGliV2Vi
UlRDTWVkaWFFbmRwb2ludDo6YWRkUmVtb3RlVHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6UnRwUmVjZWl2CiAgICAgfQogICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9WSURFTzog
ewogICAgICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNl
PiB2aWRlb1RyYWNrID0gc3RhdGljX2Nhc3Q8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlKj4o
cnRjVHJhY2spOwotICAgICAgICBhdXRvIHZpZGVvUmVjZWl2ZXIgPSBtX3BlZXJDb25uZWN0aW9u
QmFja2VuZC52aWRlb1JlY2VpdmVyKHRyYWNrSWQoKnJ0Y1RyYWNrKSk7CisgICAgICAgIGF1dG8g
dmlkZW9SZWNlaXZlciA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLnZpZGVvUmVjZWl2ZXIoZnJv
bVN0ZFN0cmluZyhydGNUcmFjay0+aWQoKSkpOwogCiAgICAgICAgIHJlY2VpdmVyID0gV1RGTW92
ZSh2aWRlb1JlY2VpdmVyLnJlY2VpdmVyKTsKICAgICAgICAgdmlkZW9SZWNlaXZlci5zb3VyY2Ut
PnNldFNvdXJjZVRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwpAQCAtNzY2LDcgKzc1OCw3IEBA
IHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkRGF0YUNoYW5uZWwocnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6RGF0YUNoYW5uCiAgICAgaW5pdC5vcmRlcmVkID0gZGF0YUNoYW5uZWwt
Pm9yZGVyZWQoKTsKICAgICBpbml0Lm1heFBhY2tldExpZmVUaW1lID0gZGF0YUNoYW5uZWwtPm1h
eFJldHJhbnNtaXRUaW1lKCk7CiAgICAgaW5pdC5tYXhSZXRyYW5zbWl0cyA9IGRhdGFDaGFubmVs
LT5tYXhSZXRyYW5zbWl0cygpOwotICAgIGluaXQucHJvdG9jb2wgPSBTdHJpbmcocHJvdG9jb2wu
ZGF0YSgpLCBwcm90b2NvbC5zaXplKCkpOworICAgIGluaXQucHJvdG9jb2wgPSBmcm9tU3RkU3Ry
aW5nKHByb3RvY29sKTsKICAgICBpbml0Lm5lZ290aWF0ZWQgPSBkYXRhQ2hhbm5lbC0+bmVnb3Rp
YXRlZCgpOwogICAgIGluaXQuaWQgPSBkYXRhQ2hhbm5lbC0+aWQoKTsKIApAQCAtNzc0LDcgKzc2
Niw3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkRGF0YUNoYW5uZWwocnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6RGF0YUNoYW5uCiAKICAgICBhdXRvIGhhbmRsZXIgPSAgc3Rk
OjptYWtlX3VuaXF1ZTxMaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXI+KFdURk1vdmUoZGF0YUNo
YW5uZWwpKTsKICAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigp
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgYXV0byBjaGFubmVsID0gUlRDRGF0YUNo
YW5uZWw6OmNyZWF0ZSgqbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShoYW5kbGVyKSwgU3RyaW5nKGxhYmVsLmRhdGEo
KSwgbGFiZWwuc2l6ZSgpKSwgV1RGTW92ZShpbml0KSk7CisgICAgYXV0byBjaGFubmVsID0gUlRD
RGF0YUNoYW5uZWw6OmNyZWF0ZSgqbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigp
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShoYW5kbGVyKSwgZnJvbVN0ZFN0cmlu
ZyhsYWJlbCksIFdURk1vdmUoaW5pdCkpOwogCiAgICAgaWYgKGlzT3BlbmVkKSB7CiAgICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW2NoYW5uZWwgPSBjaGFubmVsLmNvcHlSZWYoKV0gewpAQCAtODcy
LDE3ICs4NjQsMTMgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUNhbmRpZGF0
ZShjb25zdCB3ZWJydGM6OkljZUNhbmRpZGF0ZUludGVyZmFjZQogCiAgICAgc3RkOjpzdHJpbmcg
c2RwOwogICAgIHJ0Y0NhbmRpZGF0ZS0+VG9TdHJpbmcoJnNkcCk7Ci0gICAgU3RyaW5nIGNhbmRp
ZGF0ZVNEUChzZHAuZGF0YSgpLCBzZHAuc2l6ZSgpKTsKLQotICAgIGF1dG8gbWlkID0gcnRjQ2Fu
ZGlkYXRlLT5zZHBfbWlkKCk7Ci0gICAgU3RyaW5nIGNhbmRpZGF0ZU1pZChtaWQuZGF0YSgpLCBt
aWQuc2l6ZSgpKTsKIAogICAgIGF1dG8gc2RwTUxpbmVJbmRleCA9IHNhZmVDYXN0PHVuc2lnbmVk
IHNob3J0PihydGNDYW5kaWRhdGUtPnNkcF9tbGluZV9pbmRleCgpKTsKIAotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWlkID0gV1RGTW92ZShj
YW5kaWRhdGVNaWQpLCBzZHAgPSBXVEZNb3ZlKGNhbmRpZGF0ZVNEUCksIHNkcE1MaW5lSW5kZXhd
IHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IG1pZCA9IGZyb21TdGRTdHJpbmcocnRjQ2FuZGlkYXRlLT5zZHBfbWlkKCkpLCBzZHAgPSBmcm9t
U3RkU3RyaW5nKHNkcCksIHNkcE1MaW5lSW5kZXhdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChw
cm90ZWN0ZWRUaGlzLT5pc1N0b3BwZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
cHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3SUNFQ2FuZGlkYXRlKFN0
cmluZyhzZHApLCBTdHJpbmcobWlkKSwgc2RwTUxpbmVJbmRleCk7CisgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld0lDRUNhbmRpZGF0ZShXVEZNb3ZlKHNk
cCksIFdURk1vdmUobWlkKSwgc2RwTUxpbmVJbmRleCk7CiAgICAgfSk7CiB9CiAKQEAgLTg5NSwy
MiArODgzLDIwIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Y3JlYXRlU2Vzc2lvbkRl
c2NyaXB0aW9uU3VjY2VlZGVkKHN0ZDo6dW5pcXVlX3B0cjx3CiB7CiAgICAgc3RkOjpzdHJpbmcg
c2RwOwogICAgIGRlc2NyaXB0aW9uLT5Ub1N0cmluZygmc2RwKTsKLSAgICBTdHJpbmcgc2RwU3Ry
aW5nKHNkcC5kYXRhKCksIHNkcC5zaXplKCkpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzZHAgPSBXVEZNb3ZlKHNkcFN0cmluZyldIHsK
KyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNk
cCA9IGZyb21TdGRTdHJpbmcoc2RwKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHByb3RlY3Rl
ZFRoaXMtPmlzU3RvcHBlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+bV9pc0luaXRpYXRvcikKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZU9mZmVyU3VjY2VlZGVkKFN0cmluZyhzZHApKTsK
KyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0
ZU9mZmVyU3VjY2VlZGVkKFdURk1vdmUoc2RwKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZUFuc3dlclN1Y2Nl
ZWRlZChTdHJpbmcoc2RwKSk7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcmVhdGVBbnN3ZXJTdWNjZWVkZWQoV1RGTW92ZShzZHApKTsKICAgICB9
KTsKIH0KIAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpjcmVhdGVTZXNzaW9uRGVzY3Jp
cHRpb25GYWlsZWQoY29uc3Qgc3RkOjpzdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBTdHJp
bmcgZXJyb3IoZXJyb3JNZXNzYWdlLmRhdGEoKSwgZXJyb3JNZXNzYWdlLnNpemUoKSk7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvciA9
IFdURk1vdmUoZXJyb3IpXSAoKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yID0gZnJvbVN0ZFN0cmluZyhlcnJvck1l
c3NhZ2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPmlzU3RvcHBl
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9p
c0luaXRpYXRvcikKQEAgLTkzMSw4ICs5MTcsNyBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6OnNldExvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uU3VjY2VlZGVkKCkKIAogdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50OjpzZXRMb2NhbFNlc3Npb25EZXNjcmlwdGlvbkZhaWxlZChjb25zdCBz
dGQ6OnN0cmluZyYgZXJyb3JNZXNzYWdlKQogewotICAgIFN0cmluZyBlcnJvcihlcnJvck1lc3Nh
Z2UuZGF0YSgpLCBlcnJvck1lc3NhZ2Uuc2l6ZSgpKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcildICgp
IG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgZXJyb3IgPSBmcm9tU3RkU3RyaW5nKGVycm9yTWVzc2FnZSldICgpIG11dGFibGUg
ewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLnNl
dExvY2FsRGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsIFdURk1v
dmUoZXJyb3IpIH0pOwpAQCAtOTUwLDggKzkzNSw3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRw
b2ludDo6c2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0aW9uU3VjY2VlZGVkKCkKIAogdm9pZCBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50OjpzZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25GYWlsZWQoY29u
c3Qgc3RkOjpzdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBTdHJpbmcgZXJyb3IoZXJyb3JN
ZXNzYWdlLmRhdGEoKSwgZXJyb3JNZXNzYWdlLnNpemUoKSk7Ci0gICAgY2FsbE9uTWFpblRocmVh
ZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvciA9IFdURk1vdmUoZXJyb3Ip
XSAoKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGVycm9yID0gZnJvbVN0ZFN0cmluZyhlcnJvck1lc3NhZ2UpXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPmlzU3RvcHBlZCgpKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5zZXRSZW1vdGVEZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwg
V1RGTW92ZShlcnJvcikgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCA0MjljNzgxODY0YTczMzY3ZmU1YTg4ODViOWNm
MGU2NjUxZTJmODBiLi4zMWQyMmI4M2RmZTdiYTk0NzIwMWQzMTMyZjZmNGYxZWJmOTEzZDU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKQEAgLTIwOSw4ICsyMDksNyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5kaWRhdAogICAgIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OkljZUNhbmRpZGF0ZUludGVyZmFjZT4gcnRjQ2FuZGlkYXRl
KHdlYnJ0Yzo6Q3JlYXRlSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZS5zZHBNaWQoKS51dGY4KCkuZGF0
YSgpLCBzZHBNTGluZUluZGV4LCBjYW5kaWRhdGUuY2FuZGlkYXRlKCkudXRmOCgpLmRhdGEoKSwg
JmVycm9yKSk7CiAKICAgICBpZiAoIXJ0Y0NhbmRpZGF0ZSkgewotICAgICAgICBTdHJpbmcgbWVz
c2FnZShlcnJvci5kZXNjcmlwdGlvbi5kYXRhKCksIGVycm9yLmRlc2NyaXB0aW9uLnNpemUoKSk7
Ci0gICAgICAgIGFkZEljZUNhbmRpZGF0ZUZhaWxlZChFeGNlcHRpb24geyBPcGVyYXRpb25FcnJv
ciwgV1RGTW92ZShtZXNzYWdlKSB9KTsKKyAgICAgICAgYWRkSWNlQ2FuZGlkYXRlRmFpbGVkKEV4
Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLmRlc2NyaXB0
aW9uLmRhdGEoKSwgZXJyb3IuZGVzY3JpcHRpb24ubGVuZ3RoKCkpIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0yMzcsOCArMjM2LDcgQEAgdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmFkZFZpZGVvU291cmNlKFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3UK
IAogc3RhdGljIGlubGluZSBSZWY8UlRDUnRwUmVjZWl2ZXI+IGNyZWF0ZVJlY2VpdmVyRm9yU291
cmNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmIHNvdXJjZSkKIHsKLSAgICBTdHJpbmcgaWQgPSBzb3VyY2UtPmlkKCk7Ci0gICAgYXV0
byByZW1vdGVUcmFja1ByaXZhdGUgPSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKFdU
Rk1vdmUoc291cmNlKSwgV1RGTW92ZShpZCkpOworICAgIGF1dG8gcmVtb3RlVHJhY2tQcml2YXRl
ID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShXVEZNb3ZlKHNvdXJjZSksIFN0cmlu
ZyB7IHNvdXJjZS0+aWQoKSB9KTsKICAgICBhdXRvIHJlbW90ZVRyYWNrID0gTWVkaWFTdHJlYW1U
cmFjazo6Y3JlYXRlKGNvbnRleHQsIFdURk1vdmUocmVtb3RlVHJhY2tQcml2YXRlKSk7CiAKICAg
ICByZXR1cm4gUlRDUnRwUmVjZWl2ZXI6OmNyZWF0ZShXVEZNb3ZlKHJlbW90ZVRyYWNrKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBmZmM1OGY3MzllMjJmM2JmY2NkZWY4ODRkM2Jh
Y2MxOGZmMTkzOGZlLi4zYTgxNmZkMzA3MjJkMGM2OTBjODVkYTcxY2M2ZWZiYzI1YTVlY2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAg
ICAgZW51bSBjbGFzcyBSZWFkeVN0YXRlIHsgTm9uZSwgTGl2ZSwgRW5kZWQgfTsKICAgICBSZWFk
eVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KIAorICAg
IHZvaWQgc2V0SWRGb3JUZXN0aW5nKFN0cmluZyYmIGlkKSB7IG1faWQgPSBXVEZNb3ZlKGlkKTsg
fQorCiBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiYmLCBTdHJpbmcmJiBpZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCA5M2JkY2EwOWRhMDJmNWYxNjhjZWVhZWM3N2I3ZDNkNzEyOTFlOTY3Li5iZGFk
YzI4ZDY5YTA5YWVjZjdmMGI0YjUxYjg5NzlhMmQ3ODUyN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC00Mjg2LDYgKzQyODYsMTAgQEAgdm9pZCBJbnRlcm5hbHM6OnNp
bXVsYXRlTWVkaWFTdHJlYW1UcmFja0NhcHR1cmVTb3VyY2VGYWlsdXJlKE1lZGlhU3RyZWFtVHJh
Y2smIHQKICAgICB0cmFjay5zb3VyY2UoKS5jYXB0dXJlRmFpbGVkKCk7CiB9CiAKK3ZvaWQgSW50
ZXJuYWxzOjpzZXRNZWRpYVN0cmVhbVRyYWNrSWRlbnRpZmllcihNZWRpYVN0cmVhbVRyYWNrJiB0
cmFjaywgU3RyaW5nJiYgaWQpCit7CisgICAgdHJhY2suc2V0SWRGb3JUZXN0aW5nKFdURk1vdmUo
aWQpKTsKK30KICNlbmRpZgogCiBTdHJpbmcgSW50ZXJuYWxzOjphdWRpb1Nlc3Npb25DYXRlZ29y
eSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBmZDVmMjBkMDQ1NmNm
YWQ0MDEwOTE0MmFlZGZlZTA0YTg3OWQ5MDM3Li4wMGIyMWI5OWFjZjM1YTBmZDk5NWE2OTk2ODBi
Y2QyYWFhNGU0MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTYyMiw2ICs2
MjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYVN0cmVhbVRyYWNrTXV0ZWQoTWVkaWFT
dHJlYW1UcmFjayYsIGJvb2wpOwogICAgIHZvaWQgcmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRp
YVN0cmVhbSYsIE1lZGlhU3RyZWFtVHJhY2smKTsKICAgICB2b2lkIHNpbXVsYXRlTWVkaWFTdHJl
YW1UcmFja0NhcHR1cmVTb3VyY2VGYWlsdXJlKE1lZGlhU3RyZWFtVHJhY2smKTsKKyAgICB2b2lk
IHNldE1lZGlhU3RyZWFtVHJhY2tJZGVudGlmaWVyKE1lZGlhU3RyZWFtVHJhY2smLCBTdHJpbmcm
JiBpZCk7CiAjZW5kaWYKIAogICAgIFN0cmluZyBhdWRpb1Nlc3Npb25DYXRlZ29yeSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDc4NDQ2NDcyZWQzZDVlZTI3
YTU3ZjJjNDVhMGZjNDhlNTlkYmI4ZTcuLjk3NzFlODBkOTlmYjVhMDc1Y2NlOGVmNTIyZDQ2MDRk
ZTU0ZjgzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU2Niw2ICs1
NjYsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNXSB2b2lkIHNldE1lZGlhU3RyZWFtVHJhY2tNdXRlZChNZWRpYVN0cmVhbVRy
YWNrIHRyYWNrLCBib29sZWFuIG11dGVkKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
XSB2b2lkIHJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW0gc3RyZWFtLCBNZWRpYVN0
cmVhbVRyYWNrIHRyYWNrKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB2b2lkIHNp
bXVsYXRlTWVkaWFTdHJlYW1UcmFja0NhcHR1cmVTb3VyY2VGYWlsdXJlKE1lZGlhU3RyZWFtVHJh
Y2sgdHJhY2spOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgc2V0TWVkaWFT
dHJlYW1UcmFja0lkZW50aWZpZXIoTWVkaWFTdHJlYW1UcmFjayB0cmFjaywgRE9NU3RyaW5nIGlk
ZW50aWZpZXIpOwogCiAgICAgUHJvbWlzZTx2b2lkPiBjbGVhckNhY2hlU3RvcmFnZU1lbW9yeVJl
cHJlc2VudGF0aW9uKCk7CiAgICAgUHJvbWlzZTxET01TdHJpbmc+IGNhY2hlU3RvcmFnZUVuZ2lu
ZVJlcHJlc2VudGF0aW9uKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGFmYmE1MDhiMWQ4ZTljZDM4ODgzYWJkODBlNzQ5
OTUwMGQwZWM0YS4uNzMzMDUzMzM0ZWM5YjJhMjcwZDM4MGNjNWZhMjNjMWEzMWZmOTgyYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTA0LTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBQcmV2ZW50aXZlbHkgZXhwZWN0IFVURjggc3RyaW5ncyBmcm9t
IGxpYndlYnJ0YyBTRFAgYW5kIGVycm9yIG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ1MDkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy91dGY4LXNkcC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy91dGY4LXNkcC5odG1sOiBBZGRlZC4KKwogMjAxOC0w
NC0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTaG93
IHB1bnljb2RlIGlmIFVSTCBjb250YWlucyBMYXRpbiBkdW0gY2hhcmFjdGVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJydGMvdXRmOC1zZHAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2VicnRjL3V0Zjgtc2RwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTY0MGE5Y2U0Y2FiM2Nk
YzY0NmFlYzUwMDUyMTY4ZjFiZDNhYjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2VicnRjL3V0Zjgtc2RwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIFRl
c3RpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCBVVEYtOCB0cmFjayBpZCAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2VicnRjL3V0Zjgtc2RwLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvdXRm
OC1zZHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTBhZDBmZDA1MTIzN2VmN2Y5MDlhM2Y1OGY4YjRiZjM5
NzA0ZTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3V0Zjgtc2RwLmh0
bWwKQEAgLTAsMCArMSwzOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBV
VEYtOCBjb250ZW50IGluIFNEUDwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwvdmlkZW8+
CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoImludGVybmFscyByZXF1
aXJlZCIpOworCisgICAgY29uc3QgdW5pY29kZVN0cmluZyA9ICfkuJbnlYzkvaDlpb0nOworCisg
ICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgaW50ZXJuYWxzLnNldE1lZGlhU3RyZWFtVHJhY2tJZGVu
dGlmaWVyKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCB1bmljb2RlU3RyaW5nKTsKKworICAg
IGNvbnN0IHJlbW90ZVN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4gewor
ICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpWzBdLCBzdHJlYW0pOworICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAg
ICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAg
ICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAg
ICB9OworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3Qg
dGltZWQgb3V0IiksIDUwMDApOworICAgIH0pOworCisgICAgYXNzZXJ0X2VxdWFscyh1bmljb2Rl
U3RyaW5nLCByZW1vdGVTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5pZCk7CisgICAgdmlkZW8u
c3JjT2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgIHJldHVybiB2aWRlby5wbGF5KCk7Cit9LCAi
VGVzdGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIFVURi04IHRyYWNrIGlkIik7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>