<?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>185888</bug_id>
          
          <creation_ts>2018-05-22 14:30:19 -0700</creation_ts>
          <short_desc>StringImpl utf8 conversion should not fail silently.</short_desc>
          <delta_ts>2018-05-23 05:37:20 -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>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1426314</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-05-22 14:30:19 -0700</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426315</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-22 14:31:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/40464506&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426341</commentid>
    <comment_count>2</comment_count>
      <attachid>341035</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-05-22 15:09:42 -0700</bug_when>
    <thetext>Created attachment 341035
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426404</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-05-22 16:55:01 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r232089: &lt;http://trac.webkit.org/r232089&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426442</commentid>
    <comment_count>4</comment_count>
      <attachid>341035</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-05-22 18:54:49 -0700</bug_when>
    <thetext>Comment on attachment 341035
proposed patch.

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

&gt; Source/WTF/wtf/text/WTFString.cpp:820
&gt; +    RELEASE_ASSERT(expectedString);

Did we really never ever check the result in callers? If we did, those checks need to be removed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426546</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-23 05:37:20 -0700</bug_when>
    <thetext>Committed r232108: &lt;https://trac.webkit.org/changeset/232108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341035</attachid>
            <date>2018-05-22 15:09:42 -0700</date>
            <delta_ts>2018-05-22 15:12:56 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-185888.patch</filename>
            <type>text/plain</type>
            <size>25239</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzIwODApCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE4LTA1LTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBTdHJpbmdJbXBsIHV0ZjggY29udmVyc2lvbiBzaG91bGQgbm90IGZhaWwg
c2lsZW50bHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODU4ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQwNDY0NTA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTg1
ODg4LmpzOiBBZGRlZC4KKwogMjAxOC0wNS0yMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQgaGF2ZSBhIENvVyBzdG9yYWdlIGZvciBO
ZXdBcnJheUJ1ZmZlciBhcnJheXMuCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4NTg4
OC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4NTg4OC5qcwkobm9u
ZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4NTg4OC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEwIEBACit2YXIgZXhjZXB0aW9uOwordHJ5IHsKKyAgICBjb25zdCBz
dHIgPSAiYSIucGFkU3RhcnQoMHg4MDAwMDAwMCAtIDEpOworICAgIG5ldyBEYXRlKHN0cik7Cit9
IGNhdGNoIChlKSB7CisgICAgZXhjZXB0aW9uID0gZTsKK30KKworaWYgKGV4Y2VwdGlvbiAhPSAi
RXJyb3I6IE91dCBvZiBtZW1vcnkiKQorICAgIHRocm93ICJGQUlMRUQiOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzIwODApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDUtMjIg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0ltcGwgdXRm
OCBjb252ZXJzaW9uIHNob3VsZCBub3QgZmFpbCBzaWxlbnRseS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTg4OAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDA0NjQ1MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBkZmcvREZHTGF6eUpTVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpERkc6Okxh
enlKU1ZhbHVlOjpkdW1wSW5Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERhdGUpOgorICAgICAgICAo
SlNDOjpkYXRlUGFyc2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5jcHA6CisgICAg
ICAgIChKU0M6OnBhcnNlRGF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0RhdGVNYXRoLmg6CisK
IDIwMTgtMDUtMjIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHRoZSBVbmNvbmRpdGlvbmFsRmluYWxpemVyIGNsYXNzCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xhenlKU1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xhenlKU1ZhbHVlLmNwcAkocmV2aXNpb24gMjMy
MDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMYXp5SlNWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIExhenlKU1ZhbHVlOjpkdW1wSW5D
b250ZXh0KFByaW50U3RyCiAgICAgY2FzZSBTaW5nbGVDaGFyYWN0ZXJTdHJpbmc6CiAgICAgICAg
IG91dC5wcmludCgiTGF6eTpTaW5nbGVDaGFyYWN0ZXJTdHJpbmcoIik7CiAgICAgICAgIG91dC5w
cmludGYoIiUwNFgiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2hhcmFjdGVyKCkpKTsKLSAgICAg
ICAgb3V0LnByaW50KCIgLyAiLCBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycygmdS5jaGFy
YWN0ZXIsIDEpLCAiKSIpOworICAgICAgICBvdXQucHJpbnQoIiAvICIsIFN0cmluZ0ltcGw6OnV0
ZjhGb3JDaGFyYWN0ZXJzKCZ1LmNoYXJhY3RlciwgMSkudmFsdWUoKSwgIikiKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgS25vd25TdHJpbmdJbXBsOgogICAgICAgICBvdXQucHJpbnQoIkxh
enk6S25vd25TdHJpbmcoIiwgc3RyaW5nSW1wbCgpLCAiKSIpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAy
MzIwNjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAo
QykgMjAwNC0yMDA4LCAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xMzYsOSArMTM2LDEwIEBAIEpTT2JqZWN0KiBj
b25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZzAudG9QcmltaXRpdmUoZXhlYyk7CiAgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmIChw
cmltaXRpdmUuaXNTdHJpbmcoKSkKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRGF0ZSh2
bSwgYXNTdHJpbmcocHJpbWl0aXZlKS0+dmFsdWUoZXhlYykpOwotICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaWYgKHByaW1pdGl2ZS5pc1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAg
dmFsdWUgPSBwYXJzZURhdGUoZXhlYywgdm0sIGFzU3RyaW5nKHByaW1pdGl2ZSktPnZhbHVlKGV4
ZWMpKTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKKyAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHZhbHVlID0gcHJpbWl0aXZl
LnRvTnVtYmVyKGV4ZWMpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xNzIsNyArMTczLDgg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUGFyc2UoRQogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJpbmcgZGF0ZVN0ciA9IGV4ZWMt
PmFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIocGFyc2VEYXRlKHZtLCBkYXRlU3RyKSkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHBhcnNlRGF0ZShleGVjLCB2bSwgZGF0
ZVN0cikpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlTm93KEV4ZWNT
dGF0ZSopCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRo
LmNwcAkocmV2aXNpb24gMjMyMDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNEYXRlTWF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICog
Q29weXJpZ2h0IChDKSAyMDEwICZ5ZXQsIExMQy4gKG5hdGVAYW5keWV0Lm5ldCkKQEAgLTIzNSwx
MyArMjM1LDI2IEBAIGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWMKICAg
ICByZXR1cm4gbG9jYWxUaW1lTVMgLSAob2Zmc2V0ICogV1RGOjptc1Blck1pbnV0ZSk7CiB9CiAK
LWRvdWJsZSBwYXJzZURhdGUoVk0mIHZtLCBjb25zdCBTdHJpbmcmIGRhdGUpCitkb3VibGUgcGFy
c2VEYXRlKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBjb25zdCBTdHJpbmcmIGRhdGUpCiB7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgaWYgKGRhdGUg
PT0gdm0uY2FjaGVkRGF0ZVN0cmluZykKICAgICAgICAgcmV0dXJuIHZtLmNhY2hlZERhdGVTdHJp
bmdWYWx1ZTsKLSAgICBkb3VibGUgdmFsdWUgPSBwYXJzZUVTNURhdGVGcm9tTnVsbFRlcm1pbmF0
ZWRDaGFyYWN0ZXJzKGRhdGUudXRmOCgpLmRhdGEoKSk7CisgICAgYXV0byBleHBlY3RlZFN0cmlu
ZyA9IGRhdGUudHJ5R2V0VXRmOCgpOworICAgIGlmICghZXhwZWN0ZWRTdHJpbmcpIHsKKyAgICAg
ICAgaWYgKGV4cGVjdGVkU3RyaW5nLmVycm9yKCkgPT0gVVRGOENvbnZlcnNpb25FcnJvcjo6T3V0
T2ZNZW1vcnkpCisgICAgICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYywgc2NvcGUp
OworICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1kYXRlLW9i
amVjdHMgc2VjdGlvbiAyMC4zLjMuMiBzdGF0ZXMgdGhhdDoKKyAgICAgICAgLy8gIlVucmVjb2du
aXphYmxlIFN0cmluZ3Mgb3IgZGF0ZXMgY29udGFpbmluZyBpbGxlZ2FsIGVsZW1lbnQgdmFsdWVz
IGluIHRoZQorICAgICAgICAvLyBmb3JtYXQgU3RyaW5nIHNoYWxsIGNhdXNlIERhdGUucGFyc2Ug
dG8gcmV0dXJuIE5hTi4iCisgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOworICAgIH0KKworICAgIGF1dG8gZGF0ZVV0ZjggPSBleHBlY3RlZFN0
cmluZy52YWx1ZSgpOworICAgIGRvdWJsZSB2YWx1ZSA9IHBhcnNlRVM1RGF0ZUZyb21OdWxsVGVy
bWluYXRlZENoYXJhY3RlcnMoZGF0ZVV0ZjguZGF0YSgpKTsKICAgICBpZiAoc3RkOjppc25hbih2
YWx1ZSkpCi0gICAgICAgIHZhbHVlID0gcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFj
dGVycyh2bSwgZGF0ZS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgdmFsdWUgPSBwYXJzZURhdGVG
cm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKHZtLCBkYXRlVXRmOC5kYXRhKCkpOwogICAgIHZt
LmNhY2hlZERhdGVTdHJpbmcgPSBkYXRlOwogICAgIHZtLmNhY2hlZERhdGVTdHJpbmdWYWx1ZSA9
IHZhbHVlOwogICAgIHJldHVybiB2YWx1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRGF0ZU1hdGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0RhdGVNYXRoLmgJKHJldmlzaW9uIDIzMjA2OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBr
ZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQ3LDEyICs0NywxMyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgVk07CiAKIEpTX0VYUE9S
VF9QUklWQVRFIHZvaWQgbXNUb0dyZWdvcmlhbkRhdGVUaW1lKFZNJiwgZG91YmxlLCBXVEY6OlRp
bWVUeXBlIG91dHB1dFRpbWVUeXBlLCBHcmVnb3JpYW5EYXRlVGltZSYpOwogSlNfRVhQT1JUX1BS
SVZBVEUgZG91YmxlIGdyZWdvcmlhbkRhdGVUaW1lVG9NUyhWTSYsIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lJiwgZG91YmxlLCBXVEY6OlRpbWVUeXBlIGlucHV0VGltZVR5cGUpOwogSlNfRVhQT1JU
X1BSSVZBVEUgZG91YmxlIGdldFVUQ09mZnNldChWTSYpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91
YmxlIHBhcnNlRGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mLCBjb25zdCBjaGFy
KiBkYXRlU3RyaW5nKTsKLUpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZURhdGUoVk0mLCBj
b25zdCBXVEY6OlN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHBhcnNlRGF0ZShF
eGVjU3RhdGUqLCBWTSYsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIzMjA2OSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTgtMDUtMjIgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgorCisgICAgICAgIFN0cmluZ0ltcGwgdXRmOCBjb252ZXJzaW9uIHNob3Vs
ZCBub3QgZmFpbCBzaWxlbnRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NTg4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDA0NjQ1MDY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogd3RmL1ByaW50U3RyZWFtLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRFeHBlY3Rl
ZENTdHJpbmdIZWxwZXIpOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAg
KiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dXRm
OEltcGwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyk6Cisg
ICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRyeVV0ZjhGb3JSYW5nZSBjb25zdCk6CisgICAgICAg
IChXVEY6OlN0cmluZ0ltcGw6OnRyeVV0ZjggY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjp1dGY4IGNvbnN0KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dXRmOEZvclJhbmdl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nVmlldy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ1ZpZXc6
OnRyeVV0ZjggY29uc3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3Ojp1dGY4IGNvbnN0KToK
KyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdWaWV3Lmg6CisgICAgICAgICogd3RmL3RleHQvVVRG
OENvbnZlcnNpb25FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcu
Y3BwOgorICAgICAgICAoV1RGOjpTdHJpbmc6OnRyeVV0ZjggY29uc3QpOgorICAgICAgICAoV1RG
OjpTdHJpbmc6OnV0ZjggY29uc3QpOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5oOgor
CiAyMDE4LTA1LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzIwNTIuCkluZGV4OiBTb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMjA2OSkKKysrIFNvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY0MCw2
ICs2NDAsNyBAQAogCQlGRUI2QjAzNTIwMUJFMEI2MDBCOTU4QzEgLyogUG9pbnRlclByZXBhcmF0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2ludGVyUHJlcGFyYXRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFREFDRDNCMTYzMEY4M0YwMEM2
OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0YWNrU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0Qz
QzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdGFja1N0YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZF
RjI5NUJGMjBCNDlEQ0IwMENGMjgzQSAvKiBVVEY4Q29udmVyc2lvbkVycm9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVURjhDb252ZXJzaW9uRXJyb3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkYwQTQzNjU4ODk1NEYzQ0IwN0RCRUNBIC8qIFN0ZExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RkTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCkBA
IC0xMjE2LDYgKzEyMTcsNyBAQAogCQkJCUE4QTQ3MzJDMTUxQTgyNUIwMDQxMjNGRiAvKiBUZXh0
UG9zaXRpb24uaCAqLywKIAkJCQlBM0U0REQ5MTFGM0E4MDM0MDBERUQwQjQgLyogVGV4dFN0cmVh
bS5jcHAgKi8sCiAJCQkJQTNFNEREOTIxRjNBODAzNDAwREVEMEI0IC8qIFRleHRTdHJlYW0uaCAq
LywKKwkJCQlGRUYyOTVCRjIwQjQ5RENCMDBDRjI4M0EgLyogVVRGOENvbnZlcnNpb25FcnJvci5o
ICovLAogCQkJCTcwRUNBNjBDMUIwMjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5o
ICovLAogCQkJCUEzQUI2RTZBMUYzRTFBRDYwMDlDMTRCMSAvKiBWYWx1ZVRvU3RyaW5nLmggKi8s
CiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgKi8sCkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjMyMDY5KQorKysgU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMwNSw2ICszMDUsNyBAQCBzZXQoV1RG
X1BVQkxJQ19IRUFERVJTCiAgICAgdGV4dC9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgK
ICAgICB0ZXh0L1RleHRQb3NpdGlvbi5oCiAgICAgdGV4dC9UZXh0U3RyZWFtLmgKKyAgICB0ZXh0
L1VURjhDb252ZXJzaW9uRXJyb3IuaAogICAgIHRleHQvVW5pcXVlZFN0cmluZ0ltcGwuaAogICAg
IHRleHQvVmFsdWVUb1N0cmluZy5oCiAgICAgdGV4dC9XVEZTdHJpbmcuaApJbmRleDogU291cmNl
L1dURi93dGYvUHJpbnRTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1By
aW50U3RyZWFtLmNwcAkocmV2aXNpb24gMjMyMDY5KQorKysgU291cmNlL1dURi93dGYvUHJpbnRT
dHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw5ICs4MiwyMSBAQCB2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uCiAgICAgb3V0LnByaW50ZigiJXMiLCBzdHJpbmcp
OwogfQogCitzdGF0aWMgdm9pZCBwcmludEV4cGVjdGVkQ1N0cmluZ0hlbHBlcihQcmludFN0cmVh
bSYgb3V0LCBjb25zdCBjaGFyKiB0eXBlLCBFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lv
bkVycm9yPiBleHBlY3RlZENTdHJpbmcpCit7CisgICAgaWYgKFVOTElLRUxZKCFleHBlY3RlZENT
dHJpbmcpKSB7CisgICAgICAgIGlmIChleHBlY3RlZENTdHJpbmcuZXJyb3IoKSA9PSBVVEY4Q29u
dmVyc2lvbkVycm9yOjpPdXRPZk1lbW9yeSkKKyAgICAgICAgICAgIG91dC5wcmludCgiKE91dCBv
ZiBtZW1vcnkgd2hpbGUgY29udmVydGluZyAiLCB0eXBlLCAiIHRvIHV0ZjgpIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludCgiKGZhaWxlZCB0byBjb252ZXJ0ICIsIHR5cGUs
ICIgdG8gdXRmOCkiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBvdXQucHJpbnQoZXhw
ZWN0ZWRDU3RyaW5nLnZhbHVlKCkpOworfQorCiB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJl
YW0mIG91dCwgY29uc3QgU3RyaW5nVmlldyYgc3RyaW5nKQogewotICAgIG91dC5wcmludChzdHJp
bmcudXRmOCgpKTsKKyAgICBwcmludEV4cGVjdGVkQ1N0cmluZ0hlbHBlcihvdXQsICJTdHJpbmdW
aWV3Iiwgc3RyaW5nLnRyeUdldFV0ZjgoKSk7CiB9CiAKIHZvaWQgcHJpbnRJbnRlcm5hbChQcmlu
dFN0cmVhbSYgb3V0LCBjb25zdCBDU3RyaW5nJiBzdHJpbmcpCkBAIC05NCw3ICsxMDYsNyBAQCB2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgY29uCiAKIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBvdXQu
cHJpbnQoc3RyaW5nLnV0ZjgoKSk7CisgICAgcHJpbnRFeHBlY3RlZENTdHJpbmdIZWxwZXIob3V0
LCAiU3RyaW5nIiwgc3RyaW5nLnRyeUdldFV0ZjgoKSk7CiB9CiAKIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBTdHJpbmdJbXBsKiBzdHJpbmcpCkBAIC0xMDMsNyAr
MTE1LDcgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbgogICAgICAg
ICBvdXQucHJpbnQoIihudWxsIFN0cmluZ0ltcGwqKSIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIG91dC5wcmludChzdHJpbmctPnV0ZjgoKSk7CisgICAgcHJpbnRFeHBlY3RlZENTdHJp
bmdIZWxwZXIob3V0LCAiU3RyaW5nSW1wbCoiLCBzdHJpbmctPnRyeUdldFV0ZjgoKSk7CiB9CiAK
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBib29sIHZhbHVlKQpJbmRleDog
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCShyZXZpc2lvbiAyMzIwNjkpCisrKyBTb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzI2LDcgKzE3
MjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHV0VVRGOFRyaXBsZShjaGFyKiYgCiAgICAgKmJ1
ZmZlcisrID0gc3RhdGljX2Nhc3Q8Y2hhcj4oKGNoYXJhY3RlciAmIDB4M0YpIHwgMHg4MCk7CiB9
CiAKLWJvb2wgU3RyaW5nSW1wbDo6dXRmOEltcGwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVu
c2lnbmVkIGxlbmd0aCwgY2hhciomIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIENvbnZlcnNp
b25Nb2RlIG1vZGUpCitVVEY4Q29udmVyc2lvbkVycm9yIFN0cmluZ0ltcGw6OnV0ZjhJbXBsKGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIGNoYXIqJiBidWZmZXIsIHNp
emVfdCBidWZmZXJTaXplLCBDb252ZXJzaW9uTW9kZSBtb2RlKQogewogICAgIGlmIChtb2RlID09
IFN0cmljdENvbnZlcnNpb25SZXBsYWNpbmdVbnBhaXJlZFN1cnJvZ2F0ZXNXaXRoRkZGRCkgewog
ICAgICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyc0VuZCA9IGNoYXJhY3RlcnMgKyBsZW5ndGg7
CkBAIC0xNzU0LDEzICsxNzU0LDEzIEBAIGJvb2wgU3RyaW5nSW1wbDo6dXRmOEltcGwoY29uc3Qg
VUNoYXIqIGMKICAgICAgICAgLy8gT25seSBwcm9kdWNlZCBmcm9tIHN0cmljdCBjb252ZXJzaW9u
LgogICAgICAgICBpZiAocmVzdWx0ID09IHNvdXJjZUlsbGVnYWwpIHsKICAgICAgICAgICAgIEFT
U0VSVChzdHJpY3QpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0
dXJuIFVURjhDb252ZXJzaW9uRXJyb3I6OklsbGVnYWxTb3VyY2U7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBDaGVjayBmb3IgYW4gdW5jb252ZXJ0ZWQgaGlnaCBzdXJyb2dhdGUuCiAgICAgICAg
IGlmIChyZXN1bHQgPT0gc291cmNlRXhoYXVzdGVkKSB7CiAgICAgICAgICAgICBpZiAoc3RyaWN0
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
VVRGOENvbnZlcnNpb25FcnJvcjo6U291cmNlRXhoYXVzdGVkOwogICAgICAgICAgICAgLy8gVGhp
cyBzaG91bGQgYmUgb25lIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlLiBUcmVhdCBpdCB0aGUgc2Ft
ZQogICAgICAgICAgICAgLy8gd2FzIGFzIGFuIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlIHdvdWxk
IGhhdmUgYmVlbiBoYW5kbGVkIGluCiAgICAgICAgICAgICAvLyB0aGUgbWlkZGxlIG9mIGEgc3Ry
aW5nIHdpdGggbm9uLXN0cmljdCBjb252ZXJzaW9uIC0gd2hpY2ggaXMKQEAgLTE3NzQsMTUgKzE3
NzQsMTUgQEAgYm9vbCBTdHJpbmdJbXBsOjp1dGY4SW1wbChjb25zdCBVQ2hhciogYwogICAgICAg
ICB9CiAgICAgfQogICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBVVEY4Q29udmVy
c2lvbkVycm9yOjpOb25lOwogfQogCi1DU3RyaW5nIFN0cmluZ0ltcGw6OnV0ZjhGb3JDaGFyYWN0
ZXJzKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitFeHBlY3RlZDxD
U3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVy
cyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICgh
bGVuZ3RoKQogICAgICAgICByZXR1cm4gQ1N0cmluZygiIiwgMCk7CiAgICAgaWYgKGxlbmd0aCA+
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAvIDMpCi0gICAgICAgIHJldHVy
biBDU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChVVEY4Q29udmVyc2lv
bkVycm9yOjpPdXRPZk1lbW9yeSk7CiAgICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZmZlclZlY3Rv
cihsZW5ndGggKiAzKTsKICAgICBjaGFyKiBidWZmZXIgPSBidWZmZXJWZWN0b3IuZGF0YSgpOwog
ICAgIGNvbnN0IExDaGFyKiBzb3VyY2UgPSBjaGFyYWN0ZXJzOwpAQCAtMTc5MSwyMCArMTc5MSwy
MSBAQCBDU3RyaW5nIFN0cmluZ0ltcGw6OnV0ZjhGb3JDaGFyYWN0ZXJzKGNvCiAgICAgcmV0dXJu
IENTdHJpbmcoYnVmZmVyVmVjdG9yLmRhdGEoKSwgYnVmZmVyIC0gYnVmZmVyVmVjdG9yLmRhdGEo
KSk7CiB9CiAKLUNTdHJpbmcgU3RyaW5nSW1wbDo6dXRmOEZvckNoYXJhY3RlcnMoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29udmVyc2lvbk1vZGUgbW9kZSkKK0V4
cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IFN0cmluZ0ltcGw6OnV0ZjhGb3JD
aGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvbnZl
cnNpb25Nb2RlIG1vZGUpCiB7CiAgICAgaWYgKCFsZW5ndGgpCiAgICAgICAgIHJldHVybiBDU3Ry
aW5nKCIiLCAwKTsKICAgICBpZiAobGVuZ3RoID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25l
ZD46Om1heCgpIC8gMykKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKFVURjhDb252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KTsKICAgICBW
ZWN0b3I8Y2hhciwgMTAyND4gYnVmZmVyVmVjdG9yKGxlbmd0aCAqIDMpOwogICAgIGNoYXIqIGJ1
ZmZlciA9IGJ1ZmZlclZlY3Rvci5kYXRhKCk7Ci0gICAgaWYgKCF1dGY4SW1wbChjaGFyYWN0ZXJz
LCBsZW5ndGgsIGJ1ZmZlciwgYnVmZmVyVmVjdG9yLnNpemUoKSwgbW9kZSkpCi0gICAgICAgIHJl
dHVybiBDU3RyaW5nKCk7CisgICAgVVRGOENvbnZlcnNpb25FcnJvciBlcnJvciA9IHV0ZjhJbXBs
KGNoYXJhY3RlcnMsIGxlbmd0aCwgYnVmZmVyLCBidWZmZXJWZWN0b3Iuc2l6ZSgpLCBtb2RlKTsK
KyAgICBpZiAoZXJyb3IgIT0gVVRGOENvbnZlcnNpb25FcnJvcjo6Tm9uZSkKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKICAgICByZXR1cm4gQ1N0cmluZyhidWZmZXJWZWN0
b3IuZGF0YSgpLCBidWZmZXIgLSBidWZmZXJWZWN0b3IuZGF0YSgpKTsKIH0KIAotQ1N0cmluZyBT
dHJpbmdJbXBsOjp1dGY4Rm9yUmFuZ2UodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgs
IENvbnZlcnNpb25Nb2RlIG1vZGUpIGNvbnN0CitFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVy
c2lvbkVycm9yPiBTdHJpbmdJbXBsOjp0cnlHZXRVdGY4Rm9yUmFuZ2UodW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBsZW5ndGgsIENvbnZlcnNpb25Nb2RlIG1vZGUpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKG9mZnNldCA8PSB0aGlzLT5sZW5ndGgoKSk7CiAgICAgQVNTRVJUKG9mZnNldCArIGxlbmd0
aCA8PSB0aGlzLT5sZW5ndGgoKSk7CkBAIC0xODIzLDcgKzE4MjQsNyBAQCBDU3RyaW5nIFN0cmlu
Z0ltcGw6OnV0ZjhGb3JSYW5nZSh1bnNpZ25lCiAgICAgLy8gICAgaGF2ZSBhIGdvb2QgY2hhbmNl
IG9mIGJlaW5nIGFibGUgdG8gd3JpdGUgdGhlIHN0cmluZyBpbnRvIHRoZQogICAgIC8vICAgIGJ1
ZmZlciB3aXRob3V0IHJlYWxsb2NpbmcgKHNheSwgMS41IHggbGVuZ3RoKS4KICAgICBpZiAobGVu
Z3RoID4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIC8gMykKLSAgICAgICAg
cmV0dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFVURjhDb252
ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KTsKICAgICBWZWN0b3I8Y2hhciwgMTAyND4gYnVmZmVy
VmVjdG9yKGxlbmd0aCAqIDMpOwogCiAgICAgY2hhciogYnVmZmVyID0gYnVmZmVyVmVjdG9yLmRh
dGEoKTsKQEAgLTE4MzQsMTYgKzE4MzUsMjQgQEAgQ1N0cmluZyBTdHJpbmdJbXBsOjp1dGY4Rm9y
UmFuZ2UodW5zaWduZQogICAgICAgICBDb252ZXJzaW9uUmVzdWx0IHJlc3VsdCA9IGNvbnZlcnRM
YXRpbjFUb1VURjgoJmNoYXJhY3RlcnMsIGNoYXJhY3RlcnMgKyBsZW5ndGgsICZidWZmZXIsIGJ1
ZmZlciArIGJ1ZmZlclZlY3Rvci5zaXplKCkpOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgcmVzdWx0ICE9IHRhcmdldEV4aGF1c3RlZCk7IC8vIChsZW5ndGggKiAzKSBzaG91bGQgYmUg
c3VmZmljaWVudCBmb3IgYW55IGNvbnZlcnNpb24KICAgICB9IGVsc2UgewotICAgICAgICBpZiAo
IXV0ZjhJbXBsKHRoaXMtPmNoYXJhY3RlcnMxNigpICsgb2Zmc2V0LCBsZW5ndGgsIGJ1ZmZlciwg
YnVmZmVyVmVjdG9yLnNpemUoKSwgbW9kZSkpCi0gICAgICAgICAgICByZXR1cm4gQ1N0cmluZygp
OworICAgICAgICBVVEY4Q29udmVyc2lvbkVycm9yIGVycm9yID0gdXRmOEltcGwodGhpcy0+Y2hh
cmFjdGVyczE2KCkgKyBvZmZzZXQsIGxlbmd0aCwgYnVmZmVyLCBidWZmZXJWZWN0b3Iuc2l6ZSgp
LCBtb2RlKTsKKyAgICAgICAgaWYgKGVycm9yICE9IFVURjhDb252ZXJzaW9uRXJyb3I6Ok5vbmUp
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0KIAogICAg
IHJldHVybiBDU3RyaW5nKGJ1ZmZlclZlY3Rvci5kYXRhKCksIGJ1ZmZlciAtIGJ1ZmZlclZlY3Rv
ci5kYXRhKCkpOwogfQogCitFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiBT
dHJpbmdJbXBsOjp0cnlHZXRVdGY4KENvbnZlcnNpb25Nb2RlIG1vZGUpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHRyeUdldFV0ZjhGb3JSYW5nZSgwLCBsZW5ndGgoKSwgbW9kZSk7Cit9CisKIENTdHJp
bmcgU3RyaW5nSW1wbDo6dXRmOChDb252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAogewotICAgIHJl
dHVybiB1dGY4Rm9yUmFuZ2UoMCwgbGVuZ3RoKCksIG1vZGUpOworICAgIGF1dG8gZXhwZWN0ZWRT
dHJpbmcgPSB0cnlHZXRVdGY4Rm9yUmFuZ2UoMCwgbGVuZ3RoKCksIG1vZGUpOworICAgIFJFTEVB
U0VfQVNTRVJUKGV4cGVjdGVkU3RyaW5nKTsKKyAgICByZXR1cm4gZXhwZWN0ZWRTdHJpbmcudmFs
dWUoKTsKIH0KIAogTkVWRVJfSU5MSU5FIHVuc2lnbmVkIFN0cmluZ0ltcGw6Omhhc2hTbG93Q2Fz
ZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAkocmV2aXNpb24gMjMyMDY5
KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VzdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM0
LDYgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9Db252ZXJzaW9uTW9kZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2hlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1VURjhDb252ZXJzaW9uRXJyb3IuaD4KIAogI2lm
IFVTRShDRikKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZTdHJpbmcgKiBDRlN0cmluZ1JlZjsK
QEAgLTI4NCwxMyArMjg2LDE1IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3ViU3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gYnVmZmVyT3duZXJzaGlwKCkgPT0gQnVmZmVyU3Vic3RyaW5nOyB9CiAjZW5k
aWYKIAotICAgIHN0YXRpYyBXVEZfRVhQT1JUX1BSSVZBVEUgQ1N0cmluZyB1dGY4Rm9yQ2hhcmFj
dGVycyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0
aWMgV1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRmOEZvckNoYXJhY3RlcnMoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50
Q29udmVyc2lvbik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRmOEZvclJhbmdl
KHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBDb252ZXJzaW9uTW9kZSA9IExlbmll
bnRDb252ZXJzaW9uKSBjb25zdDsKKyAgICBzdGF0aWMgV1RGX0VYUE9SVF9QUklWQVRFIEV4cGVj
dGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0
IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBXVEZfRVhQ
T1JUX1BSSVZBVEUgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gdXRmOEZv
ckNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29u
dmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbik7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gdHJ5R2V0VXRmOEZvclJh
bmdlKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBDb252ZXJzaW9uTW9kZSA9IExl
bmllbnRDb252ZXJzaW9uKSBjb25zdDsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRXhwZWN0ZWQ8
Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gdHJ5R2V0VXRmOChDb252ZXJzaW9uTW9kZSA9
IExlbmllbnRDb252ZXJzaW9uKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgQ1N0cmlu
ZyB1dGY4KENvbnZlcnNpb25Nb2RlID0gTGVuaWVudENvbnZlcnNpb24pIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIHN0YXRpYyBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB1dGY4SW1wbChjb25zdCBV
Q2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBjaGFyKiYgYnVmZmVyLCBzaXplX3Qg
YnVmZmVyU2l6ZSwgQ29udmVyc2lvbk1vZGUpOworICAgIHN0YXRpYyBXVEZfRVhQT1JUX1BSSVZB
VEUgVVRGOENvbnZlcnNpb25FcnJvciB1dGY4SW1wbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoLCBjaGFyKiYgYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSwgQ29udmVy
c2lvbk1vZGUpOwogICAgIAogICAgIC8vIFRoZSBoaWdoIGJpdHMgb2YgJ2hhc2gnIGFyZSBhbHdh
eXMgZW1wdHksIGJ1dCB3ZSBwcmVmZXIgdG8gc3RvcmUgb3VyIGZsYWdzCiAgICAgLy8gaW4gdGhl
IGxvdyBiaXRzIGJlY2F1c2UgaXQgbWFrZXMgdGhlbSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCB0
byBhY2Nlc3MuCkBAIC0xMjAyLDggKzEyMDYsOCBAQCB0ZW1wbGF0ZTx1bnNpZ25lZCBsZW5ndGg+
IGlubGluZSBib29sIGVxCiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi11c2luZyBXVEY6OlN0cmlu
Z0ltcGw7CiB1c2luZyBXVEY6OlN0YXRpY1N0cmluZ0ltcGw7Cit1c2luZyBXVEY6OlN0cmluZ0lt
cGw7CiB1c2luZyBXVEY6OmVxdWFsOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdWaWV3LmNwcAkocmV2aXNpb24gMjMyMDY5KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBib29sIFN0cmluZ1Zp
ZXc6OmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhCiAgICAgcmV0dXJuIDo6V1RGOjplbmRzV2l0aEln
bm9yaW5nQVNDSUlDYXNlKCp0aGlzLCBzdWZmaXgpOwogfQogCi1DU3RyaW5nIFN0cmluZ1ZpZXc6
OnV0ZjgoQ29udmVyc2lvbk1vZGUgbW9kZSkgY29uc3QKK0V4cGVjdGVkPENTdHJpbmcsIFVURjhD
b252ZXJzaW9uRXJyb3I+IFN0cmluZ1ZpZXc6OnRyeUdldFV0ZjgoQ29udmVyc2lvbk1vZGUgbW9k
ZSkgY29uc3QKIHsKICAgICBpZiAoaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBDU3RyaW5nKCIi
LCAwKTsKQEAgLTg5LDYgKzg5LDEzIEBAIENTdHJpbmcgU3RyaW5nVmlldzo6dXRmOChDb252ZXJz
aW9uTW9kZSAKICAgICByZXR1cm4gU3RyaW5nSW1wbDo6dXRmOEZvckNoYXJhY3RlcnMoY2hhcmFj
dGVyczE2KCksIGxlbmd0aCgpLCBtb2RlKTsKIH0KIAorQ1N0cmluZyBTdHJpbmdWaWV3Ojp1dGY4
KENvbnZlcnNpb25Nb2RlIG1vZGUpIGNvbnN0Cit7CisgICAgYXV0byBleHBlY3RlZFN0cmluZyA9
IHRyeUdldFV0ZjgobW9kZSk7CisgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0ZWRTdHJpbmcpOwor
ICAgIHJldHVybiBleHBlY3RlZFN0cmluZy52YWx1ZSgpOworfQorCiBzaXplX3QgU3RyaW5nVmll
dzo6ZmluZChTdHJpbmdWaWV3IG1hdGNoU3RyaW5nLCB1bnNpZ25lZCBzdGFydCkgY29uc3QKIHsK
ICAgICByZXR1cm4gZmluZENvbW1vbigqdGhpcywgbWF0Y2hTdHJpbmcsIHN0YXJ0KTsKSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nVmlldy5oCShyZXZpc2lvbiAyMzIwNjkpCisrKyBTb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NvbnZlcnNpb25Nb2RlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
TENoYXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb21tb24uaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9VVEY4Q29udmVyc2lvbkVycm9yLmg+CiAKIC8vIEZJWE1FOiBFbmFibGluZyB0aGUg
U3RyaW5nVmlldyBsaWZldGltZSBjaGVja2luZyBjYXVzZXMgdGhlIE1TVkMgYnVpbGQgdG8gZmFp
bC4gRmlndXJlIG91dCB3aHkuCiAjaWYgZGVmaW5lZChOREVCVUcpIHx8IENPTVBJTEVSKE1TVkMp
CkBAIC0xMDYsNiArMTA3LDcgQEAgcHVibGljOgogICAgIFdURl9FWFBPUlRfUFJJVkFURSBSZXRh
aW5QdHI8TlNTdHJpbmc+IGNyZWF0ZU5TU3RyaW5nV2l0aG91dENvcHlpbmcoKSBjb25zdDsKICNl
bmRpZgogCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252
ZXJzaW9uRXJyb3I+IHRyeUdldFV0ZjgoQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lv
bikgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRmOChDb252ZXJzaW9u
TW9kZSA9IExlbmllbnRDb252ZXJzaW9uKSBjb25zdDsKIAogICAgIGNsYXNzIFVwY29udmVydGVk
Q2hhcmFjdGVyczsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvVVRGOENvbnZlcnNpb25FcnJv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvVVRGOENvbnZlcnNpb25FcnJv
ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvVVRGOENvbnZlcnNpb25F
cnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdU
RiB7CisKK2VudW0gY2xhc3MgVVRGOENvbnZlcnNpb25FcnJvciB7CisgICAgTm9uZSwKKyAgICBP
dXRPZk1lbW9yeSwKKyAgICBJbGxlZ2FsU291cmNlLAorICAgIFNvdXJjZUV4aGF1c3RlZAorfTsK
KworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VVRGOENvbnZlcnNpb25FcnJvcjsK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAJKHJldmlzaW9uIDIzMjA2OSkKKysrIFNv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA0LDkg
KzgwNCwyMSBAQCBDU3RyaW5nIFN0cmluZzo6bGF0aW4xKCkgY29uc3QKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCitFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiBTdHJpbmc6
OnRyeUdldFV0ZjgoQ29udmVyc2lvbk1vZGUgbW9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9p
bXBsID8gbV9pbXBsLT50cnlHZXRVdGY4KG1vZGUpIDogQ1N0cmluZyB7ICIiLCAwIH07Cit9CisK
K0V4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IFN0cmluZzo6dHJ5R2V0VXRm
OCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRyeUdldFV0ZjgoTGVuaWVudENvbnZlcnNpb24pOwor
fQorCiBDU3RyaW5nIFN0cmluZzo6dXRmOChDb252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAogewot
ICAgIHJldHVybiBtX2ltcGwgPyBtX2ltcGwtPnV0ZjgobW9kZSkgOiBDU3RyaW5nIHsgIiIsIDAg
fTsKKyAgICBFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiBleHBlY3RlZFN0
cmluZyA9IHRyeUdldFV0ZjgobW9kZSk7CisgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0ZWRTdHJp
bmcpOworICAgIHJldHVybiBleHBlY3RlZFN0cmluZy52YWx1ZSgpOwogfQogCiBDU3RyaW5nIFN0
cmluZzo6dXRmOCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgJKHJldmlzaW9u
IDIzMjA2OSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw2ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIENT
dHJpbmcgdXRmOChDb252ZXJzaW9uTW9kZSkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IENTdHJpbmcgdXRmOCgpIGNvbnN0OwogCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIEV4cGVjdGVk
PENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHRyeUdldFV0ZjgoQ29udmVyc2lvbk1vZGUp
IGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29u
dmVyc2lvbkVycm9yPiB0cnlHZXRVdGY4KCkgY29uc3Q7CisKICAgICBVQ2hhciBjaGFyYWN0ZXJB
dCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgVUNoYXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBp
bmRleCkgY29uc3QgeyByZXR1cm4gY2hhcmFjdGVyQXQoaW5kZXgpOyB9CiAK
</data>
<flag name="review"
          id="359236"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>