<?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>204693</bug_id>
          
          <creation_ts>2019-11-28 14:35:20 -0800</creation_ts>
          <short_desc>[LFC][IFC] Move and rename LineLayoutContext::UncommittedContent</short_desc>
          <delta_ts>2019-11-29 06:21:00 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594114</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-28 14:35:20 -0800</bug_when>
    <thetext>This struct represents the amount of content committed to line breaking at a time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594115</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-28 14:35:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/57523727&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594116</commentid>
    <comment_count>2</comment_count>
      <attachid>384475</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-28 14:43:47 -0800</bug_when>
    <thetext>Created attachment 384475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594184</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-29 06:21:00 -0800</bug_when>
    <thetext>Committed r252940: &lt;https://trac.webkit.org/changeset/252940&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384475</attachid>
            <date>2019-11-28 14:43:47 -0800</date>
            <delta_ts>2019-11-28 23:39:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204693-20191128144318.patch</filename>
            <type>text/plain</type>
            <size>24508</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI2NjdiNjE0N2VmZGM2
MjFlZmRhYjlkMWNmM2RiNjRkMGRmZDM2Ni4uZmVkY2IzMWQyOTNiZWU3YzM2ZDU1NmE0ZmM3NjJh
MjJlYmVhMzJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTExLTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIGFu
ZCByZW5hbWUgTGluZUxheW91dENvbnRleHQ6OlVuY29tbWl0dGVkQ29udGVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NjkzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NzUyMzcyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBMaW5lQnJlYWtlcjo6Q29udGVudCByZXByZXNlbnRzIHRoZSBhbW91
bnQgb2YgY29udGVudCB3ZSBjb21taXQgdG8gbGluZSBicmVha2luZyBhdCBhIHRpbWUuCisgICAg
ICAgIE5vcm1hbGx5IGl0IGhvbGRzIG9ubHkgb25lIElubGluZUl0ZW0gZS5nIFt0ZXh0XVsgXVtj
b250ZW50XSA8LSB3ZSBzdWJtaXQgMyBlbnRyaWVzIHRvIGxpbmUgYnJlYWtpbmcsIGJ1dAorICAg
ICAgICB3aXRoIChtb3N0bHkpaW5saW5lIGNvbnRhaW5lcnMsIGl0IGNhbiBob2xkIGEgbG9uZyBs
aXN0IG9mIElubGluZUl0ZW1zIGUuZworICAgICAgICA8c3Bhbj4xPC9zcGFuPjI8c3Bhbj4zPC9z
cGFuPjQ8c3Bhbj41PC9zcGFuPjYKKyAgICAgICAgW2NvbnRhaW5lciBzdGFydF1bMV1bY29udGFp
bmVyIGVuZF1bMl1bY29udGFpbmVyIHN0YXJ0XVszXVtjb250YWluZXIgZW5kXVs0XVtjb250YWlu
ZXIgc3RhcnRdWzVdW2NvbnRhaW5lciBlbmRdWzZdCisgICAgICAgIDwtIHRoaXMgaXMgb25lIGVu
dHJ5IHRvIHN1Ym1pdC4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBhbHNvIGluIHByZXBhcmF0aW9u
IGZvciBmaXhpbmcgdHJhaWxpbmcgdHJpbW1hYmxlIGNvbnRlbnQgaGFuZGxpbmcuCisKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJbmxp
bmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OndvcmRC
cmVha2luZ0JlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJy
ZWFrZXI6OnRyeUJyZWFraW5nVGV4dFJ1biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojppc0F0Q29udGVudEJvdW5kYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OmFwcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpyZXNldCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojp0cmltKToKKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6cnVucyk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpydW5zIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OmlzRW1wdHkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6c2l6ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojp3
aWR0aCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91
dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4
dDo6cGxhY2VJbmxpbmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91
dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRDb250ZW50OjphZGQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21t
aXR0ZWRDb250ZW50OjpyZXNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxpbmVMYXlvdXRDb250ZXh0OjpzaG91bGRQcm9jZXNzVW5jb21taXR0ZWRDb250ZW50IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dENvbnRleHQ6
OlVuY29tbWl0dGVkQ29udGVudDo6dHJpbSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZUxheW91dENvbnRleHQ6OlVuY29tbWl0dGVkQ29udGVudDo6cnVucyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1p
dHRlZENvbnRlbnQ6OnJ1bnMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6VW5jb21taXR0ZWRDb250ZW50Ojppc0VtcHR5IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dENvbnRleHQ6
OlVuY29tbWl0dGVkQ29udGVudDo6c2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OndpZHRo
IGNvbnN0KTogRGVsZXRlZC4KKwogMjAxOS0xMS0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsaW5lJ3MgaXMtdmlzdWFs
bHktZW1wdHkgc3RhdHVzIGFmdGVyIHRyaW1taW5nIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGNv
bnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAppbmRleCBlMjc2YzliZjQ2NWYxNjY3NGQ4MzA3
MjZiMjZmMGRkZjNkN2Q5ZjFiLi42YTI2MTRmNDE4OGVjNzlmOTI1MmVkZTIyZDdhMzViMmRmNTBm
ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCkBAIC00OCwxMiArNDgsMTMgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzVHJhaWxpbmdXaGl0ZXNwYWNlV2l0aFByZVdyYXAoY29uc3QgSW5saW5l
SXRlbSYgdHJhaWxpbmdJbmwKICAgICByZXR1cm4gdHJhaWxpbmdJbmxpbmVJdGVtLnN0eWxlKCku
d2hpdGVTcGFjZSgpID09IFdoaXRlU3BhY2U6OlByZVdyYXAgJiYgZG93bmNhc3Q8SW5saW5lVGV4
dEl0ZW0+KHRyYWlsaW5nSW5saW5lSXRlbSkuaXNXaGl0ZXNwYWNlKCk7CiB9CiAKLUxpbmVCcmVh
a2VyOjpCcmVha2luZ0NvbnRleHQgTGluZUJyZWFrZXI6OmJyZWFraW5nQ29udGV4dEZvcklubGlu
ZUNvbnRlbnQoY29uc3QgTGluZUxheW91dENvbnRleHQ6OlJ1bkxpc3QmIHJ1bnMsIExheW91dFVu
aXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBib29sIGxpbmVJc0Vt
cHR5KQorTGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4dCBMaW5lQnJlYWtlcjo6YnJlYWtpbmdD
b250ZXh0Rm9ySW5saW5lQ29udGVudChjb25zdCBDb250ZW50JiBjb250ZW50LCBMYXlvdXRVbml0
IGF2YWlsYWJsZVdpZHRoLCBib29sIGxpbmVJc0VtcHR5KQogewotICAgIGlmIChsb2dpY2FsV2lk
dGggPD0gYXZhaWxhYmxlV2lkdGgpCisgICAgaWYgKGNvbnRlbnQud2lkdGgoKSA8PSBhdmFpbGFi
bGVXaWR0aCkKICAgICAgICAgcmV0dXJuIHsgQnJlYWtpbmdDb250ZXh0OjpDb250ZW50QnJlYWs6
OktlZXAsIHsgfSB9OwogCi0gICAgYXV0byBpc1RleHRDb250ZW50ID0gW10oYXV0byYgcnVucykg
eworICAgIGF1dG8mIHJ1bnMgPSBjb250ZW50LnJ1bnMoKTsKKyAgICBhdXRvIGlzVGV4dENvbnRl
bnQgPSBbJl0gewogICAgICAgICAvLyA8c3Bhbj50ZXh0PC9zcGFuPiBpcyBjb25zaWRlcmVkIGEg
dGV4dCBydW4gZXZlbiB3aXRoIHRoZSBbY29udGFpbmVyIHN0YXJ0XVtjb250YWluZXIgZW5kXSBp
bmxpbmUgaXRlbXMuCiAgICAgICAgIGZvciAoYXV0byYgcnVuIDogcnVucykgewogICAgICAgICAg
ICAgYXV0byYgaW5saW5lSXRlbSA9IHJ1bi5pbmxpbmVJdGVtOwpAQCAtNjQsNyArNjUsNyBAQCBM
aW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRG
b3JJbmxpbmVDb250ZW50KGNvbnN0CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH07Ci0gICAgaWYgKGlzVGV4dENvbnRlbnQocnVucykpIHsKKyAgICBpZiAoaXNUZXh0Q29u
dGVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvIHRyYWlsaW5nUGFydGlhbENvbnRlbnQgPSB3b3Jk
QnJlYWtpbmdCZWhhdmlvcihydW5zLCBhdmFpbGFibGVXaWR0aCkpCiAgICAgICAgICAgICByZXR1
cm4geyBCcmVha2luZ0NvbnRleHQ6OkNvbnRlbnRCcmVhazo6U3BsaXQsIHRyYWlsaW5nUGFydGlh
bENvbnRlbnQgfTsKICAgICAgICAgLy8gSWYgd2UgZGlkIG5vdCBtYW5hZ2UgdG8gYnJlYWsgdGhp
cyBjb250ZW50LCB3ZSBzdGlsbCBuZWVkIHRvIGRlY2lkZSB3aGV0aGVyIGtlZXAgaXQgb3Igd3Jh
cCBpdCB0byB0aGUgbmV4dCBsaW5lLgpAQCAtODgsNyArODksNyBAQCBib29sIExpbmVCcmVha2Vy
OjpzaG91bGRXcmFwRmxvYXRCb3goTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxXaWR0aCwgTGF5b3V0
VW5pdCBhdgogICAgIHJldHVybiAhbGluZUlzRW1wdHkgJiYgZmxvYXRMb2dpY2FsV2lkdGggPiBh
dmFpbGFibGVXaWR0aDsKIH0KIAotT3B0aW9uYWw8TGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4
dDo6VHJhaWxpbmdQYXJ0aWFsQ29udGVudD4gTGluZUJyZWFrZXI6OndvcmRCcmVha2luZ0JlaGF2
aW9yKGNvbnN0IExpbmVMYXlvdXRDb250ZXh0OjpSdW5MaXN0JiBydW5zLCBMYXlvdXRVbml0IGF2
YWlsYWJsZVdpZHRoKSBjb25zdAorT3B0aW9uYWw8TGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4
dDo6VHJhaWxpbmdQYXJ0aWFsQ29udGVudD4gTGluZUJyZWFrZXI6OndvcmRCcmVha2luZ0JlaGF2
aW9yKGNvbnN0IENvbnRlbnQ6OlJ1bkxpc3QmIHJ1bnMsIExheW91dFVuaXQgYXZhaWxhYmxlV2lk
dGgpIGNvbnN0CiB7CiAgICAgLy8gQ2hlY2sgd2hlcmUgdGhlIG92ZXJmbG93IG9jY3VycyBhbmQg
dXNlIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlIHRvIGZpZ3VyZSBvdXQgdGhlIGJyZWFraW5nIGJl
aGF2aW91ci4KICAgICAvLyA8c3BhbiBzdHlsZT0id29yZC1icmVhazogbm9ybWFsIj5maXJzdDwv
c3Bhbj48c3BhbiBzdHlsZT0id29yZC1icmVhazogYnJlYWstYWxsIj5zZWNvbmQ8L3NwYW4+PHNw
YW4gc3R5bGU9IndvcmQtYnJlYWs6IG5vcm1hbCI+dGhpcmQ8L3NwYW4+CkBAIC0xMjEsNyArMTIy
LDcgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4dDo6VHJhaWxpbmdQYXJ0
aWFsQ29udGVudD4gTGluZUJyZWFrZXI6OndvcmQKICAgICByZXR1cm4geyB9OwogfQogCi1PcHRp
b25hbDxMaW5lQnJlYWtlcjo6U3BsaXRMZW5ndGhBbmRXaWR0aD4gTGluZUJyZWFrZXI6OnRyeUJy
ZWFraW5nVGV4dFJ1bihjb25zdCBMaW5lTGF5b3V0Q29udGV4dDo6UnVuIG92ZXJmbG93UnVuLCBM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdAorT3B0aW9uYWw8TGluZUJyZWFrZXI6OlNw
bGl0TGVuZ3RoQW5kV2lkdGg+IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3Qg
Q29udGVudDo6UnVuJiBvdmVyZmxvd1J1biwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCkgY29u
c3QKIHsKICAgICBBU1NFUlQob3ZlcmZsb3dSdW4uaW5saW5lSXRlbS5pc1RleHQoKSk7CiAgICAg
YXV0byBicmVha1dvcmRzID0gb3ZlcmZsb3dSdW4uaW5saW5lSXRlbS5zdHlsZSgpLndvcmRCcmVh
aygpOwpAQCAtMTM3LDYgKzEzOCwxMDcgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlNwbGl0TGVu
Z3RoQW5kV2lkdGg+IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3QKICAgICBy
ZXR1cm4geyB9OwogfQogCitib29sIExpbmVCcmVha2VyOjpDb250ZW50Ojppc0F0Q29udGVudEJv
dW5kYXJ5KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IENvbnRlbnQmIGNvbnRl
bnQpCit7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10ZXh0LTMvI2xpbmUt
YnJlYWstZGV0YWlscworICAgIC8vIEZpZ3VyZSBvdXQgaWYgdGhlIG5ldyBpbmNvbWluZyBjb250
ZW50IHB1dHMgdGhlIHVuY29tbWl0dGVkIGNvbnRlbnQgb24gY29tbWl0IGJvdW5kYXJ5LgorICAg
IC8vIGUuZy4gPHNwYW4+Y29udGludW91czwvc3Bhbj4gPC0gdW5jb21pdHRlZCBjb250ZW50IC0+
CisgICAgLy8gW2lubGluZSBjb250YWluZXIgc3RhcnRdW3RleHQgY29udGVudF1baW5saW5lIGNv
bnRhaW5lciBlbmRdCisgICAgLy8gQW4gaW5jb21pbmcgPGltZz4gYm94IHdvdWxkIGVuYWJsZSB1
cyB0byBjb21taXQgdGhlICI8c3Bhbj5jb250aW51b3VzPC9zcGFuPiIgY29udGVudAorICAgIC8v
IHdoaWxlIGFkZGl0aW9uYWwgdGV4dCBjb250ZW50IHdvdWxkIG5vdC4KKyAgICBBU1NFUlQoIWlu
bGluZUl0ZW0uaXNGbG9hdCgpICYmICFpbmxpbmVJdGVtLmlzRm9yY2VkTGluZUJyZWFrKCkpOwor
ICAgIGlmIChjb250ZW50LmlzRW1wdHkoKSkgeworICAgICAgICAvLyBDYW4ndCBkZWNpZGUgaXQg
eWV0LgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byogbGFzdFVuY29t
aXR0ZWRDb250ZW50ID0gJmNvbnRlbnQucnVucygpLmxhc3QoKS5pbmxpbmVJdGVtOworICAgIGlm
IChpbmxpbmVJdGVtLmlzVGV4dCgpKSB7CisgICAgICAgIC8vIGFueSBjb250ZW50JyAnIC0+IHdo
aXRlc3BhY2UgaXMgYWx3YXlzIGEgY29tbWl0IGJvdW5kYXJ5LgorICAgICAgICBpZiAoZG93bmNh
c3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pLmlzV2hpdGVzcGFjZSgpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIC8vIDxzcGFuPnRleHQgLT4gdGhlIGlubGluZSBjb250
YWluZXIgc3RhcnQgYW5kIHRoZSB0ZXh0IGNvbnRlbnQgZm9ybSBhbiB1bmJyZWFrYWJsZSBjb250
aW51b3VzIGNvbnRlbnQuCisgICAgICAgIGlmIChsYXN0VW5jb21pdHRlZENvbnRlbnQtPmlzQ29u
dGFpbmVyU3RhcnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gPC9z
cGFuPnRleHQgLT4gbmVlZCB0byBjaGVjayB3aGF0J3MgYmVmb3JlIHRoZSA8L3NwYW4+LgorICAg
ICAgICAvLyB0ZXh0PC9zcGFuPnRleHQgLT4gY29udGludW91cyBjb250ZW50CisgICAgICAgIC8v
IDxpbWc+PC9zcGFuPnRleHQgLT4gY29tbWl0IGJvdW5kYXkKKyAgICAgICAgaWYgKGxhc3RVbmNv
bWl0dGVkQ29udGVudC0+aXNDb250YWluZXJFbmQoKSkgeworICAgICAgICAgICAgYXV0byYgcnVu
cyA9IGNvbnRlbnQucnVucygpOworICAgICAgICAgICAgLy8gdGV4dDwvc3Bhbj48c3Bhbj48L3Nw
YW4+PC9zcGFuPnRleHQgLT4gY2hlY2sgYWxsIHRoZSB3YXkgYmFjayB1bnRpbCB3ZSBoaXQgZWl0
aGVyIGEgYm94IG9yIHNvbWUgdGV4dAorICAgICAgICAgICAgZm9yIChhdXRvIGkgPSBjb250ZW50
LnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgICAgIGF1dG8mIHByZXZpb3VzSW5saW5lSXRl
bSA9IHJ1bnNbaV0uaW5saW5lSXRlbTsKKyAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNJbmxp
bmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBwcmV2aW91c0lubGluZUl0ZW0uaXNDb250YWlu
ZXJFbmQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
QVNTRVJUKHByZXZpb3VzSW5saW5lSXRlbS5pc1RleHQoKSB8fCBwcmV2aW91c0lubGluZUl0ZW0u
aXNCb3goKSk7CisgICAgICAgICAgICAgICAgbGFzdFVuY29taXR0ZWRDb250ZW50ID0gJnByZXZp
b3VzSW5saW5lSXRlbTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIC8vIERpZCBub3QgZmluZCBhbnkgY29udGVudCAoZS5nLiA8c3Bhbj48L3NwYW4+
dGV4dCkKKyAgICAgICAgICAgIGlmIChsYXN0VW5jb21pdHRlZENvbnRlbnQtPmlzQ29udGFpbmVy
RW5kKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IC8vIHRleHR0ZXh0IC0+IGNvbnRpbnVvdXMgY29udGVudC4KKyAgICAgICAgLy8gJyAndGV4dCAt
PiBjb21taXQgYm91bmRhcnkuCisgICAgICAgIGlmIChsYXN0VW5jb21pdHRlZENvbnRlbnQtPmlz
VGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PElubGluZVRleHRJdGVtPigqbGFz
dFVuY29taXR0ZWRDb250ZW50KS5pc1doaXRlc3BhY2UoKTsKKyAgICAgICAgLy8gPGltZz50ZXh0
IC0+IHRoZSBpbmxpbmUgYm94IGlzIG9uIGEgY29tbWl0IGJvdW5kYXJ5LgorICAgICAgICBpZiAo
bGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0JveCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGlmIChpbmxpbmVJ
dGVtLmlzQm94KCkpIHsKKyAgICAgICAgLy8gPHNwYW4+PGltZz4gLT4gdGhlIGlubGluZSBjb250
YWluZXIgc3RhcnQgYW5kIHRoZSBjb250ZW50IGZvcm0gYW4gdW5icmVha2FibGUgY29udGludW91
cyBjb250ZW50LgorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5l
clN0YXJ0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIC8vIDwvc3Bhbj48
aW1nPiAtPiBvayB0byBjb21taXQgdGhlIDwvc3Bhbj4uCisgICAgICAgIGlmIChsYXN0VW5jb21p
dHRlZENvbnRlbnQtPmlzQ29udGFpbmVyRW5kKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgLy8gPGltZz50ZXh0IGFuZCA8aW1nPjxpbWc+IC0+IHRoZXNlIGNvbWJpbmF0aW9u
cyBhcmUgb2sgdG8gY29tbWl0LgorICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5p
c1RleHQoKSB8fCBsYXN0VW5jb21pdHRlZENvbnRlbnQtPmlzQm94KCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAg
aWYgKGlubGluZUl0ZW0uaXNDb250YWluZXJTdGFydCgpIHx8IGlubGluZUl0ZW0uaXNDb250YWlu
ZXJFbmQoKSkgeworICAgICAgICAvLyA8c3Bhbj48c3Bhbj4gb3IgPC9zcGFuPjxzcGFuPiAtPiBj
YW4ndCBjb21taXQgdGhlIHByZXZpb3VzIGNvbnRlbnQgeWV0LgorICAgICAgICBpZiAobGFzdFVu
Y29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lclN0YXJ0KCkgfHwgbGFzdFVuY29taXR0ZWRDb250
ZW50LT5pc0NvbnRhaW5lckVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAvLyAnICc8c3Bhbj4gLT4gbGV0J3MgY29tbWl0IHRoZSB3aGl0ZXNwYWNlCisgICAgICAgIC8v
IHRleHQ8c3Bhbj4gLT4gYnV0IG5vdCB5ZXQgdGhlIG5vbi13aGl0ZXNwYWNlOyB3ZSBuZWVkIHRv
IGtub3cgd2hhdCBjb21lcyBuZXh0IChlLmcuIHRleHQ8c3Bhbj50ZXh0IG9yIHRleHQ8c3Bhbj48
aW1nPikuCisgICAgICAgIGlmIChsYXN0VW5jb21pdHRlZENvbnRlbnQtPmlzVGV4dCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGRvd25jYXN0PElubGluZVRleHRJdGVtPigqbGFzdFVuY29taXR0ZWRD
b250ZW50KS5pc1doaXRlc3BhY2UoKTsKKyAgICAgICAgLy8gPGltZz48c3Bhbj4gLT4gaXQncyBv
ayB0byBjb21taXQgdGhlIGlubGluZSBib3ggY29udGVudC4KKyAgICAgICAgLy8gPGltZz48L3Nw
YW4+IC0+IHRoZSBpbmxpbmUgYm94IGFuZCB0aGUgY2xvc2luZyBpbmxpbmUgY29udGFpbmVyIGZv
cm0gYW4gdW5icmVha2FibGUgY29udGludW91cyBjb250ZW50LgorICAgICAgICBpZiAobGFzdFVu
Y29taXR0ZWRDb250ZW50LT5pc0JveCgpKQorICAgICAgICAgICAgcmV0dXJuIGlubGluZUl0ZW0u
aXNDb250YWluZXJTdGFydCgpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBMaW5lQnJlYWtlcjo6Q29udGVudDo6YXBwZW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0
ZW0sIExheW91dFVuaXQgbG9naWNhbFdpZHRoKQoreworICAgIG1fY29udGlub3VzUnVucy5hcHBl
bmQoeyBpbmxpbmVJdGVtLCBsb2dpY2FsV2lkdGggfSk7CisgICAgbV93aWR0aCArPSBsb2dpY2Fs
V2lkdGg7Cit9CisKK3ZvaWQgTGluZUJyZWFrZXI6OkNvbnRlbnQ6OnJlc2V0KCkKK3sKKyAgICBt
X2NvbnRpbm91c1J1bnMuY2xlYXIoKTsKKyAgICBtX3dpZHRoID0gMDsKK30KKwordm9pZCBMaW5l
QnJlYWtlcjo6Q29udGVudDo6dHJpbSh1bnNpZ25lZCBuZXdTaXplKQoreworICAgIGZvciAoYXV0
byBpID0gbV9jb250aW5vdXNSdW5zLnNpemUoKTsgaS0tOykKKyAgICAgICAgbV93aWR0aCAtPSBt
X2NvbnRpbm91c1J1bnNbaV0ubG9naWNhbFdpZHRoOworICAgIG1fY29udGlub3VzUnVucy5zaHJp
bmsobmV3U2l6ZSk7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmgKaW5kZXgg
ZmM0NGQyMmFkMmUwMjM4NmRlYzQ4MDEwYTE2N2RlNDA0YzgzMmE5Yy4uOGMyMzY2N2FiNDdlMDIy
MjBiNGUyMDVmM2ZjNzcxN2UxZmI5ZjViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCkBAIC0yOCw3
ICsyOCw2IEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKICNpbmNs
dWRlICJMYXlvdXRVbml0LmgiCi0jaW5jbHVkZSAiTGluZUxheW91dENvbnRleHQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CkBAIC00OCwxOCArNDcsNTIgQEAg
cHVibGljOgogICAgICAgICB9OwogICAgICAgICBPcHRpb25hbDxUcmFpbGluZ1BhcnRpYWxDb250
ZW50PiB0cmFpbGluZ1BhcnRpYWxDb250ZW50OwogICAgIH07Ci0gICAgQnJlYWtpbmdDb250ZXh0
IGJyZWFraW5nQ29udGV4dEZvcklubGluZUNvbnRlbnQoY29uc3QgTGluZUxheW91dENvbnRleHQ6
OlJ1bkxpc3QmLCBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBhdmFpbGFibGVX
aWR0aCwgYm9vbCBsaW5lSXNFbXB0eSk7CisKKyAgICAvLyBUaGlzIHN0cnVjdCByZXByZXNlbnRz
IHRoZSBhbW91bnQgb2YgY29udGVudCBjb21taXR0ZWQgdG8gbGluZSBicmVha2luZyBhdCBhIHRp
bWUgZS5nLgorICAgIC8vIHRleHQgY29udGVudCA8c3Bhbj5zcGFuMTwvc3Bhbj5iZXR3ZWVuPHNw
YW4+c3BhbjI8L3NwYW4+CisgICAgLy8gW3RleHRdWyBdW2NvbnRlbnRdWyBdW2NvbnRhaW5lciBz
dGFydF1bc3BhbjFdW2NvbnRhaW5lciBlbmRdW2JldHdlZW5dW2NvbnRhaW5lciBzdGFydF1bc3Bh
bjJdW2NvbnRhaW5lciBlbmRdCisgICAgLy8gLT4gY29udGVudCBjaHVua3MgLT4KKyAgICAvLyBb
dGV4dF0KKyAgICAvLyBbIF0KKyAgICAvLyBbY29udGVudF0KKyAgICAvLyBbY29udGFpbmVyIHN0
YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVuZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0YXJ0XVtzcGFu
Ml1bY29udGFpbmVyIGVuZF0KKyAgICAvLyBzZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy10ZXh0LTMvI2xpbmUtYnJlYWstZGV0YWlscworICAgIHN0cnVjdCBDb250ZW50IHsKKyAgICAg
ICAgdm9pZCBhcHBlbmQoY29uc3QgSW5saW5lSXRlbSYsIExheW91dFVuaXQgbG9naWNhbFdpZHRo
KTsKKyAgICAgICAgdm9pZCByZXNldCgpOworICAgICAgICB2b2lkIHRyaW0odW5zaWduZWQgbmV3
U2l6ZSk7CisKKyAgICAgICAgc3RhdGljIGJvb2wgaXNBdENvbnRlbnRCb3VuZGFyeShjb25zdCBJ
bmxpbmVJdGVtJiwgY29uc3QgQ29udGVudCYpOworCisgICAgICAgIHN0cnVjdCBSdW4geworICAg
ICAgICAgICAgY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbTsKKyAgICAgICAgICAgIExheW91
dFVuaXQgbG9naWNhbFdpZHRoOworICAgICAgICB9OworICAgICAgICB1c2luZyBSdW5MaXN0ID0g
VmVjdG9yPFJ1biwgMzA+OworCisgICAgICAgIFJ1bkxpc3QmIHJ1bnMoKSB7IHJldHVybiBtX2Nv
bnRpbm91c1J1bnM7IH0KKyAgICAgICAgY29uc3QgUnVuTGlzdCYgcnVucygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGlub3VzUnVuczsgfQorICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRpbm91c1J1bnMuaXNFbXB0eSgpOyB9CisgICAgICAgIHVuc2lnbmVkIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRpbm91c1J1bnMuc2l6ZSgpOyB9CisgICAgICAgIExheW91
dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBSdW5MaXN0IG1fY29udGlub3VzUnVuczsKKyAgICAgICAgTGF5b3V0VW5pdCBtX3dp
ZHRoOworICAgIH07CisKKyAgICBCcmVha2luZ0NvbnRleHQgYnJlYWtpbmdDb250ZXh0Rm9ySW5s
aW5lQ29udGVudChjb25zdCBDb250ZW50JiwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgYm9v
bCBsaW5lSXNFbXB0eSk7CiAgICAgYm9vbCBzaG91bGRXcmFwRmxvYXRCb3goTGF5b3V0VW5pdCBm
bG9hdExvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgYm9vbCBsaW5lSXNF
bXB0eSk7CiAKIHByaXZhdGU6CiAKLSAgICBPcHRpb25hbDxCcmVha2luZ0NvbnRleHQ6OlRyYWls
aW5nUGFydGlhbENvbnRlbnQ+IHdvcmRCcmVha2luZ0JlaGF2aW9yKGNvbnN0IExpbmVMYXlvdXRD
b250ZXh0OjpSdW5MaXN0JiwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCkgY29uc3Q7CisgICAg
T3B0aW9uYWw8QnJlYWtpbmdDb250ZXh0OjpUcmFpbGluZ1BhcnRpYWxDb250ZW50PiB3b3JkQnJl
YWtpbmdCZWhhdmlvcihjb25zdCBDb250ZW50OjpSdW5MaXN0JiwgTGF5b3V0VW5pdCBhdmFpbGFi
bGVXaWR0aCkgY29uc3Q7CiAKICAgICBzdHJ1Y3QgU3BsaXRMZW5ndGhBbmRXaWR0aCB7CiAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCB7IDAgfTsKICAgICAgICAgTGF5b3V0VW5pdCBsZWZ0TG9naWNh
bFdpZHRoOwogICAgIH07Ci0gICAgT3B0aW9uYWw8U3BsaXRMZW5ndGhBbmRXaWR0aD4gdHJ5QnJl
YWtpbmdUZXh0UnVuKGNvbnN0IExpbmVMYXlvdXRDb250ZXh0OjpSdW4gb3ZlcmZsb3dSdW4sIExh
eW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0OworICAgIE9wdGlvbmFsPFNwbGl0TGVuZ3Ro
QW5kV2lkdGg+IHRyeUJyZWFraW5nVGV4dFJ1bihjb25zdCBDb250ZW50OjpSdW4mIG92ZXJmbG93
UnVuLCBMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlv
dXRDb250ZXh0LmNwcAppbmRleCA0M2M1OTYyNjFkM2U4ZGU2MTU2NGQ4ZjFhZDYxNjNlNTM2ZjRh
OGQwLi5iODI3Y2NjYjU2YTBmMmNjZWIxZmIyMTRmNDc2OGM4ZjhmMDczMzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxh
eW91dENvbnRleHQuY3BwCkBAIC02NywxOCArNjcsNiBAQCBzdGF0aWMgTGF5b3V0VW5pdCBpbmxp
bmVJdGVtV2lkdGgoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBj
bwogICAgIHJldHVybiBib3hHZW9tZXRyeS53aWR0aCgpOwogfQogCi12b2lkIExpbmVMYXlvdXRD
b250ZXh0OjpVbmNvbW1pdHRlZENvbnRlbnQ6OmFkZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJ
dGVtLCBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKLXsKLSAgICBtX3VuY29tbWl0dGVkUnVucy5h
cHBlbmQoeyBpbmxpbmVJdGVtLCBsb2dpY2FsV2lkdGggfSk7Ci0gICAgbV93aWR0aCArPSBsb2dp
Y2FsV2lkdGg7Ci19Ci0KLXZvaWQgTGluZUxheW91dENvbnRleHQ6OlVuY29tbWl0dGVkQ29udGVu
dDo6cmVzZXQoKQotewotICAgIG1fdW5jb21taXR0ZWRSdW5zLmNsZWFyKCk7Ci0gICAgbV93aWR0
aCA9IDA7Ci19Ci0KIExpbmVMYXlvdXRDb250ZXh0OjpMaW5lTGF5b3V0Q29udGV4dChjb25zdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IElu
bGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKICAgICA6IG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQo
aW5saW5lRm9ybWF0dGluZ0NvbnRleHQpCiAgICAgLCBtX2lubGluZUl0ZW1zKGlubGluZUl0ZW1z
KQpAQCAtMTkyLDE4ICsxODAsMTkgQEAgTGluZUxheW91dENvbnRleHQ6OklzRW5kT2ZMaW5lIExp
bmVMYXlvdXRDb250ZXh0OjpwbGFjZUlubGluZUl0ZW0oTGluZUJ1aWxkZXImIGwKICAgICAgICAg
YXV0byBpc0VuZE9mTGluZSA9ICFtX3VuY29tbWl0dGVkQ29udGVudC5pc0VtcHR5KCkgPyBwcm9j
ZXNzVW5jb21taXR0ZWRDb250ZW50KGxpbmUpIDogSXNFbmRPZkxpbmU6Ok5vOwogICAgICAgICAv
LyBXaGVuIHRoZSB1bmNvbW1pdHRlZCBjb250ZW50IGZpdHMob3IgdGhlIGxpbmUgaXMgZW1wdHkp
LCBhZGQgdGhlIGxpbmUgYnJlYWsgdG8gdGhpcyBsaW5lIGFzIHdlbGwuCiAgICAgICAgIGlmIChp
c0VuZE9mTGluZSA9PSBJc0VuZE9mTGluZTo6Tm8pIHsKLSAgICAgICAgICAgIG1fdW5jb21taXR0
ZWRDb250ZW50LmFkZChpbmxpbmVJdGVtLCBpdGVtTG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAg
IG1fdW5jb21taXR0ZWRDb250ZW50LmFwcGVuZChpbmxpbmVJdGVtLCBpdGVtTG9naWNhbFdpZHRo
KTsKICAgICAgICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KGxpbmUpOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBJc0VuZE9mTGluZTo6WWVzOwogICAgIH0KICAgICAvLwogICAgIGF1dG8g
aXNFbmRPZkxpbmUgPSBJc0VuZE9mTGluZTo6Tm87Ci0gICAgaWYgKCFtX3VuY29tbWl0dGVkQ29u
dGVudC5pc0VtcHR5KCkgJiYgc2hvdWxkUHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudChpbmxpbmVJ
dGVtKSkKKyAgICAvLyBDYW4gd2UgY29tbWl0IHRoZSBwZW5kaW5nIGNvbnRlbnQgYWxyZWFkeT8K
KyAgICBpZiAoTGluZUJyZWFrZXI6OkNvbnRlbnQ6OmlzQXRDb250ZW50Qm91bmRhcnkoaW5saW5l
SXRlbSwgbV91bmNvbW1pdHRlZENvbnRlbnQpKQogICAgICAgICBpc0VuZE9mTGluZSA9IHByb2Nl
c3NVbmNvbW1pdHRlZENvbnRlbnQobGluZSk7CiAgICAgLy8gVGhlIGN1cnJlbnQgaXRlbSBtaWdo
dCBmaXQgYXMgd2VsbC4KICAgICBpZiAoaXNFbmRPZkxpbmUgPT0gSXNFbmRPZkxpbmU6Ok5vKQot
ICAgICAgICBtX3VuY29tbWl0dGVkQ29udGVudC5hZGQoaW5saW5lSXRlbSwgaXRlbUxvZ2ljYWxX
aWR0aCk7CisgICAgICAgIG1fdW5jb21taXR0ZWRDb250ZW50LmFwcGVuZChpbmxpbmVJdGVtLCBp
dGVtTG9naWNhbFdpZHRoKTsKICAgICByZXR1cm4gaXNFbmRPZkxpbmU7CiB9CiAKQEAgLTIxMSw3
ICsyMDAsNyBAQCBMaW5lTGF5b3V0Q29udGV4dDo6SXNFbmRPZkxpbmUgTGluZUxheW91dENvbnRl
eHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQoTGluZQogewogICAgIC8vIENoZWNrIGlmIHRo
ZSBwZW5kaW5nIGNvbnRlbnQgZml0cy4KICAgICBhdXRvIGxpbmVJc0NvbnNpZGVyZWRFbXB0eSA9
IGxpbmUuaXNWaXN1YWxseUVtcHR5KCkgJiYgIWxpbmUuaGFzSW50cnVzaXZlRmxvYXQoKTsKLSAg
ICBhdXRvIGJyZWFraW5nQ29udGV4dCA9IExpbmVCcmVha2VyKCkuYnJlYWtpbmdDb250ZXh0Rm9y
SW5saW5lQ29udGVudChtX3VuY29tbWl0dGVkQ29udGVudC5ydW5zKCksIG1fdW5jb21taXR0ZWRD
b250ZW50LndpZHRoKCksIGxpbmUuYXZhaWxhYmxlV2lkdGgoKSwgbGluZUlzQ29uc2lkZXJlZEVt
cHR5KTsKKyAgICBhdXRvIGJyZWFraW5nQ29udGV4dCA9IExpbmVCcmVha2VyKCkuYnJlYWtpbmdD
b250ZXh0Rm9ySW5saW5lQ29udGVudChtX3VuY29tbWl0dGVkQ29udGVudCwgbGluZS5hdmFpbGFi
bGVXaWR0aCgpLCBsaW5lSXNDb25zaWRlcmVkRW1wdHkpOwogICAgIC8vIFRoZSB1bmNvbW1pdHRl
ZCBjb250ZW50IGNhbiBmdWxseSwgcGFydGlhbGx5IGZpdCB0aGUgY3VycmVudCBsaW5lIChjb21t
aXQvcGFydGlhbCBjb21taXQpIG9yIG5vdCBhdCBhbGwgKHJlc2V0KS4KICAgICBpZiAoYnJlYWtp
bmdDb250ZXh0LmNvbnRlbnRCcmVhayA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0OjpD
b250ZW50QnJlYWs6OktlZXApCiAgICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KGxpbmUpOwpA
QCAtMjI5LDcgKzIxOCw3IEBAIExpbmVMYXlvdXRDb250ZXh0OjpJc0VuZE9mTGluZSBMaW5lTGF5
b3V0Q29udGV4dDo6cHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudChMaW5lCiAgICAgICAgIG1fb3Zl
cmZsb3dUZXh0TGVuZ3RoID0gb3ZlcmZsb3dJbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSAtIHRyYWls
aW5nQ29udGVudExlbmd0aDsKICAgICAgICAgLy8gS2VlcCB0aGUgbm9uLW92ZXJmbG93IHBhcnQg
b2YgdGhlIHVuY29tbWl0dGVkIHJ1bnMgYW5kIGFkZCB0aGUgdHJhaWxpbmcgcGFydGlhbCBjb250
ZW50LgogICAgICAgICBtX3VuY29tbWl0dGVkQ29udGVudC50cmltKG92ZXJmbG93SW5saW5lVGV4
dEl0ZW1JbmRleCk7Ci0gICAgICAgIG1fdW5jb21taXR0ZWRDb250ZW50LmFkZCgqbV90cmFpbGlu
Z1BhcnRpYWxUZXh0SXRlbSwgYnJlYWtpbmdDb250ZXh0LnRyYWlsaW5nUGFydGlhbENvbnRlbnQt
PmxvZ2ljYWxXaWR0aCk7CisgICAgICAgIG1fdW5jb21taXR0ZWRDb250ZW50LmFwcGVuZCgqbV90
cmFpbGluZ1BhcnRpYWxUZXh0SXRlbSwgYnJlYWtpbmdDb250ZXh0LnRyYWlsaW5nUGFydGlhbENv
bnRlbnQtPmxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIGNvbW1pdFBlbmRpbmdDb250ZW50KGxpbmUp
OwogICAgIH0gZWxzZSBpZiAoYnJlYWtpbmdDb250ZXh0LmNvbnRlbnRCcmVhayA9PSBMaW5lQnJl
YWtlcjo6QnJlYWtpbmdDb250ZXh0OjpDb250ZW50QnJlYWs6OldyYXApCiAgICAgICAgIG1fdW5j
b21taXR0ZWRDb250ZW50LnJlc2V0KCk7CkBAIC0yMzgsOTMgKzIyNyw2IEBAIExpbmVMYXlvdXRD
b250ZXh0OjpJc0VuZE9mTGluZSBMaW5lTGF5b3V0Q29udGV4dDo6cHJvY2Vzc1VuY29tbWl0dGVk
Q29udGVudChMaW5lCiAgICAgcmV0dXJuIGJyZWFraW5nQ29udGV4dC5jb250ZW50QnJlYWsgPT0g
TGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4dDo6Q29udGVudEJyZWFrOjpLZWVwID8gSXNFbmRP
ZkxpbmU6Ok5vIDpJc0VuZE9mTGluZTo6WWVzOwogfQogCi1ib29sIExpbmVMYXlvdXRDb250ZXh0
OjpzaG91bGRQcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KGNvbnN0IElubGluZUl0ZW0mIGlubGlu
ZUl0ZW0pIGNvbnN0Ci17Ci0gICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10ZXh0
LTMvI2xpbmUtYnJlYWstZGV0YWlscwotICAgIC8vIEZpZ3VyZSBvdXQgaWYgdGhlIG5ldyBpbmNv
bWluZyBjb250ZW50IHB1dHMgdGhlIHVuY29tbWl0dGVkIGNvbnRlbnQgb24gY29tbWl0IGJvdW5k
YXJ5LgotICAgIC8vIGUuZy4gPHNwYW4+Y29udGludW91czwvc3Bhbj4gPC0gdW5jb21pdHRlZCBj
b250ZW50IC0+Ci0gICAgLy8gW2lubGluZSBjb250YWluZXIgc3RhcnRdW3RleHQgY29udGVudF1b
aW5saW5lIGNvbnRhaW5lciBlbmRdCi0gICAgLy8gQW4gaW5jb21pbmcgPGltZz4gYm94IHdvdWxk
IGVuYWJsZSB1cyB0byBjb21taXQgdGhlICI8c3Bhbj5jb250aW51b3VzPC9zcGFuPiIgY29udGVu
dAotICAgIC8vIHdoaWxlIGFkZGl0aW9uYWwgdGV4dCBjb250ZW50IHdvdWxkIG5vdC4KLSAgICBB
U1NFUlQoIWlubGluZUl0ZW0uaXNGbG9hdCgpICYmICFpbmxpbmVJdGVtLmlzRm9yY2VkTGluZUJy
ZWFrKCkpOwotICAgIEFTU0VSVCghbV91bmNvbW1pdHRlZENvbnRlbnQuaXNFbXB0eSgpKTsKLQot
ICAgIGF1dG8qIGxhc3RVbmNvbWl0dGVkQ29udGVudCA9ICZtX3VuY29tbWl0dGVkQ29udGVudC5y
dW5zKCkubGFzdCgpLmlubGluZUl0ZW07Ci0gICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsK
LSAgICAgICAgLy8gYW55IGNvbnRlbnQnICcgLT4gd2hpdGVzcGFjZSBpcyBhbHdheXMgYSBjb21t
aXQgYm91bmRhcnkuCi0gICAgICAgIGlmIChkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5l
SXRlbSkuaXNXaGl0ZXNwYWNlKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
Ly8gPHNwYW4+dGV4dCAtPiB0aGUgaW5saW5lIGNvbnRhaW5lciBzdGFydCBhbmQgdGhlIHRleHQg
Y29udGVudCBmb3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMgY29udGVudC4KLSAgICAgICAg
aWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNDb250YWluZXJTdGFydCgpKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAvLyA8L3NwYW4+dGV4dCAtPiBuZWVkIHRvIGNoZWNr
IHdoYXQncyBiZWZvcmUgdGhlIDwvc3Bhbj4uCi0gICAgICAgIC8vIHRleHQ8L3NwYW4+dGV4dCAt
PiBjb250aW51b3VzIGNvbnRlbnQKLSAgICAgICAgLy8gPGltZz48L3NwYW4+dGV4dCAtPiBjb21t
aXQgYm91bmRheQotICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5l
ckVuZCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBydW5zID0gbV91bmNvbW1pdHRlZENvbnRlbnQu
cnVucygpOwotICAgICAgICAgICAgLy8gdGV4dDwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPnRl
eHQgLT4gY2hlY2sgYWxsIHRoZSB3YXkgYmFjayB1bnRpbCB3ZSBoaXQgZWl0aGVyIGEgYm94IG9y
IHNvbWUgdGV4dAotICAgICAgICAgICAgZm9yIChhdXRvIGkgPSBtX3VuY29tbWl0dGVkQ29udGVu
dC5zaXplKCk7IGktLTspIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBwcmV2aW91c0lubGluZUl0
ZW0gPSBydW5zW2ldLmlubGluZUl0ZW07Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzSW5s
aW5lSXRlbS5pc0NvbnRhaW5lclN0YXJ0KCkgfHwgcHJldmlvdXNJbmxpbmVJdGVtLmlzQ29udGFp
bmVyRW5kKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAg
IEFTU0VSVChwcmV2aW91c0lubGluZUl0ZW0uaXNUZXh0KCkgfHwgcHJldmlvdXNJbmxpbmVJdGVt
LmlzQm94KCkpOwotICAgICAgICAgICAgICAgIGxhc3RVbmNvbWl0dGVkQ29udGVudCA9ICZwcmV2
aW91c0lubGluZUl0ZW07Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAvLyBEaWQgbm90IGZpbmQgYW55IGNvbnRlbnQgKGUuZy4gPHNwYW4+PC9zcGFu
PnRleHQpCi0gICAgICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0NvbnRhaW5l
ckVuZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAg
ICAvLyB0ZXh0dGV4dCAtPiBjb250aW51b3VzIGNvbnRlbnQuCi0gICAgICAgIC8vICcgJ3RleHQg
LT4gY29tbWl0IGJvdW5kYXJ5LgotICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5p
c1RleHQoKSkKLSAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxh
c3RVbmNvbWl0dGVkQ29udGVudCkuaXNXaGl0ZXNwYWNlKCk7Ci0gICAgICAgIC8vIDxpbWc+dGV4
dCAtPiB0aGUgaW5saW5lIGJveCBpcyBvbiBhIGNvbW1pdCBib3VuZGFyeS4KLSAgICAgICAgaWYg
KGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNCb3goKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0KLSAgICBpZiAoaW5saW5l
SXRlbS5pc0JveCgpKSB7Ci0gICAgICAgIC8vIDxzcGFuPjxpbWc+IC0+IHRoZSBpbmxpbmUgY29u
dGFpbmVyIHN0YXJ0IGFuZCB0aGUgY29udGVudCBmb3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVv
dXMgY29udGVudC4KLSAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+aXNDb250YWlu
ZXJTdGFydCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAvLyA8L3NwYW4+
PGltZz4gLT4gb2sgdG8gY29tbWl0IHRoZSA8L3NwYW4+LgotICAgICAgICBpZiAobGFzdFVuY29t
aXR0ZWRDb250ZW50LT5pc0NvbnRhaW5lckVuZCgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIC8vIDxpbWc+dGV4dCBhbmQgPGltZz48aW1nPiAtPiB0aGVzZSBjb21iaW5hdGlv
bnMgYXJlIG9rIHRvIGNvbW1pdC4KLSAgICAgICAgaWYgKGxhc3RVbmNvbWl0dGVkQ29udGVudC0+
aXNUZXh0KCkgfHwgbGFzdFVuY29taXR0ZWRDb250ZW50LT5pc0JveCgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLQotICAg
IGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlzQ29udGFp
bmVyRW5kKCkpIHsKLSAgICAgICAgLy8gPHNwYW4+PHNwYW4+IG9yIDwvc3Bhbj48c3Bhbj4gLT4g
Y2FuJ3QgY29tbWl0IHRoZSBwcmV2aW91cyBjb250ZW50IHlldC4KLSAgICAgICAgaWYgKGxhc3RV
bmNvbWl0dGVkQ29udGVudC0+aXNDb250YWluZXJTdGFydCgpIHx8IGxhc3RVbmNvbWl0dGVkQ29u
dGVudC0+aXNDb250YWluZXJFbmQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgLy8gJyAnPHNwYW4+IC0+IGxldCdzIGNvbW1pdCB0aGUgd2hpdGVzcGFjZQotICAgICAgICAv
LyB0ZXh0PHNwYW4+IC0+IGJ1dCBub3QgeWV0IHRoZSBub24td2hpdGVzcGFjZTsgd2UgbmVlZCB0
byBrbm93IHdoYXQgY29tZXMgbmV4dCAoZS5nLiB0ZXh0PHNwYW4+dGV4dCBvciB0ZXh0PHNwYW4+
PGltZz4pLgotICAgICAgICBpZiAobGFzdFVuY29taXR0ZWRDb250ZW50LT5pc1RleHQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oKmxhc3RVbmNvbWl0dGVk
Q29udGVudCkuaXNXaGl0ZXNwYWNlKCk7Ci0gICAgICAgIC8vIDxpbWc+PHNwYW4+IC0+IGl0J3Mg
b2sgdG8gY29tbWl0IHRoZSBpbmxpbmUgYm94IGNvbnRlbnQuCi0gICAgICAgIC8vIDxpbWc+PC9z
cGFuPiAtPiB0aGUgaW5saW5lIGJveCBhbmQgdGhlIGNsb3NpbmcgaW5saW5lIGNvbnRhaW5lciBm
b3JtIGFuIHVuYnJlYWthYmxlIGNvbnRpbnVvdXMgY29udGVudC4KLSAgICAgICAgaWYgKGxhc3RV
bmNvbWl0dGVkQ29udGVudC0+aXNCb3goKSkKLSAgICAgICAgICAgIHJldHVybiBpbmxpbmVJdGVt
LmlzQ29udGFpbmVyU3RhcnQoKTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZv
aWQgTGluZUxheW91dENvbnRleHQ6OlVuY29tbWl0dGVkQ29udGVudDo6dHJpbSh1bnNpZ25lZCBu
ZXdTaXplKQotewotICAgIGZvciAoYXV0byBpID0gbV91bmNvbW1pdHRlZFJ1bnMuc2l6ZSgpOyBp
LS07KQotICAgICAgICBtX3dpZHRoIC09IG1fdW5jb21taXR0ZWRSdW5zW2ldLmxvZ2ljYWxXaWR0
aDsKLSAgICBtX3VuY29tbWl0dGVkUnVucy5zaHJpbmsobmV3U2l6ZSk7Ci19Ci0KLQogfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5l
TGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
TGluZUxheW91dENvbnRleHQuaAppbmRleCBiOTNkZmI5YjE1MGI1YWIzZjFiMTQ3YTEzM2MzM2Vj
Mjc1YTIzNmQ2Li4wOWNmMTM0ZWZmOGY2OWE0NGZjOWRjNTJjMjRmN2JiMjIwMjAyYzIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xp
bmVMYXlvdXRDb250ZXh0LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKQogCisjaW5jbHVkZSAiSW5saW5lTGluZUJyZWFrZXIuaCIKICNp
bmNsdWRlICJJbmxpbmVMaW5lQnVpbGRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
OSwxMyArNTAsNiBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBMaW5lQ29udGVudCBsYXlvdXRMaW5l
KExpbmVCdWlsZGVyJiwgdW5zaWduZWQgbGVhZGluZ0lubGluZUl0ZW1JbmRleCwgT3B0aW9uYWw8
UGFydGlhbENvbnRlbnQ+IGxlYWRpbmdQYXJ0aWFsQ29udGVudCk7CiAKLSAgICBzdHJ1Y3QgUnVu
IHsKLSAgICAgICAgY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbTsKLSAgICAgICAgTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGg7Ci0gICAgfTsKLQotICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8
UnVuLCAzMD47Ci0KIHByaXZhdGU6CiAgICAgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQm
IGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDsgfQogICAgIGVudW0gY2xhc3MgSXNFbmRPZkxpbmUgeyBObywgWWVzIH07CkBAIC02NCwy
NiArNTgsMTAgQEAgcHJpdmF0ZToKICAgICBMaW5lQ29udGVudCBjbG9zZShMaW5lQnVpbGRlciYs
IHVuc2lnbmVkIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgpOwogICAgIGJvb2wgc2hvdWxkUHJvY2Vz
c1VuY29tbWl0dGVkQ29udGVudChjb25zdCBJbmxpbmVJdGVtJikgY29uc3Q7CiAgICAgSXNFbmRP
ZkxpbmUgcHJvY2Vzc1VuY29tbWl0dGVkQ29udGVudChMaW5lQnVpbGRlciYpOwotICAgIAotICAg
IHN0cnVjdCBVbmNvbW1pdHRlZENvbnRlbnQgewotICAgICAgICB2b2lkIGFkZChjb25zdCBJbmxp
bmVJdGVtJiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwotICAgICAgICB2b2lkIHJlc2V0KCk7
Ci0gICAgICAgIHZvaWQgdHJpbSh1bnNpZ25lZCBuZXdTaXplKTsKLQotICAgICAgICBSdW5MaXN0
JiBydW5zKCkgeyByZXR1cm4gbV91bmNvbW1pdHRlZFJ1bnM7IH0KLSAgICAgICAgY29uc3QgUnVu
TGlzdCYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1fdW5jb21taXR0ZWRSdW5zOyB9Ci0gICAgICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5jb21taXR0ZWRSdW5zLmlzRW1wdHko
KTsgfQotICAgICAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV91bmNvbW1pdHRl
ZFJ1bnMuc2l6ZSgpOyB9Ci0gICAgICAgIExheW91dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX3dpZHRoOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBSdW5MaXN0IG1fdW5jb21taXR0
ZWRSdW5zOwotICAgICAgICBMYXlvdXRVbml0IG1fd2lkdGg7Ci0gICAgfTsKIAogICAgIGNvbnN0
IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0OwogICAg
IGNvbnN0IElubGluZUl0ZW1zJiBtX2lubGluZUl0ZW1zOwotICAgIFVuY29tbWl0dGVkQ29udGVu
dCBtX3VuY29tbWl0dGVkQ29udGVudDsKKyAgICBMaW5lQnJlYWtlcjo6Q29udGVudCBtX3VuY29t
bWl0dGVkQ29udGVudDsKICAgICB1bnNpZ25lZCBtX2NvbW1pdHRlZElubGluZUl0ZW1Db3VudCB7
IDAgfTsKICAgICBWZWN0b3I8V2Vha1B0cjxJbmxpbmVJdGVtPj4gbV9mbG9hdHM7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBtX2xlYWRpbmdQYXJ0aWFsVGV4dEl0ZW07Cg==
</data>
<flag name="review"
          id="400274"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>