<?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>205509</bug_id>
          
          <creation_ts>2019-12-20 10:59:41 -0800</creation_ts>
          <short_desc>Tidy a bit of StringBuilder usage</short_desc>
          <delta_ts>2019-12-31 16:03:20 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mifenton</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600806</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 10:59:41 -0800</bug_when>
    <thetext>Tidy a bit of StringBuilder usage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600812</commentid>
    <comment_count>1</comment_count>
      <attachid>386225</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 11:06:20 -0800</bug_when>
    <thetext>Created attachment 386225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600879</commentid>
    <comment_count>2</comment_count>
      <attachid>386240</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 12:51:24 -0800</bug_when>
    <thetext>Created attachment 386240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602029</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-31 16:02:18 -0800</bug_when>
    <thetext>Committed r253963: &lt;https://trac.webkit.org/changeset/253963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602030</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-31 16:03:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/58257599&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386225</attachid>
            <date>2019-12-20 11:06:20 -0800</date>
            <delta_ts>2019-12-20 12:51:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205509-20191220110616.patch</filename>
            <type>text/plain</type>
            <size>12747</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjQ3MmNjNGJlMzExMzY2MDhjY2U3NzRlNWVlYjkxY2EwMDM4Y2Y1Li42MGNiM2QwNDFhZDNiYjJl
MGVhZjc3YzdlM2Q4NDJkNWY0NGE5MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOS0xMi0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGlkeSBhIGJpdCBvZiBTdHJpbmdCdWlsZGVyIHVzYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdTdHJlbmd0aFJlZHVj
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBoYXNl
OjpoYW5kbGVOb2RlKTogUmVtb3ZlIHVubmVlZGVkIGNoZWNrIHRoYXQKKyAgICAgICAgZHVwbGlj
YXRlcyByYW5nZSBjaGVja2luZyB0aGF0IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFN1YnN0cmluZyBk
b2VzLgorCiAyMDE5LTEyLTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvbid0IGNhY2hlIHNlbGYgY3VzdG9tcyBvbiBkaWN0aW9uYXJpZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggN2U2
N2Q2ZGE4YzMyYTMzODI3MGFhMGJkOTkxYTY3NjY3NWM2M2E4My4uYjdmNGEzZWQxYjlhY2Q4YWEw
ZTY5NjgyMzBmNjc0MDY5MWZiN2VjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0xMi0yMCAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGlkeSBhIGJpdCBvZiBT
dHJpbmdCdWlsZGVyIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDU1MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3Rl
bUltcGw6OmRlY29kZUZyb21GaWxlbmFtZSk6IEZpeCBtaXNsZWFkaW5nIHZhcmlhYmxlIG5hbWUg
ImhleERpZ2l0IgorICAgICAgICBmb3IgcmVzdWx0IG9mIGRlY29kaW5nICIlK1hYWFgiOyB3aGF0
J3MgZGVjb2RlZCBpcyBhIGNoYXJhY3Rlciwgbm90IGEgaGV4IGRpZ2l0LgorCisgICAgICAgICog
d3RmL0hleE51bWJlci5oOiBSZW1vdmUgdW51c2VkIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNp
emUgZnVuY3Rpb24gZm9yCisgICAgICAgIGRlc3RpbmF0aW9ucyBvdGhlciB0aGFuIFN0cmluZ0J1
aWxkZXIuIERvbid0IG5lZWQgaXQgYXQgdGhpcyB0aW1lLCBjb3VsZCBhZGQKKyAgICAgICAgaXQg
bGF0ZXIgaWYgd2UgZXZlciBkZWNpZGUgd2UgZG8uCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJp
bmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y29udmVydFRvTG93ZXJjYXNl
V2l0aG91dExvY2FsZSk6IFVzZSBpc0FTQ0lJLgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpj
b252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlU3RhcnRpbmdBdEZhaWxpbmdJbmRleDhCaXQp
OiBEaXR0by4KKworICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgIChh
c2NpaURlYnVnKTogVXNlIFN0cmluZ0J1aWxkZXIgdG8gYnVpbGQgdGhlIHN0cmluZzsgdGhpcyB3
YXMgdGhlIG9uZSBwbGFjZSB0aGF0CisgICAgICAgIHVzZWQgYXBwZW5kVW5zaWduZWRBc0hleEZp
eGVkU2l6ZSBvbiBzb21ldGhpbmcgZWxzZSwgYW5kIHRoZXJlIGlzIG5vIG5lZWQuCisKIDIwMTkt
MTItMjAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEludmFs
aWRhdGUgb25seSBhZmZlY3RlZCBlbGVtZW50cyBhZnRlciBtZWRpYSBxdWVyeSBldmFsdWF0aW9u
IGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNzczNjlhMzM5M2MyOWU5MmJiMDNjNmM3YjA1ZDM0MjI4
Y2I3MGZmLi5iNTY3OGNlOGEzNTc3OWFjNzY5OTA0MTQwNzAxMWYzYmRjMjJkYmI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTItMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgorCisgICAgICAgIFRpZHkgYSBiaXQgb2YgU3RyaW5nQnVpbGRlciB1c2FnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NTA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vUmFuZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnRvU3RyaW5nIGNvbnN0KTogUmVtb3ZlIHJl
ZHVuZGFudCByYW5nZSBjaGVja2luZyBhbmQgbGV0IHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVy
OjphcHBlbmRTdWJzdHJpbmcgdGFrZSBjYXJlIG9mIGl0LgorCisgICAgICAgICogZWRpdGluZy9N
YXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRDaGFyYWN0ZXJz
UmVwbGFjaW5nRW50aXRpZXNJbnRlcm5hbCk6IFVzZSBhcHBlbmRTdWJzdHJpbmcuCisgICAgICAg
IChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kTmFtZXNwYWNlKTogVXNlIHNpbmds
ZSBjYWxscyB0bworICAgICAgICBTdHJpbmdCdWlsZGVyOjphcHBlbmQgd2l0aCBtdWx0aXBsZSBh
cmd1bWVudHMgcmF0aGVyIHRoYW4gbXVsdGlwbGUgY2FsbHMuCisKIDIwMTktMTItMTkgIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIEFOR0xFIGFzIGEgZHlu
YW1pYyBsaWJyYXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0
cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRleCBlYjNkZGJkNzE4NDNkNDlmNjViMzJjZTk2
MWZmOWEwNzEyYTFhMDUxLi4xOGU2N2U3NjI1NzFjZGJhNWVlYmYxZTBmYzRmOTE4N2JmMzI1ZDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhS
ZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTkwMyw5ICs5MDMsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgaWYgKCFsYXN0SW5kZXggJiYgYnVpbGRlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
bV9ub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKHN0cmluZ05vZGUpOwogICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCA8IHN0cmluZy5sZW5ndGgoKSkKLSAg
ICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTdWJzdHJpbmcoc3RyaW5nLCBsYXN0SW5k
ZXgsIHN0cmluZy5sZW5ndGgoKSAtIGxhc3RJbmRleCk7Ci0gICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTdWJzdHJpbmcoc3RyaW5nLCBsYXN0SW5kZXgpOwog
ICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQobV9ncmFwaCwg
TGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKICAg
ICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAppbmRleCA2MDNjZjEyNTRjYzQ2NTZmMzE4
NzM3NDNhZjgwNTE2MDZkOGMwZDg1Li5lMDcyMDg2YmQ1MWI1N2RjNjFiN2FiZTRiN2JiZmFhZWQx
YzU5Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcApAQCAtMTgyLDggKzE4Miw4IEBAIFN0cmluZyBk
ZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKICAgICAgICAgaWYg
KCFpc0FTQ0lJSGV4RGlnaXQoaW5wdXRTdHJpbmdbaSArIDVdKSkKICAgICAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICAgICAgVUNoYXIgaGV4RGlnaXQgPSB0b0FTQ0lJSGV4VmFsdWUoaW5wdXRT
dHJpbmdbaSArIDJdLCBpbnB1dFN0cmluZ1tpICsgM10pIDw8IDggfCB0b0FTQ0lJSGV4VmFsdWUo
aW5wdXRTdHJpbmdbaSArIDRdLCBpbnB1dFN0cmluZ1tpICsgNV0pOwotICAgICAgICByZXN1bHQu
YXBwZW5kKGhleERpZ2l0KTsKKyAgICAgICAgVUNoYXIgZW5jb2RlZENoYXJhY3RlciA9IHRvQVND
SUlIZXhWYWx1ZShpbnB1dFN0cmluZ1tpICsgMl0sIGlucHV0U3RyaW5nW2kgKyAzXSkgPDwgOCB8
IHRvQVNDSUlIZXhWYWx1ZShpbnB1dFN0cmluZ1tpICsgNF0sIGlucHV0U3RyaW5nW2kgKyA1XSk7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZW5jb2RlZENoYXJhY3Rlcik7CiAgICAgICAgIGkgKz0g
NTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hleE51bWJlci5oIGIvU291
cmNlL1dURi93dGYvSGV4TnVtYmVyLmgKaW5kZXggZGEwZDM4MTEzNTAxM2ZkNjUzZTE0ZmY4YmZj
NjcwZWQ5NjNmNzQyNS4uMmU5NzY0MmYwNGZlNjVlOGVlMWJmMGIyY2FkMzJmMjc4ZTk5ZTRhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGV4TnVtYmVyLmgKKysrIGIvU291cmNlL1dURi93
dGYvSGV4TnVtYmVyLmgKQEAgLTYyLDE3ICs2Miw2IEBAIGlubGluZSB2b2lkIGFwcGVuZFVuc2ln
bmVkQXNIZXgoTnVtYmVyVHlwZSBudW1iZXIsIERlc3RpbmF0aW9uVHlwZSYgZGVzdGluYXRpb24s
CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShudW1iZXIsIGRlc3RpbmF0aW9uLCAw
LCBtb2RlKTsKIH0KIAotLy8gRklYTUU6IENvbnNpZGVyIHJlbmFtaW5nIHRvIGFwcGVuZEhleC4K
LS8vIFNhbWUgYXMgYXBwZW5kVW5zaWduZWRBc0hleCwgYnV0IHplcm8tcGFkZGluZyB0byBnZXQg
YXQgbGVhc3QgdGhlIGRlc2lyZWQgbnVtYmVyIG9mIGRpZ2l0cy4KLXRlbXBsYXRlPHR5cGVuYW1l
IE51bWJlclR5cGUsIHR5cGVuYW1lIERlc3RpbmF0aW9uVHlwZT4KLWlubGluZSB2b2lkIGFwcGVu
ZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUoTnVtYmVyVHlwZSBudW1iZXIsIERlc3RpbmF0aW9uVHlw
ZSYgZGVzdGluYXRpb24sIHVuc2lnbmVkIG1pbmltdW1EaWdpdHMsIEhleENvbnZlcnNpb25Nb2Rl
IG1vZGUgPSBVcHBlcmNhc2UpCi17Ci0gICAgLy8gRWFjaCBieXRlIGNhbiBnZW5lcmF0ZSB1cCB0
byB0d28gZGlnaXRzLgotICAgIHN0ZDo6YXJyYXk8TENoYXIsIHNpemVvZihOdW1iZXJUeXBlKSAq
IDI+IGJ1ZmZlcjsKLSAgICBhdXRvIHJlc3VsdCA9IEludGVybmFsOjphcHBlbmRIZXgoYnVmZmVy
LCBudW1iZXIsIG1pbmltdW1EaWdpdHMsIG1vZGUpOwotICAgIGRlc3RpbmF0aW9uLmFwcGVuZChy
ZXN1bHQuZmlyc3QsIHJlc3VsdC5zZWNvbmQpOwotfQotCiAvLyBGSVhNRTogQ29uc2lkZXIgcmVu
YW1pbmcgdG8gYXBwZW5kSGV4LgogLy8gU2FtZSBhcyBhcHBlbmRVbnNpZ25lZEFzSGV4LCBidXQg
emVyby1wYWRkaW5nIHRvIGdldCBhdCBsZWFzdCB0aGUgZGVzaXJlZCBudW1iZXIgb2YgZGlnaXRz
LgogdGVtcGxhdGU8dHlwZW5hbWUgTnVtYmVyVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
Y3BwCmluZGV4IDBjYWI5MjhlYmI1OWQ1YzFjMTU3ZjBhZWQwNGNmMzA4NDIwZTQ4NzMuLjBlMmY5
YjAzYmQ1MjVhOWE2N2RmMjhlNzU1N2JkYWE5OTE3YjNkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdJbXBsLmNwcApAQCAtMzQ5LDcgKzM0OSw3IEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBs
Ojpjb252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlKCkKICAgICBpZiAoaXM4Qml0KCkpIHsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgICAgIExDaGFyIGNoYXJhY3RlciA9IG1fZGF0YThbaV07Ci0gICAgICAgICAgICBpZiAoVU5M
SUtFTFkoKGNoYXJhY3RlciAmIH4weDdGKSB8fCBpc0FTQ0lJVXBwZXIoY2hhcmFjdGVyKSkpCisg
ICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWlzQVNDSUkoY2hhcmFjdGVyKSB8fCBpc0FTQ0lJVXBw
ZXIoY2hhcmFjdGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0xvd2VyY2Fz
ZVdpdGhvdXRMb2NhbGVTdGFydGluZ0F0RmFpbGluZ0luZGV4OEJpdChpKTsKICAgICAgICAgfQog
CkBAIC00MDUsMTMgKzQwNSwxNCBAQCBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y29udmVy
dFRvTG93ZXJjYXNlV2l0aG91dExvY2FsZVN0YXJ0aW5nQXRGYWlsaW5nSW5kZQogICAgIGF1dG8g
bmV3SW1wbCA9IGNyZWF0ZVVuaW5pdGlhbGl6ZWRJbnRlcm5hbE5vbkVtcHR5KG1fbGVuZ3RoLCBk
YXRhOCk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmFpbGluZ0luZGV4OyArK2kp
IHsKLSAgICAgICAgQVNTRVJUKCEobV9kYXRhOFtpXSAmIH4weDdGKSAmJiAhaXNBU0NJSVVwcGVy
KG1fZGF0YThbaV0pKTsKKyAgICAgICAgQVNTRVJUKGlzQVNDSUkobV9kYXRhOFtpXSkpOworICAg
ICAgICBBU1NFUlQoIWlzQVNDSUlVcHBlcihtX2RhdGE4W2ldKSk7CiAgICAgICAgIGRhdGE4W2ld
ID0gbV9kYXRhOFtpXTsKICAgICB9CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmYWlsaW5nSW5k
ZXg7IGkgPCBtX2xlbmd0aDsgKytpKSB7CiAgICAgICAgIExDaGFyIGNoYXJhY3RlciA9IG1fZGF0
YThbaV07Ci0gICAgICAgIGlmICghKGNoYXJhY3RlciAmIH4weDdGKSkKKyAgICAgICAgaWYgKGlz
QVNDSUkoY2hhcmFjdGVyKSkKICAgICAgICAgICAgIGRhdGE4W2ldID0gdG9BU0NJSUxvd2VyKGNo
YXJhY3Rlcik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKGlzTGF0aW4xKHVf
dG9sb3dlcihjaGFyYWN0ZXIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKaW5kZXggY2Zm
N2JlZGJhMGQzZDE4NzgzZmMxMjkzNDJkMjQ4NzQxMmFkMWY5ZS4uYTBmNzg1NTRkMTFiOGU5MGFh
YmJjYzFlYTIxMzllZWNlZmZjMmIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24u
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0No
YXJhY3Rlck5hbWVzLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOENvbnZlcnNpb24uaD4K
QEAgLTExMDksNyArMTExMCw3IEBAIFZlY3RvcjxjaGFyPiBhc2NpaURlYnVnKFN0cmluZ0ltcGwq
IGltcGwpCiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1cm4gYXNjaWlEZWJ1ZyhTdHJpbmco
IltudWxsXSJfcykuaW1wbCgpKTsKIAotICAgIFZlY3RvcjxjaGFyPiBidWZmZXI7CisgICAgU3Ry
aW5nQnVpbGRlciBidWZmZXI7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGltcGwtPmxl
bmd0aCgpOyArK2kpIHsKICAgICAgICAgVUNoYXIgY2ggPSAoKmltcGwpW2ldOwogICAgICAgICBp
ZiAoaXNBU0NJSVByaW50YWJsZShjaCkpIHsKQEAgLTExMjIsOCArMTEyMywxMCBAQCBWZWN0b3I8
Y2hhcj4gYXNjaWlEZWJ1ZyhTdHJpbmdJbXBsKiBpbXBsKQogICAgICAgICAgICAgYXBwZW5kVW5z
aWduZWRBc0hleEZpeGVkU2l6ZShjaCwgYnVmZmVyLCA0KTsKICAgICAgICAgfQogICAgIH0KLSAg
ICBidWZmZXIuYXBwZW5kKCdcMCcpOwotICAgIHJldHVybiBidWZmZXI7CisgICAgQ1N0cmluZyBu
YXJyb3dTdHJpbmcgPSBidWZmZXIudG9TdHJpbmcoKS5hc2NpaSgpOworICAgIFZlY3RvcjxjaGFy
PiByZXN1bHQ7CisgICAgcmVzdWx0LmFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihuYXJyb3dTdHJpbmcuZGF0YSgpKSwgbmFycm93U3RyaW5nLmxlbmd0aCgpICsgMSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAogVmVjdG9yPGNoYXI+IGFzY2lpRGVidWcoU3RyaW5nJiBzdHJp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCA0ZTYzODJkNGIyMmJiZTczZjU5ZmY5ZDdlZjY1ZThj
YzYzZjA0Zjc4Li42OTY0M2ExYmEzMjNlMTI3YmRlYzA3NTMwMTk3NjBlOTIwZTA4NGE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5jcHAKQEAgLTk0MiwxMSArOTQyLDkgQEAgU3RyaW5nIFJhbmdlOjp0b1N0cmlu
ZygpIGNvbnN0CiAgICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3ROb2RlKCk7IG5vZGUgIT0gcGFz
dExhc3Q7IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlKSkgewogICAgICAgICBhdXRv
IHR5cGUgPSBub2RlLT5ub2RlVHlwZSgpOwogICAgICAgICBpZiAodHlwZSA9PSBOb2RlOjpURVhU
X05PREUgfHwgdHlwZSA9PSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREUpIHsKLSAgICAgICAgICAg
IGF1dG8mIGRhdGEgPSBkb3duY2FzdDxDaGFyYWN0ZXJEYXRhPigqbm9kZSkuZGF0YSgpOwotICAg
ICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gZGF0YS5sZW5ndGgoKTsKLSAgICAgICAgICAgIHVu
c2lnbmVkIHN0YXJ0ID0gbm9kZSA9PSAmc3RhcnRDb250YWluZXIoKSA/IHN0ZDo6bWluKG1fc3Rh
cnQub2Zmc2V0KCksIGxlbmd0aCkgOiAwVTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGVuZCA9IG5v
ZGUgPT0gJmVuZENvbnRhaW5lcigpID8gc3RkOjptaW4oc3RkOjptYXgoc3RhcnQsIG1fZW5kLm9m
ZnNldCgpKSwgbGVuZ3RoKSA6IGxlbmd0aDsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kU3Vi
c3RyaW5nKGRhdGEsIHN0YXJ0LCBlbmQgLSBzdGFydCk7CisgICAgICAgICAgICB1bnNpZ25lZCBz
dGFydCA9IG5vZGUgPT0gJnN0YXJ0Q29udGFpbmVyKCkgPyBtX3N0YXJ0Lm9mZnNldCgpIDogMFU7
CisgICAgICAgICAgICB1bnNpZ25lZCBlbmQgPSBub2RlID09ICZlbmRDb250YWluZXIoKSA/IHN0
ZDo6bWF4KHN0YXJ0LCBtX2VuZC5vZmZzZXQoKSkgOiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2ln
bmVkPjo6bWF4KCk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZFN1YnN0cmluZyhkb3duY2Fz
dDxDaGFyYWN0ZXJEYXRhPigqbm9kZSkuZGF0YSgpLCBzdGFydCwgZW5kIC0gc3RhcnQpOwogICAg
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1
cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0
b3IuY3BwCmluZGV4IDg1YzRmYWVjNDRiMDhiOWJjYjBmM2NiMGI4ZDY1YmFjYTI5N2VhNGIuLmVj
YzRiNGM0OTFjYWQ2Njk0MmJjNGJkZGM3NmIxOTU0OWU5MTdkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBAIC0xNTAsMTIgKzE1MCwxMiBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzSW50ZXJu
YWwoU3RyaW5nQnVpbGRlciYgcmVzdQogICAgICAgICBDaGFyYWN0ZXJUeXBlIGNoYXJhY3RlciA9
IHRleHRbaV07CiAgICAgICAgIHVpbnQ4X3Qgc3Vic3RpdHV0aW9uID0gY2hhcmFjdGVyIDwgV1RG
X0FSUkFZX0xFTkdUSChlbnRpdHlNYXApID8gZW50aXR5TWFwW2NoYXJhY3Rlcl0gOiBzdGF0aWNf
Y2FzdDx1aW50OF90PihFbnRpdHlTdWJzdGl0dXRpb25OdWxsSW5kZXgpOwogICAgICAgICBpZiAo
VU5MSUtFTFkoc3Vic3RpdHV0aW9uICE9IEVudGl0eVN1YnN0aXR1dGlvbk51bGxJbmRleCkgJiYg
ZW50aXR5U3Vic3RpdHV0aW9uTGlzdFtzdWJzdGl0dXRpb25dLm1hc2sgJiBlbnRpdHlNYXNrKSB7
Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kQ2hhcmFjdGVycyh0ZXh0ICsgcG9zaXRpb25BZnRl
ckxhc3RFbnRpdHksIGkgLSBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSk7CisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kU3Vic3RyaW5nKHNvdXJjZSwgb2Zmc2V0ICsgcG9zaXRpb25BZnRlckxhc3RF
bnRpdHksIGkgLSBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSk7CiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kQ2hhcmFjdGVycyhlbnRpdHlTdWJzdGl0dXRpb25MaXN0W3N1YnN0aXR1dGlvbl0uY2hh
cmFjdGVycywgZW50aXR5U3Vic3RpdHV0aW9uTGlzdFtzdWJzdGl0dXRpb25dLmxlbmd0aCk7CiAg
ICAgICAgICAgICBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSA9IGkgKyAxOwogICAgICAgICB9CiAg
ICAgfQotICAgIHJlc3VsdC5hcHBlbmRDaGFyYWN0ZXJzKHRleHQgKyBwb3NpdGlvbkFmdGVyTGFz
dEVudGl0eSwgbGVuZ3RoIC0gcG9zaXRpb25BZnRlckxhc3RFbnRpdHkpOworICAgIHJlc3VsdC5h
cHBlbmRTdWJzdHJpbmcoc291cmNlLCBvZmZzZXQgKyBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSwg
bGVuZ3RoIC0gcG9zaXRpb25BZnRlckxhc3RFbnRpdHkpOwogfQogCiB2b2lkIE1hcmt1cEFjY3Vt
dWxhdG9yOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMoU3RyaW5nQnVpbGRlciYg
cmVzdWx0LCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgsIEVudGl0eU1hc2sgZW50aXR5TWFzaykKQEAgLTM1MSwxMSArMzUxLDggQEAgdm9pZCBN
YXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kTmFtZXNwYWNlKFN0cmluZ0J1aWxkZXImIHJlc3VsdCwg
Y29uc3QgQXRvbVN0cmluZyYKICAgICBuYW1lc3BhY2VzLmNoZWNrQ29uc2lzdGVuY3koKTsKICAg
ICBpZiAobmFtZXNwYWNlVVJJLmlzRW1wdHkoKSkgewogICAgICAgICAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90aGUteGh0bWwt
c3ludGF4Lmh0bWwjeG1sLWZyYWdtZW50LXNlcmlhbGl6YXRpb24tYWxnb3JpdGhtCi0gICAgICAg
IGlmIChhbGxvd0VtcHR5RGVmYXVsdE5TICYmIG5hbWVzcGFjZXMuZ2V0KGVtcHR5QXRvbSgpLmlt
cGwoKSkpIHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKLSAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoeG1sbnNBdG9tKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZExpdGVyYWwoIj1cIlwiIik7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGFsbG93RW1wdHlE
ZWZhdWx0TlMgJiYgbmFtZXNwYWNlcy5nZXQoZW1wdHlBdG9tKCkuaW1wbCgpKSkKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAnLCB4bWxuc0F0b20oKSwgIj1cIlwiIik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTM3MCwxMiArMzY3LDkgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRv
cjo6YXBwZW5kTmFtZXNwYWNlKFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgQXRvbVN0cmlu
ZyYKICAgICAgICAgLy8gTWFrZSBzdXJlIHhtbCBwcmVmaXggYW5kIG5hbWVzcGFjZSBhcmUgYWx3
YXlzIGtub3duIHRvIHVwaG9sZCB0aGUgY29uc3RyYWludHMgbGlzdGVkIGF0IGh0dHA6Ly93d3cu
dzMub3JnL1RSL3htbC1uYW1lczExLyN4bWxSZXNlcnZlZC4KICAgICAgICAgaWYgKG5hbWVzcGFj
ZVVSSS5pbXBsKCkgPT0gWE1MTmFtZXM6OnhtbE5hbWVzcGFjZVVSSS0+aW1wbCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICByZXN1bHQuYXBwZW5kKCcgJyk7Ci0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoeG1sbnNBdG9tKCkuc3RyaW5nKCkpOwotICAgICAgICBpZiAoIXByZWZpeC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJzonKTsKLSAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQocHJlZml4KTsKLSAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKCcg
JywgeG1sbnNBdG9tKCkpOworICAgICAgICBpZiAoIXByZWZpeC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCc6JywgcHJlZml4KTsKIAogICAgICAgICByZXN1bHQuYXBwZW5k
KCc9Jyk7CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyInKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386240</attachid>
            <date>2019-12-20 12:51:24 -0800</date>
            <delta_ts>2019-12-31 11:03:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205509-20191220125120.patch</filename>
            <type>text/plain</type>
            <size>14303</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjQ3MmNjNGJlMzExMzY2MDhjY2U3NzRlNWVlYjkxY2EwMDM4Y2Y1Li42MGNiM2QwNDFhZDNiYjJl
MGVhZjc3YzdlM2Q4NDJkNWY0NGE5MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOS0xMi0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGlkeSBhIGJpdCBvZiBTdHJpbmdCdWlsZGVyIHVzYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MDkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdTdHJlbmd0aFJlZHVj
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJlZHVjdGlvblBoYXNl
OjpoYW5kbGVOb2RlKTogUmVtb3ZlIHVubmVlZGVkIGNoZWNrIHRoYXQKKyAgICAgICAgZHVwbGlj
YXRlcyByYW5nZSBjaGVja2luZyB0aGF0IFN0cmluZ0J1aWxkZXI6OmFwcGVuZFN1YnN0cmluZyBk
b2VzLgorCiAyMDE5LTEyLTE5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvbid0IGNhY2hlIHNlbGYgY3VzdG9tcyBvbiBkaWN0aW9uYXJpZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggN2U2
N2Q2ZGE4YzMyYTMzODI3MGFhMGJkOTkxYTY3NjY3NWM2M2E4My4uMjYxY2RlODdiZjBjOWFhZTM4
MDU3NDg2YTMxYWE0N2FmZjIxM2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0xMi0yMCAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGlkeSBhIGJpdCBvZiBT
dHJpbmdCdWlsZGVyIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDU1MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3Rl
bUltcGw6OmRlY29kZUZyb21GaWxlbmFtZSk6IEZpeCBtaXNsZWFkaW5nIHZhcmlhYmxlIG5hbWUg
ImhleERpZ2l0IgorICAgICAgICBmb3IgcmVzdWx0IG9mIGRlY29kaW5nICIlK1hYWFgiOyB3aGF0
J3MgZGVjb2RlZCBpcyBhIGNoYXJhY3Rlciwgbm90IGEgaGV4IGRpZ2l0LgorCisgICAgICAgICog
d3RmL0hleE51bWJlci5oOiBSZW1vdmUgdW51c2VkIGFwcGVuZFVuc2lnbmVkQXNIZXhGaXhlZFNp
emUgZnVuY3Rpb24gZm9yCisgICAgICAgIGRlc3RpbmF0aW9ucyBvdGhlciB0aGFuIFN0cmluZ0J1
aWxkZXIuIERvbid0IG5lZWQgaXQgYXQgdGhpcyB0aW1lLCBjb3VsZCBhZGQKKyAgICAgICAgaXQg
bGF0ZXIgaWYgd2UgZXZlciBkZWNpZGUgd2UgZG8uCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0J1aWxkZXI6OmFwcGVuZFN1YnN0cmlu
Zyk6IEltcHJvdmVkIGxvZ2ljIGluIGFwcGVuZFN1YnN0cmluZyBzbyBpdAorICAgICAgICB3aWxs
IGhhbmRsZSBldmVuIGFic3VyZCB2YWx1ZXMgZm9yIG9mZnNldCBhbmQgbGVuZ3RoIGNvcnJlY3Rs
eSwgYW5kIGFkZGVkIGEKKyAgICAgICAgZGVmYXVsdCBsZW5ndGggb2YgImluZmluaXR5IiBqdXN0
IGxpa2UgaW4gU3RyaW5nOjpzdWJzdHJpbmcuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y29udmVydFRvTG93ZXJjYXNlV2l0
aG91dExvY2FsZSk6IFVzZSBpc0FTQ0lJLgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpjb252
ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlU3RhcnRpbmdBdEZhaWxpbmdJbmRleDhCaXQpOiBE
aXR0by4KKworICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgIChhc2Np
aURlYnVnKTogVXNlIFN0cmluZ0J1aWxkZXIgdG8gYnVpbGQgdGhlIHN0cmluZzsgdGhpcyB3YXMg
dGhlIG9uZSBwbGFjZSB0aGF0CisgICAgICAgIHVzZWQgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVk
U2l6ZSBvbiBzb21ldGhpbmcgZWxzZSwgYW5kIHRoZXJlIGlzIG5vIG5lZWQuCisKIDIwMTktMTIt
MjAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEludmFsaWRh
dGUgb25seSBhZmZlY3RlZCBlbGVtZW50cyBhZnRlciBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGNo
YW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBiNzliODU3ZDVmMDI0MjQxNzEzODMxMDBhZTAxOTQzYjEyZGVj
N2JjLi40MWNhM2VhNmM4OTUxMGYwNzIyYjE3MWIzY2RiZDM3YzAxZDU2ZThmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTItMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFRpZHkgYSBiaXQgb2YgU3RyaW5nQnVpbGRlciB1c2FnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NTA5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vUmFuZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnRvU3RyaW5nIGNvbnN0KTogUmVtb3ZlIHJlZHVu
ZGFudCByYW5nZSBjaGVja2luZyBhbmQgbGV0IHRoZQorICAgICAgICBTdHJpbmdCdWlsZGVyOjph
cHBlbmRTdWJzdHJpbmcgdGFrZSBjYXJlIG9mIGl0LgorCisgICAgICAgICogZWRpdGluZy9NYXJr
dXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRDaGFyYWN0ZXJzUmVw
bGFjaW5nRW50aXRpZXNJbnRlcm5hbCk6IFVzZSBhcHBlbmRTdWJzdHJpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kTmFtZXNwYWNlKTogVXNlIHNpbmdsZSBj
YWxscyB0bworICAgICAgICBTdHJpbmdCdWlsZGVyOjphcHBlbmQgd2l0aCBtdWx0aXBsZSBhcmd1
bWVudHMgcmF0aGVyIHRoYW4gbXVsdGlwbGUgY2FsbHMuCisKIDIwMTktMTItMjAgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNXU2VydmVyIGNhbiBiZSBjcmVh
dGVkIHdpdGhvdXQgYW55IHBhdGggdG8gc3RvcmUgcmVnaXN0cmF0aW9ucyBpbiBub24gZXBoZW1l
cmFsIHNlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0
cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAppbmRleCBlYjNkZGJkNzE4NDNkNDlmNjViMzJjZTk2
MWZmOWEwNzEyYTFhMDUxLi4xOGU2N2U3NjI1NzFjZGJhNWVlYmYxZTBmYzRmOTE4N2JmMzI1ZDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhS
ZWR1Y3Rpb25QaGFzZS5jcHAKQEAgLTkwMyw5ICs5MDMsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgaWYgKCFsYXN0SW5kZXggJiYgYnVpbGRlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
bV9ub2RlLT5jb252ZXJ0VG9JZGVudGl0eU9uKHN0cmluZ05vZGUpOwogICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCA8IHN0cmluZy5sZW5ndGgoKSkKLSAg
ICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTdWJzdHJpbmcoc3RyaW5nLCBsYXN0SW5k
ZXgsIHN0cmluZy5sZW5ndGgoKSAtIGxhc3RJbmRleCk7Ci0gICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRTdWJzdHJpbmcoc3RyaW5nLCBsYXN0SW5kZXgpOwog
ICAgICAgICAgICAgICAgIG1fbm9kZS0+Y29udmVydFRvTGF6eUpTQ29uc3RhbnQobV9ncmFwaCwg
TGF6eUpTVmFsdWU6Om5ld1N0cmluZyhtX2dyYXBoLCBidWlsZGVyLnRvU3RyaW5nKCkpKTsKICAg
ICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAppbmRleCA2MDNjZjEyNTRjYzQ2NTZmMzE4
NzM3NDNhZjgwNTE2MDZkOGMwZDg1Li5lMDcyMDg2YmQ1MWI1N2RjNjFiN2FiZTRiN2JiZmFhZWQx
YzU5Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcApAQCAtMTgyLDggKzE4Miw4IEBAIFN0cmluZyBk
ZWNvZGVGcm9tRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBpbnB1dFN0cmluZykKICAgICAgICAgaWYg
KCFpc0FTQ0lJSGV4RGlnaXQoaW5wdXRTdHJpbmdbaSArIDVdKSkKICAgICAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICAgICAgVUNoYXIgaGV4RGlnaXQgPSB0b0FTQ0lJSGV4VmFsdWUoaW5wdXRT
dHJpbmdbaSArIDJdLCBpbnB1dFN0cmluZ1tpICsgM10pIDw8IDggfCB0b0FTQ0lJSGV4VmFsdWUo
aW5wdXRTdHJpbmdbaSArIDRdLCBpbnB1dFN0cmluZ1tpICsgNV0pOwotICAgICAgICByZXN1bHQu
YXBwZW5kKGhleERpZ2l0KTsKKyAgICAgICAgVUNoYXIgZW5jb2RlZENoYXJhY3RlciA9IHRvQVND
SUlIZXhWYWx1ZShpbnB1dFN0cmluZ1tpICsgMl0sIGlucHV0U3RyaW5nW2kgKyAzXSkgPDwgOCB8
IHRvQVNDSUlIZXhWYWx1ZShpbnB1dFN0cmluZ1tpICsgNF0sIGlucHV0U3RyaW5nW2kgKyA1XSk7
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZW5jb2RlZENoYXJhY3Rlcik7CiAgICAgICAgIGkgKz0g
NTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hleE51bWJlci5oIGIvU291
cmNlL1dURi93dGYvSGV4TnVtYmVyLmgKaW5kZXggZGEwZDM4MTEzNTAxM2ZkNjUzZTE0ZmY4YmZj
NjcwZWQ5NjNmNzQyNS4uMmU5NzY0MmYwNGZlNjVlOGVlMWJmMGIyY2FkMzJmMjc4ZTk5ZTRhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGV4TnVtYmVyLmgKKysrIGIvU291cmNlL1dURi93
dGYvSGV4TnVtYmVyLmgKQEAgLTYyLDE3ICs2Miw2IEBAIGlubGluZSB2b2lkIGFwcGVuZFVuc2ln
bmVkQXNIZXgoTnVtYmVyVHlwZSBudW1iZXIsIERlc3RpbmF0aW9uVHlwZSYgZGVzdGluYXRpb24s
CiAgICAgYXBwZW5kVW5zaWduZWRBc0hleEZpeGVkU2l6ZShudW1iZXIsIGRlc3RpbmF0aW9uLCAw
LCBtb2RlKTsKIH0KIAotLy8gRklYTUU6IENvbnNpZGVyIHJlbmFtaW5nIHRvIGFwcGVuZEhleC4K
LS8vIFNhbWUgYXMgYXBwZW5kVW5zaWduZWRBc0hleCwgYnV0IHplcm8tcGFkZGluZyB0byBnZXQg
YXQgbGVhc3QgdGhlIGRlc2lyZWQgbnVtYmVyIG9mIGRpZ2l0cy4KLXRlbXBsYXRlPHR5cGVuYW1l
IE51bWJlclR5cGUsIHR5cGVuYW1lIERlc3RpbmF0aW9uVHlwZT4KLWlubGluZSB2b2lkIGFwcGVu
ZFVuc2lnbmVkQXNIZXhGaXhlZFNpemUoTnVtYmVyVHlwZSBudW1iZXIsIERlc3RpbmF0aW9uVHlw
ZSYgZGVzdGluYXRpb24sIHVuc2lnbmVkIG1pbmltdW1EaWdpdHMsIEhleENvbnZlcnNpb25Nb2Rl
IG1vZGUgPSBVcHBlcmNhc2UpCi17Ci0gICAgLy8gRWFjaCBieXRlIGNhbiBnZW5lcmF0ZSB1cCB0
byB0d28gZGlnaXRzLgotICAgIHN0ZDo6YXJyYXk8TENoYXIsIHNpemVvZihOdW1iZXJUeXBlKSAq
IDI+IGJ1ZmZlcjsKLSAgICBhdXRvIHJlc3VsdCA9IEludGVybmFsOjphcHBlbmRIZXgoYnVmZmVy
LCBudW1iZXIsIG1pbmltdW1EaWdpdHMsIG1vZGUpOwotICAgIGRlc3RpbmF0aW9uLmFwcGVuZChy
ZXN1bHQuZmlyc3QsIHJlc3VsdC5zZWNvbmQpOwotfQotCiAvLyBGSVhNRTogQ29uc2lkZXIgcmVu
YW1pbmcgdG8gYXBwZW5kSGV4LgogLy8gU2FtZSBhcyBhcHBlbmRVbnNpZ25lZEFzSGV4LCBidXQg
emVyby1wYWRkaW5nIHRvIGdldCBhdCBsZWFzdCB0aGUgZGVzaXJlZCBudW1iZXIgb2YgZGlnaXRz
LgogdGVtcGxhdGU8dHlwZW5hbWUgTnVtYmVyVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmgKaW5kZXggMGUxZmMzOWYzMzkwMTFiYjVjNTdkNzAzZDllN2FlZDI2NjE2NjI5Ny4uMTUz
NmQyMjUyOTlmMDY5ZDIyYTY4MGY2NDY1NmQxMjg3NDRlMDg1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmgKQEAgLTE0MiwxOCArMTQyLDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFw
cGVuZChOU1N0cmluZyAqc3RyaW5nKSB7IGFwcGVuZCgoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpc3Ry
aW5nKTsgfQogI2VuZGlmCiAgICAgCi0gICAgdm9pZCBhcHBlbmRTdWJzdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQorICAgIHZvaWQg
YXBwZW5kU3Vic3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGxlbmd0aCA9IFN0cmluZzo6TWF4TGVuZ3RoKQogICAgIHsKLSAgICAgICAgaWYgKCFz
dHJpbmcubGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKChvZmZz
ZXQgKyBsZW5ndGgpID4gc3RyaW5nLmxlbmd0aCgpKQorICAgICAgICBpZiAob2Zmc2V0ID49IHN0
cmluZy5sZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICB1bnNpZ25lZCBj
bGFtcGVkTGVuZ3RoID0gc3RkOjptaW4obGVuZ3RoLCBzdHJpbmcubGVuZ3RoKCkgLSBvZmZzZXQp
OwogICAgICAgICBpZiAoc3RyaW5nLmlzOEJpdCgpKQotICAgICAgICAgICAgYXBwZW5kQ2hhcmFj
dGVycyhzdHJpbmcuY2hhcmFjdGVyczgoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAg
IGFwcGVuZENoYXJhY3RlcnMoc3RyaW5nLmNoYXJhY3RlcnM4KCkgKyBvZmZzZXQsIGNsYW1wZWRM
ZW5ndGgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmRDaGFyYWN0ZXJzKHN0cmlu
Zy5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGFwcGVuZENo
YXJhY3RlcnMoc3RyaW5nLmNoYXJhY3RlcnMxNigpICsgb2Zmc2V0LCBjbGFtcGVkTGVuZ3RoKTsK
ICAgICB9CiAKICAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggMGNhYjkyOGViYjU5ZDVjMWMxNTdmMGFlZDA0Y2Yz
MDg0MjBlNDg3My4uMGUyZjliMDNiZDUyNWE5YTY3ZGYyOGU3NTU3YmRhYTk5MTdiM2Q1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0zNDksNyArMzQ5LDcgQEAgUmVmPFN0cmlu
Z0ltcGw+IFN0cmluZ0ltcGw6OmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUoKQogICAg
IGlmIChpczhCaXQoKSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sZW5n
dGg7ICsraSkgewogICAgICAgICAgICAgTENoYXIgY2hhcmFjdGVyID0gbV9kYXRhOFtpXTsKLSAg
ICAgICAgICAgIGlmIChVTkxJS0VMWSgoY2hhcmFjdGVyICYgfjB4N0YpIHx8IGlzQVNDSUlVcHBl
cihjaGFyYWN0ZXIpKSkKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWSghaXNBU0NJSShjaGFyYWN0
ZXIpIHx8IGlzQVNDSUlVcHBlcihjaGFyYWN0ZXIpKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
Y29udmVydFRvTG93ZXJjYXNlV2l0aG91dExvY2FsZVN0YXJ0aW5nQXRGYWlsaW5nSW5kZXg4Qml0
KGkpOwogICAgICAgICB9CiAKQEAgLTQwNSwxMyArNDA1LDE0IEBAIFJlZjxTdHJpbmdJbXBsPiBT
dHJpbmdJbXBsOjpjb252ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlU3RhcnRpbmdBdEZhaWxp
bmdJbmRlCiAgICAgYXV0byBuZXdJbXBsID0gY3JlYXRlVW5pbml0aWFsaXplZEludGVybmFsTm9u
RW1wdHkobV9sZW5ndGgsIGRhdGE4KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBm
YWlsaW5nSW5kZXg7ICsraSkgewotICAgICAgICBBU1NFUlQoIShtX2RhdGE4W2ldICYgfjB4N0Yp
ICYmICFpc0FTQ0lJVXBwZXIobV9kYXRhOFtpXSkpOworICAgICAgICBBU1NFUlQoaXNBU0NJSSht
X2RhdGE4W2ldKSk7CisgICAgICAgIEFTU0VSVCghaXNBU0NJSVVwcGVyKG1fZGF0YThbaV0pKTsK
ICAgICAgICAgZGF0YThbaV0gPSBtX2RhdGE4W2ldOwogICAgIH0KIAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IGZhaWxpbmdJbmRleDsgaSA8IG1fbGVuZ3RoOyArK2kpIHsKICAgICAgICAgTENoYXIg
Y2hhcmFjdGVyID0gbV9kYXRhOFtpXTsKLSAgICAgICAgaWYgKCEoY2hhcmFjdGVyICYgfjB4N0Yp
KQorICAgICAgICBpZiAoaXNBU0NJSShjaGFyYWN0ZXIpKQogICAgICAgICAgICAgZGF0YThbaV0g
PSB0b0FTQ0lJTG93ZXIoY2hhcmFjdGVyKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBB
U1NFUlQoaXNMYXRpbjEodV90b2xvd2VyKGNoYXJhY3RlcikpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmNwcAppbmRleCBjZmY3YmVkYmEwZDNkMTg3ODNmYzEyOTM0MmQyNDg3NDEyYWQxZjllLi5h
MGY3ODU1NGQxMWI4ZTkwYWFiYmNjMWVhMjEzOWVlY2VmZmMyYjM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvSW50ZWdlclRv
U3RyaW5nQ29udmVyc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9V
VEY4Q29udmVyc2lvbi5oPgpAQCAtMTEwOSw3ICsxMTEwLDcgQEAgVmVjdG9yPGNoYXI+IGFzY2lp
RGVidWcoU3RyaW5nSW1wbCogaW1wbCkKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBh
c2NpaURlYnVnKFN0cmluZygiW251bGxdIl9zKS5pbXBsKCkpOwogCi0gICAgVmVjdG9yPGNoYXI+
IGJ1ZmZlcjsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1ZmZlcjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgaW1wbC0+bGVuZ3RoKCk7ICsraSkgewogICAgICAgICBVQ2hhciBjaCA9ICgqaW1w
bClbaV07CiAgICAgICAgIGlmIChpc0FTQ0lJUHJpbnRhYmxlKGNoKSkgewpAQCAtMTEyMiw4ICsx
MTIzLDEwIEBAIFZlY3RvcjxjaGFyPiBhc2NpaURlYnVnKFN0cmluZ0ltcGwqIGltcGwpCiAgICAg
ICAgICAgICBhcHBlbmRVbnNpZ25lZEFzSGV4Rml4ZWRTaXplKGNoLCBidWZmZXIsIDQpOwogICAg
ICAgICB9CiAgICAgfQotICAgIGJ1ZmZlci5hcHBlbmQoJ1wwJyk7Ci0gICAgcmV0dXJuIGJ1ZmZl
cjsKKyAgICBDU3RyaW5nIG5hcnJvd1N0cmluZyA9IGJ1ZmZlci50b1N0cmluZygpLmFzY2lpKCk7
CisgICAgVmVjdG9yPGNoYXI+IHJlc3VsdDsKKyAgICByZXN1bHQuYXBwZW5kKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KG5hcnJvd1N0cmluZy5kYXRhKCkpLCBuYXJyb3dTdHJpbmcubGVu
Z3RoKCkgKyAxKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBWZWN0b3I8Y2hhcj4gYXNjaWlE
ZWJ1ZyhTdHJpbmcmIHN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5n
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDRlNjM4MmQ0YjIyYmJl
NzNmNTlmZjlkN2VmNjVlOGNjNjNmMDRmNzguLjY5NjQzYTFiYTMyM2UxMjdiZGVjMDc1MzAxOTc2
MGU5MjBlMDg0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtOTQyLDExICs5NDIsOSBAQCBTdHJp
bmcgUmFuZ2U6OnRvU3RyaW5nKCkgY29uc3QKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdE5v
ZGUoKTsgbm9kZSAhPSBwYXN0TGFzdDsgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUp
KSB7CiAgICAgICAgIGF1dG8gdHlwZSA9IG5vZGUtPm5vZGVUeXBlKCk7CiAgICAgICAgIGlmICh0
eXBlID09IE5vZGU6OlRFWFRfTk9ERSB8fCB0eXBlID09IE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9E
RSkgewotICAgICAgICAgICAgYXV0byYgZGF0YSA9IGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpu
b2RlKS5kYXRhKCk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBkYXRhLmxlbmd0aCgp
OwotICAgICAgICAgICAgdW5zaWduZWQgc3RhcnQgPSBub2RlID09ICZzdGFydENvbnRhaW5lcigp
ID8gc3RkOjptaW4obV9zdGFydC5vZmZzZXQoKSwgbGVuZ3RoKSA6IDBVOwotICAgICAgICAgICAg
dW5zaWduZWQgZW5kID0gbm9kZSA9PSAmZW5kQ29udGFpbmVyKCkgPyBzdGQ6Om1pbihzdGQ6Om1h
eChzdGFydCwgbV9lbmQub2Zmc2V0KCkpLCBsZW5ndGgpIDogbGVuZ3RoOwotICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmRTdWJzdHJpbmcoZGF0YSwgc3RhcnQsIGVuZCAtIHN0YXJ0KTsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIHN0YXJ0ID0gbm9kZSA9PSAmc3RhcnRDb250YWluZXIoKSA/IG1fc3Rh
cnQub2Zmc2V0KCkgOiAwVTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGVuZCA9IG5vZGUgPT0gJmVu
ZENvbnRhaW5lcigpID8gc3RkOjptYXgoc3RhcnQsIG1fZW5kLm9mZnNldCgpKSA6IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
U3Vic3RyaW5nKGRvd25jYXN0PENoYXJhY3RlckRhdGE+KCpub2RlKS5kYXRhKCksIHN0YXJ0LCBl
bmQgLSBzdGFydCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggODVjNGZhZWM0NGIwOGI5YmNiMGYzY2IwYjhk
NjViYWNhMjk3ZWE0Yi4uZWNjNGI0YzQ5MWNhZDY2OTQyYmM0YmRkYzc2YjE5NTQ5ZTkxN2Q3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTE1
MCwxMiArMTUwLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRDaGFyYWN0ZXJzUmVwbGFj
aW5nRW50aXRpZXNJbnRlcm5hbChTdHJpbmdCdWlsZGVyJiByZXN1CiAgICAgICAgIENoYXJhY3Rl
clR5cGUgY2hhcmFjdGVyID0gdGV4dFtpXTsKICAgICAgICAgdWludDhfdCBzdWJzdGl0dXRpb24g
PSBjaGFyYWN0ZXIgPCBXVEZfQVJSQVlfTEVOR1RIKGVudGl0eU1hcCkgPyBlbnRpdHlNYXBbY2hh
cmFjdGVyXSA6IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEVudGl0eVN1YnN0aXR1dGlvbk51bGxJbmRl
eCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShzdWJzdGl0dXRpb24gIT0gRW50aXR5U3Vic3RpdHV0
aW9uTnVsbEluZGV4KSAmJiBlbnRpdHlTdWJzdGl0dXRpb25MaXN0W3N1YnN0aXR1dGlvbl0ubWFz
ayAmIGVudGl0eU1hc2spIHsKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRDaGFyYWN0ZXJzKHRl
eHQgKyBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSwgaSAtIHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5
KTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRTdWJzdHJpbmcoc291cmNlLCBvZmZzZXQgKyBw
b3NpdGlvbkFmdGVyTGFzdEVudGl0eSwgaSAtIHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5KTsKICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmRDaGFyYWN0ZXJzKGVudGl0eVN1YnN0aXR1dGlvbkxpc3Rb
c3Vic3RpdHV0aW9uXS5jaGFyYWN0ZXJzLCBlbnRpdHlTdWJzdGl0dXRpb25MaXN0W3N1YnN0aXR1
dGlvbl0ubGVuZ3RoKTsKICAgICAgICAgICAgIHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5ID0gaSAr
IDE7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmVzdWx0LmFwcGVuZENoYXJhY3RlcnModGV4dCAr
IHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5LCBsZW5ndGggLSBwb3NpdGlvbkFmdGVyTGFzdEVudGl0
eSk7CisgICAgcmVzdWx0LmFwcGVuZFN1YnN0cmluZyhzb3VyY2UsIG9mZnNldCArIHBvc2l0aW9u
QWZ0ZXJMYXN0RW50aXR5LCBsZW5ndGggLSBwb3NpdGlvbkFmdGVyTGFzdEVudGl0eSk7CiB9CiAK
IHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGll
cyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgc291cmNlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgRW50aXR5TWFzayBlbnRpdHlNYXNrKQpAQCAtMzUxLDEx
ICszNTEsOCBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmROYW1lc3BhY2UoU3RyaW5n
QnVpbGRlciYgcmVzdWx0LCBjb25zdCBBdG9tU3RyaW5nJgogICAgIG5hbWVzcGFjZXMuY2hlY2tD
b25zaXN0ZW5jeSgpOwogICAgIGlmIChuYW1lc3BhY2VVUkkuaXNFbXB0eSgpKSB7CiAgICAgICAg
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3RoZS14aHRtbC1zeW50YXguaHRtbCN4bWwtZnJhZ21lbnQtc2VyaWFsaXphdGlvbi1h
bGdvcml0aG0KLSAgICAgICAgaWYgKGFsbG93RW1wdHlEZWZhdWx0TlMgJiYgbmFtZXNwYWNlcy5n
ZXQoZW1wdHlBdG9tKCkuaW1wbCgpKSkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcp
OwotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh4bWxuc0F0b20oKS5zdHJpbmcoKSk7Ci0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiPVwiXCIiKTsKLSAgICAgICAgfQorICAgICAg
ICBpZiAoYWxsb3dFbXB0eURlZmF1bHROUyAmJiBuYW1lc3BhY2VzLmdldChlbXB0eUF0b20oKS5p
bXBsKCkpKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcsIHhtbG5zQXRvbSgpLCAiPVwi
XCIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzcwLDEyICszNjcsOSBAQCB2b2lk
IE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmROYW1lc3BhY2UoU3RyaW5nQnVpbGRlciYgcmVzdWx0
LCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAgICAvLyBNYWtlIHN1cmUgeG1sIHByZWZpeCBhbmQg
bmFtZXNwYWNlIGFyZSBhbHdheXMga25vd24gdG8gdXBob2xkIHRoZSBjb25zdHJhaW50cyBsaXN0
ZWQgYXQgaHR0cDovL3d3dy53My5vcmcvVFIveG1sLW5hbWVzMTEvI3htbFJlc2VydmVkLgogICAg
ICAgICBpZiAobmFtZXNwYWNlVVJJLmltcGwoKSA9PSBYTUxOYW1lczo6eG1sTmFtZXNwYWNlVVJJ
LT5pbXBsKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoJyAn
KTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZCh4bWxuc0F0b20oKS5zdHJpbmcoKSk7Ci0gICAgICAg
IGlmICghcHJlZml4LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnOicp
OwotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwcmVmaXgpOwotICAgICAgICB9CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAnLCB4bWxuc0F0b20oKSk7CisgICAgICAgIGlmICghcHJlZml4Lmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJzonLCBwcmVmaXgpOwogCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJz0nKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnIicpOwo=
</data>
<flag name="review"
          id="402059"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>