<?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>230092</bug_id>
          
          <creation_ts>2021-09-09 04:41:48 -0700</creation_ts>
          <short_desc>Add cache to InlineContent for O(1) inline box access</short_desc>
          <delta_ts>2021-09-09 17:40:04 -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>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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>dpino</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>1791856</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-09 04:41:48 -0700</bug_when>
    <thetext>Constant time access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791861</commentid>
    <comment_count>1</comment_count>
      <attachid>437735</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-09 05:16:30 -0700</bug_when>
    <thetext>Created attachment 437735
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791878</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-09 06:59:48 -0700</bug_when>
    <thetext>Committed r282211 (241498@main): &lt;https://commits.webkit.org/241498@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437735.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791879</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-09 07:00:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/82922939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792186</commentid>
    <comment_count>4</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2021-09-09 17:40:04 -0700</bug_when>
    <thetext>This patch broke compilation in Ubuntu LTS and Debian bots https://build.webkit.org/#/builders/46/builds/6471

Fixed in https://trac.webkit.org/changeset/282253/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437735</attachid>
            <date>2021-09-09 05:16:30 -0700</date>
            <delta_ts>2021-09-09 06:59:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>layoutbox-run-map.patch</filename>
            <type>text/plain</type>
            <size>16145</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYmYzOGNhZDI3ZDEuLjkyMTY1Yzg0YzhmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU0IEBACisyMDIxLTA5LTA5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgY2FjaGUgdG8gSW5saW5lQ29udGVudCBmb3IgTygxKSBpbmxpbmUg
Ym94IGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMwMDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGxhenkgY2FjaGVzIGZvciBnZXR0aW5nIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgcnVu
IGFuZCBhbGwgbm9uLXJvb3QgaW5saW5lIGJveGVzIGZvciBhIGxheW91dCBib3guCisKKyAgICAg
ICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50Ojpp
bmRleEZvclJ1biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
SW5saW5lQ29udGVudDo6Zmlyc3RSdW5Gb3JMYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRlbnQ6OmZpcnN0UnVuSW5kZXhGb3JM
YXlvdXRCb3ggY29uc3QpOgorCisgICAgICAgIEZvciBzbWFsbCBydW4gdmVjdG9ycyAoPDE2KSBq
dXN0IHNlYXJjaCBkaXJlY3RseS4KKworICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OklubGluZUNvbnRlbnQ6Om5vblJvb3RJbmxpbmVCb3hJbmRleGVzRm9yTGF5b3V0Qm94IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50
OjpyZWxlYXNlQ2FjaGVzKToKKworICAgICAgICBNZW1vcnkgY2xlYW51cCBzdXBwb3J0LgorCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6SW5saW5lQ29udGVudDo6c2hyaW5r
VG9GaXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OklubGluZUNvbnRl
bnQ6Oml0ZXJhdG9yRm9yUnVuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpJbmxpbmVDb250ZW50OjppdGVyYXRvckZvclRleHRSdW4gY29uc3Qp
OiBEZWxldGVkLgorCisgICAgICAgIENsZWFudXAgdGhlIGludGVyZmFjZSBieSByZW1vdmluZyBp
dGVyYXRvciBkZXBlbmRlbmN5IChpdGVyYXRvciBkZXBlbmRzIG9uIElubGluZUNvbnRlbnQsIG5v
dCBvdGhlciB3YXkgcm91bmQpLgorCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OklubGluZUNvbnRlbnQ6OnRyYXZlcnNlTm9uUm9vdElubGluZUJveGVzKToKKwor
ICAgICAgICBUcmF2ZXJzYWwgaGVscGVyLgorCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6SW5saW5lQ29udGVudDo6c2hyaW5rVG9GaXQpOiBEZWxldGVkLgorICAgICAgICAq
IGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnRleHRSdW5zRm9y
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0
OjpydW5Gb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVMYXlvdXQ6OmZpcnN0SW5saW5lQm94UmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6dmlzdWFsT3ZlcmZsb3dCb3VuZGluZ0JveFJl
Y3RGb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVM
YXlvdXQ6OmNvbGxlY3RJbmxpbmVCb3hSZWN0cyBjb25zdCk6CisKKyAgICAgICAgVXNlIHRoZSBu
ZXcgY2FjaGUtYmFja2VkIGludGVyZmFjZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpMaW5lTGF5b3V0OjpyZWxlYXNlQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpwYWludFRleHRSdW5Vc2luZ1BoeXNpY2Fs
Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVM
YXlvdXQ6OnJlbGVhc2VJbmxpbmVJdGVtQ2FjaGUpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoKKyAgICAgICAgKiBs
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6dGV4dFJ1bkZvcik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6cnVuRm9yKToKKyAgICAgICAgKiBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oOgorCiAyMDIxLTA5LTA5ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5kZXJJbmxpbmUg
b2Zmc2V0VG9wL0xlZnQgc2hvdWxkIG5vdCBzd2l0Y2ggdG8gbGVnYWN5IGxheW91dApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
SW5saW5lQ29udGVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcAppbmRleCAzMzM1OTc0NjUxNDcuLjg5OTBi
ZGEyZTFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKQEAgLTc4
LDE1ICs3OCw4NiBAQCBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIElubGluZUNvbnRlbnQ6OmNvbnRh
aW5pbmdCbG9jaygpIGNvbnN0CiAgICAgcmV0dXJuIG1fbGluZUxheW91dC0+ZmxvdygpOwogfQog
Ci1SdW5JdGVyYXRvciBJbmxpbmVDb250ZW50OjppdGVyYXRvckZvclJ1bihjb25zdCBSdW4mIHJ1
bikgY29uc3QKK3NpemVfdCBJbmxpbmVDb250ZW50OjppbmRleEZvclJ1bihjb25zdCBSdW4mIHJ1
bikgY29uc3QKIHsKLSAgICByZXR1cm4geyBSdW5JdGVyYXRvck1vZGVyblBhdGggeyAqdGhpcywg
c3RhdGljX2Nhc3Q8c2l6ZV90PigmcnVuIC0gcnVucy5iZWdpbigpKSB9IH07CisgICAgYXV0byBp
bmRleCA9IHN0YXRpY19jYXN0PHNpemVfdD4oJnJ1biAtIHJ1bnMuYmVnaW4oKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoaW5kZXggPCBydW5zLnNpemUoKSk7CisgICAgcmV0dXJuIGluZGV4OwogfQog
Ci1UZXh0UnVuSXRlcmF0b3IgSW5saW5lQ29udGVudDo6aXRlcmF0b3JGb3JUZXh0UnVuKGNvbnN0
IFJ1biYgcnVuKSBjb25zdAorY29uc3QgUnVuKiBJbmxpbmVDb250ZW50OjpmaXJzdFJ1bkZvckxh
eW91dEJveChjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94KSBjb25zdAogewotICAgIEFTU0VS
VChydW4udGV4dCgpKTsKLSAgICByZXR1cm4geyBSdW5JdGVyYXRvck1vZGVyblBhdGggeyAqdGhp
cywgc3RhdGljX2Nhc3Q8c2l6ZV90PigmcnVuIC0gcnVucy5iZWdpbigpKSB9IH07CisgICAgYXV0
byBpbmRleCA9IGZpcnN0UnVuSW5kZXhGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKKyAgICByZXR1
cm4gaW5kZXggPyAmcnVuc1sqaW5kZXhdIDogbnVsbHB0cjsKK30KKworc3RkOjpvcHRpb25hbDxz
aXplX3Q+IElubGluZUNvbnRlbnQ6OmZpcnN0UnVuSW5kZXhGb3JMYXlvdXRCb3goY29uc3QgTGF5
b3V0OjpCb3gmIGxheW91dEJveCkgY29uc3QKK3sKKyAgICBjb25zdGV4cHIgYXV0byBjYWNoZVRo
cmVzaG9sZCA9IDE2OworCisgICAgaWYgKHJ1bnMuc2l6ZSgpIDwgY2FjaGVUaHJlc2hvbGQpIHsK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBydW5zLnNpemUoKTsgKytpKSB7CisgICAg
ICAgICAgICBhdXRvJiBydW4gPSBydW5zW2ldOworICAgICAgICAgICAgaWYgKCZydW4ubGF5b3V0
Qm94KCkgPT0gJmxheW91dEJveCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAgICAKKyAgICBpZiAoIW1fZmlyc3RSdW5J
bmRleENhY2hlKSB7CisgICAgICAgIG1fZmlyc3RSdW5JbmRleENhY2hlID0gbWFrZVVuaXF1ZTxG
aXJzdFJ1bkluZGV4Q2FjaGU+KCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcnVu
cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byYgcnVuID0gcnVuc1tpXTsKKyAgICAg
ICAgICAgIGlmIChydW4uaXNSb290SW5saW5lQm94KCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICBtX2ZpcnN0UnVuSW5kZXhDYWNoZS0+YWRkKHJ1bi5sYXlvdXRCb3go
KSwgaSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGl0ID0gbV9maXJzdFJ1bkluZGV4
Q2FjaGUtPmZpbmQobGF5b3V0Qm94KTsKKyAgICBpZiAoaXQgPT0gbV9maXJzdFJ1bkluZGV4Q2Fj
aGUtPmVuZCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIGl0LT52YWx1ZTsK
K30KKworY29uc3QgVmVjdG9yPHNpemVfdD4mIElubGluZUNvbnRlbnQ6Om5vblJvb3RJbmxpbmVC
b3hJbmRleGVzRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gpIGNvbnN0
Cit7CisgICAgQVNTRVJUKGxheW91dEJveC5pc0NvbnRhaW5lckJveCgpKTsKKworICAgIGlmICgh
bV9pbmxpbmVCb3hJbmRleENhY2hlKSB7CisgICAgICAgIG1faW5saW5lQm94SW5kZXhDYWNoZSA9
IG1ha2VVbmlxdWU8SW5saW5lQm94SW5kZXhDYWNoZT4oKTsKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBydW5zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBydW4gPSBy
dW5zW2ldOworICAgICAgICAgICAgaWYgKCFydW4uaXNOb25Sb290SW5saW5lQm94KCkpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBtX2lubGluZUJveEluZGV4Q2FjaGUt
PmVuc3VyZShydW4ubGF5b3V0Qm94KCksIFsmXSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZl
Y3RvcjxzaXplX3Q+IHsgfTsKKyAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQo
aSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvIGVudHJ5IDogKm1faW5saW5lQm94SW5k
ZXhDYWNoZSkKKyAgICAgICAgICAgIGVudHJ5LnZhbHVlLnNocmlua1RvRml0KCk7CisgICAgfQor
CisgICAgYXV0byBpdCA9IG1faW5saW5lQm94SW5kZXhDYWNoZS0+ZmluZChsYXlvdXRCb3gpOwor
ICAgIGlmIChpdCA9PSBtX2lubGluZUJveEluZGV4Q2FjaGUtPmVuZCgpKSB7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8c2l6ZV90Pj4gZW1wdHlWZWN0b3I7CisgICAgICAg
IHJldHVybiBlbXB0eVZlY3Rvci5nZXQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gaXQtPnZhbHVl
OworfQorCit2b2lkIElubGluZUNvbnRlbnQ6OnJlbGVhc2VDYWNoZXMoKQoreworICAgIG1fZmly
c3RSdW5JbmRleENhY2hlID0geyB9OworICAgIG1faW5saW5lQm94SW5kZXhDYWNoZSA9IHsgfTsK
K30KKwordm9pZCBJbmxpbmVDb250ZW50OjpzaHJpbmtUb0ZpdCgpCit7CisgICAgcnVucy5zaHJp
bmtUb0ZpdCgpOworICAgIGxpbmVzLnNocmlua1RvRml0KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbklubGluZUNvbnRlbnQuaAppbmRleCBhMjRkZTc0YmUxNjYuLjA4YTkyMzNiMDQwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uSW5saW5lQ29udGVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZS5oIgogI2luY2x1ZGUgPHd0Zi9JdGVyYXRv
clJhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTQ1LDggKzQ2LDYgQEAgY2xhc3MgQm94OwogbmFtZXNwYWNlIExheW91dEludGVncmF0aW9u
IHsKIAogY2xhc3MgTGluZUxheW91dDsKLWNsYXNzIFJ1bkl0ZXJhdG9yOwotY2xhc3MgVGV4dFJ1
bkl0ZXJhdG9yOwogCiB1c2luZyBSdW4gPSBMYXlvdXQ6OlJ1bjsKIApAQCAtNzIsMTkgKzcxLDMy
IEBAIHN0cnVjdCBJbmxpbmVDb250ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8SW5saW5lQ29udGVu
dD4gewogICAgIGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXJGb3JMYXlvdXRCb3goY29uc3Qg
TGF5b3V0OjpCb3gmKSBjb25zdDsKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGNvbnRhaW5p
bmdCbG9jaygpIGNvbnN0OwogCi0gICAgUnVuSXRlcmF0b3IgaXRlcmF0b3JGb3JSdW4oY29uc3Qg
UnVuJikgY29uc3Q7Ci0gICAgVGV4dFJ1bkl0ZXJhdG9yIGl0ZXJhdG9yRm9yVGV4dFJ1bihjb25z
dCBSdW4mKSBjb25zdDsKKyAgICBzaXplX3QgaW5kZXhGb3JSdW4oY29uc3QgUnVuJikgY29uc3Q7
CisKKyAgICBjb25zdCBSdW4qIGZpcnN0UnVuRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb24+IHZvaWQgdHJhdmVyc2VO
b25Sb290SW5saW5lQm94ZXMoY29uc3QgTGF5b3V0OjpCb3gmLCBGdW5jdGlvbiYmKTsKKworICAg
IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdFJ1bkluZGV4Rm9yTGF5b3V0Qm94KGNvbnN0IExh
eW91dDo6Qm94JikgY29uc3Q7CisgICAgY29uc3QgVmVjdG9yPHNpemVfdD4mIG5vblJvb3RJbmxp
bmVCb3hJbmRleGVzRm9yTGF5b3V0Qm94KGNvbnN0IExheW91dDo6Qm94JikgY29uc3Q7CisKKyAg
ICB2b2lkIHJlbGVhc2VDYWNoZXMoKTsKIAogcHJpdmF0ZToKICAgICBJbmxpbmVDb250ZW50KGNv
bnN0IExpbmVMYXlvdXQmKTsKIAogICAgIFdlYWtQdHI8Y29uc3QgTGluZUxheW91dD4gbV9saW5l
TGF5b3V0OworCisgICAgdXNpbmcgRmlyc3RSdW5JbmRleENhY2hlID0gV2Vha0hhc2hNYXA8TGF5
b3V0OjpCb3gsIHNpemVfdD47CisgICAgbXV0YWJsZSBzdGQ6OnVuaXF1ZV9wdHI8Rmlyc3RSdW5J
bmRleENhY2hlPiBtX2ZpcnN0UnVuSW5kZXhDYWNoZTsKKworICAgIHVzaW5nIElubGluZUJveElu
ZGV4Q2FjaGUgPSBXZWFrSGFzaE1hcDxMYXlvdXQ6OkJveCwgVmVjdG9yPHNpemVfdD4+OworICAg
IG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPElubGluZUJveEluZGV4Q2FjaGU+IG1faW5saW5lQm94
SW5kZXhDYWNoZTsKIH07CiAKLWlubGluZSB2b2lkIElubGluZUNvbnRlbnQ6OnNocmlua1RvRml0
KCkKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uPiB2b2lkIElubGluZUNvbnRlbnQ6OnRyYXZl
cnNlTm9uUm9vdElubGluZUJveGVzKGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIEZ1bmN0
aW9uJiYgZnVuY3Rpb24pCiB7Ci0gICAgcnVucy5zaHJpbmtUb0ZpdCgpOwotICAgIGxpbmVzLnNo
cmlua1RvRml0KCk7CisgICAgZm9yIChhdXRvIGluZGV4IDogbm9uUm9vdElubGluZUJveEluZGV4
ZXNGb3JMYXlvdXRCb3gobGF5b3V0Qm94KSkKKyAgICAgICAgZnVuY3Rpb24ocnVuc1tpbmRleF0p
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IGFlMGIxN2Q5
MzkyNi4uMjQ4ODdkNjZhMDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApA
QCAtMzY0LDM1ICszNjQsMjYgQEAgVGV4dFJ1bkl0ZXJhdG9yIExpbmVMYXlvdXQ6OnRleHRSdW5z
Rm9yKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlclRleHQpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lu
bGluZUNvbnRlbnQpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgYXV0byYgbGF5b3V0Qm94ID0g
bV9ib3hUcmVlLmxheW91dEJveEZvclJlbmRlcmVyKHJlbmRlclRleHQpOwotCi0gICAgYXV0byBm
aXJzdEluZGV4ID0gWyZdKCkgLT4gc3RkOjpvcHRpb25hbDxzaXplX3Q+IHsKLSAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX2lubGluZUNvbnRlbnQtPnJ1bnMuc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgICAgIGlmICgmbV9pbmxpbmVDb250ZW50LT5ydW5zW2ldLmxheW91dEJveCgpID09
ICZsYXlvdXRCb3gpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICB9KCk7CiAKKyAgICBhdXRvJiBsYXlvdXRCb3ggPSBtX2JveFRy
ZWUubGF5b3V0Qm94Rm9yUmVuZGVyZXIocmVuZGVyVGV4dCk7CisgICAgYXV0byBmaXJzdEluZGV4
ID0gbV9pbmxpbmVDb250ZW50LT5maXJzdFJ1bkluZGV4Rm9yTGF5b3V0Qm94KGxheW91dEJveCk7
CiAgICAgaWYgKCFmaXJzdEluZGV4KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJu
IHsgUnVuSXRlcmF0b3JNb2Rlcm5QYXRoKCptX2lubGluZUNvbnRlbnQsICpmaXJzdEluZGV4KSB9
OworICAgIHJldHVybiBMYXlvdXRJbnRlZ3JhdGlvbjo6dGV4dFJ1bkZvcigqbV9pbmxpbmVDb250
ZW50LCAqZmlyc3RJbmRleCk7CiB9CiAKIFJ1bkl0ZXJhdG9yIExpbmVMYXlvdXQ6OnJ1bkZvcihj
b25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJFbGVtZW50KSBjb25zdAogewogICAgIGlmICghbV9p
bmxpbmVDb250ZW50KQogICAgICAgICByZXR1cm4geyB9OwotICAgIGF1dG8mIGxheW91dEJveCA9
IG1fYm94VHJlZS5sYXlvdXRCb3hGb3JSZW5kZXJlcihyZW5kZXJFbGVtZW50KTsKIAotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pbmxpbmVDb250ZW50LT5ydW5zLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIGF1dG8mIHJ1biA9ICBtX2lubGluZUNvbnRlbnQtPnJ1bnNbaV07Ci0gICAgICAg
IGlmICgmcnVuLmxheW91dEJveCgpID09ICZsYXlvdXRCb3gpCi0gICAgICAgICAgICByZXR1cm4g
eyBSdW5JdGVyYXRvck1vZGVyblBhdGgoKm1faW5saW5lQ29udGVudCwgaSkgfTsKLSAgICB9Cisg
ICAgYXV0byYgbGF5b3V0Qm94ID0gbV9ib3hUcmVlLmxheW91dEJveEZvclJlbmRlcmVyKHJlbmRl
ckVsZW1lbnQpOworICAgIGF1dG8gZmlyc3RJbmRleCA9IG1faW5saW5lQ29udGVudC0+Zmlyc3RS
dW5JbmRleEZvckxheW91dEJveChsYXlvdXRCb3gpOworICAgIGlmICghZmlyc3RJbmRleCkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIExheW91dElu
dGVncmF0aW9uOjpydW5Gb3IoKm1faW5saW5lQ29udGVudCwgKmZpcnN0SW5kZXgpOwogfQogCiBM
aW5lSXRlcmF0b3IgTGluZUxheW91dDo6Zmlyc3RMaW5lKCkgY29uc3QKQEAgLTQxNCwxMCArNDA1
LDEwIEBAIExpbmVJdGVyYXRvciBMaW5lTGF5b3V0OjpsYXN0TGluZSgpIGNvbnN0CiBMYXlvdXRS
ZWN0IExpbmVMYXlvdXQ6OmZpcnN0SW5saW5lQm94UmVjdChjb25zdCBSZW5kZXJJbmxpbmUmIHJl
bmRlcklubGluZSkgY29uc3QKIHsKICAgICBhdXRvJiBsYXlvdXRCb3ggPSBtX2JveFRyZWUubGF5
b3V0Qm94Rm9yUmVuZGVyZXIocmVuZGVySW5saW5lKTsKLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1f
aW5saW5lQ29udGVudC0+cnVucykgewotICAgICAgICBpZiAoJnJ1bi5sYXlvdXRCb3goKSA9PSAm
bGF5b3V0Qm94KQotICAgICAgICAgICAgcmV0dXJuIExheW91dDo6dG9MYXlvdXRSZWN0KHJ1bi5s
b2dpY2FsUmVjdCgpKTsKLSAgICB9CisKKyAgICBpZiAoYXV0byogcnVuID0gbV9pbmxpbmVDb250
ZW50LT5maXJzdFJ1bkZvckxheW91dEJveChsYXlvdXRCb3gpKQorICAgICAgICByZXR1cm4gTGF5
b3V0Ojp0b0xheW91dFJlY3QocnVuLT5sb2dpY2FsUmVjdCgpKTsKKwogICAgIHJldHVybiB7IH07
CiB9CiAKQEAgLTQzNSwxNCArNDI2LDEyIEBAIExheW91dFJlY3QgTGluZUxheW91dDo6ZW5jbG9z
aW5nQm9yZGVyQm94UmVjdEZvcihjb25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcklubGluCiAKIExh
eW91dFJlY3QgTGluZUxheW91dDo6dmlzdWFsT3ZlcmZsb3dCb3VuZGluZ0JveFJlY3RGb3IoY29u
c3QgUmVuZGVySW5saW5lJiByZW5kZXJJbmxpbmUpIGNvbnN0CiB7Ci0gICAgTGF5b3V0UmVjdCBy
ZXN1bHQ7Ci0KICAgICBhdXRvJiBsYXlvdXRCb3ggPSBtX2JveFRyZWUubGF5b3V0Qm94Rm9yUmVu
ZGVyZXIocmVuZGVySW5saW5lKTsKLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1faW5saW5lQ29udGVu
dC0+cnVucykgewotICAgICAgICBpZiAoJnJ1bi5sYXlvdXRCb3goKSAhPSAmbGF5b3V0Qm94KQot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHJlc3VsdC51bml0ZShMYXlvdXQ6OnRvTGF5
b3V0UmVjdChydW4uaW5rT3ZlcmZsb3coKSkpOwotICAgIH0KKworICAgIExheW91dFJlY3QgcmVz
dWx0OworICAgIG1faW5saW5lQ29udGVudC0+dHJhdmVyc2VOb25Sb290SW5saW5lQm94ZXMobGF5
b3V0Qm94LCBbJl0oYXV0byYgaW5saW5lQm94KSB7CisgICAgICAgIHJlc3VsdC51bml0ZShMYXlv
dXQ6OnRvTGF5b3V0UmVjdChpbmxpbmVCb3guaW5rT3ZlcmZsb3coKSkpOworICAgIH0pOwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTQ1MiwxNCArNDQxLDEyIEBAIFZlY3RvcjxGbG9hdFJl
Y3Q+IExpbmVMYXlvdXQ6OmNvbGxlY3RJbmxpbmVCb3hSZWN0cyhjb25zdCBSZW5kZXJJbmxpbmUm
IHJlbmRlckluCiAgICAgaWYgKCFtX2lubGluZUNvbnRlbnQpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBWZWN0b3I8RmxvYXRSZWN0PiByZXN1bHQ7Ci0KICAgICBhdXRvJiBsYXlvdXRCb3gg
PSBtX2JveFRyZWUubGF5b3V0Qm94Rm9yUmVuZGVyZXIocmVuZGVySW5saW5lKTsKLSAgICBmb3Ig
KGF1dG8mIHJ1biA6IG1faW5saW5lQ29udGVudC0+cnVucykgewotICAgICAgICBpZiAoJnJ1bi5s
YXlvdXRCb3goKSAhPSAmbGF5b3V0Qm94KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IHJlc3VsdC5hcHBlbmQocnVuLmxvZ2ljYWxSZWN0KCkpOwotICAgIH0KKworICAgIFZlY3RvcjxG
bG9hdFJlY3Q+IHJlc3VsdDsKKyAgICBtX2lubGluZUNvbnRlbnQtPnRyYXZlcnNlTm9uUm9vdElu
bGluZUJveGVzKGxheW91dEJveCwgWyZdKGF1dG8mIGlubGluZUJveCkgeworICAgICAgICByZXN1
bHQuYXBwZW5kKGlubGluZUJveC5sb2dpY2FsUmVjdCgpKTsKKyAgICB9KTsKIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CkBAIC01NTEsMTMgKzUzOCwxNSBAQCB2b2lkIExpbmVMYXlvdXQ6OnJlbGVh
c2VDYWNoZXMoUmVuZGVyVmlldyYgdmlldykKIAogICAgIGZvciAoYXV0byYgcmVuZGVyZXIgOiBk
ZXNjZW5kYW50c09mVHlwZTxSZW5kZXJCbG9ja0Zsb3c+KHZpZXcpKSB7CiAgICAgICAgIGlmIChh
dXRvKiBsaW5lTGF5b3V0ID0gcmVuZGVyZXIubW9kZXJuTGluZUxheW91dCgpKQotICAgICAgICAg
ICAgbGluZUxheW91dC0+cmVsZWFzZUlubGluZUl0ZW1DYWNoZSgpOworICAgICAgICAgICAgbGlu
ZUxheW91dC0+cmVsZWFzZUNhY2hlcygpOwogICAgIH0KIH0KIAotdm9pZCBMaW5lTGF5b3V0Ojpy
ZWxlYXNlSW5saW5lSXRlbUNhY2hlKCkKK3ZvaWQgTGluZUxheW91dDo6cmVsZWFzZUNhY2hlcygp
CiB7CiAgICAgbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5jbGVhcigpOwor
ICAgIGlmIChtX2lubGluZUNvbnRlbnQpCisgICAgICAgIG1faW5saW5lQ29udGVudC0+cmVsZWFz
ZUNhY2hlcygpOwogfQogCiB2b2lkIExpbmVMYXlvdXQ6OnBhaW50VGV4dFJ1blVzaW5nUGh5c2lj
YWxDb29yZGluYXRlcyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0LCBjb25zdCBMaW5lJiBsaW5lLCBjb25zdCBSdW4mIHJ1bikKQEAgLTYzMCw3ICs2
MTksNyBAQCB2b2lkIExpbmVMYXlvdXQ6OnBhaW50VGV4dFJ1blVzaW5nUGh5c2ljYWxDb29yZGlu
YXRlcyhQYWludEluZm8mIHBhaW50SW5mbywgY29ucwogICAgICAgICBpZiAoIXN0eWxlLnRleHRE
ZWNvcmF0aW9uc0luRWZmZWN0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBhdXRvJiB0ZXh0
UmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJUZXh0PihtX2JveFRyZWUucmVuZGVyZXJGb3JMYXlv
dXRCb3gocnVuLmxheW91dEJveCgpKSk7CiAgICAgICAgICAgICBhdXRvIGRlY29yYXRpb25QYWlu
dGVyID0gVGV4dERlY29yYXRpb25QYWludGVyIHsgcGFpbnRDb250ZXh0LCBzdHlsZS50ZXh0RGVj
b3JhdGlvbnNJbkVmZmVjdCgpLCB0ZXh0UmVuZGVyZXIsIGZhbHNlLCBmb250Q2FzY2FkZSB9Owot
ICAgICAgICAgICAgZGVjb3JhdGlvblBhaW50ZXIuc2V0VGV4dFJ1bkl0ZXJhdG9yKG1faW5saW5l
Q29udGVudC0+aXRlcmF0b3JGb3JUZXh0UnVuKHJ1bikpOworICAgICAgICAgICAgZGVjb3JhdGlv
blBhaW50ZXIuc2V0VGV4dFJ1bkl0ZXJhdG9yKHRleHRSdW5Gb3IoKm1faW5saW5lQ29udGVudCwg
cnVuKSk7CiAgICAgICAgICAgICBkZWNvcmF0aW9uUGFpbnRlci5zZXRXaWR0aChydW5SZWN0Lndp
ZHRoKCkpOwogICAgICAgICAgICAgZGVjb3JhdGlvblBhaW50ZXIucGFpbnRUZXh0RGVjb3JhdGlv
bih0ZXh0UnVuLCB0ZXh0T3JpZ2luLCBydW5SZWN0LmxvY2F0aW9uKCkgKyBwaHlzaWNhbFBhaW50
T2Zmc2V0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCmluZGV4IDQ5
ZGU2ZDM4M2U4MC4uMmRhODU0Y2ZkNzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5o
CkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IExheW91dDo6Q29udGFp
bmVyQm94JiByb290TGF5b3V0Qm94KCkgY29uc3Q7CiAgICAgTGF5b3V0OjpDb250YWluZXJCb3gm
IHJvb3RMYXlvdXRCb3goKTsKLSAgICB2b2lkIHJlbGVhc2VJbmxpbmVJdGVtQ2FjaGUoKTsKKyAg
ICB2b2lkIHJlbGVhc2VDYWNoZXMoKTsKIAogICAgIEJveFRyZWUgbV9ib3hUcmVlOwogICAgIExh
eW91dDo6TGF5b3V0U3RhdGUgbV9sYXlvdXRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0
ZXJhdG9yLmNwcAppbmRleCA3NmIyMjQ4MTU5M2UuLmM3OGQ3N2M3YWJhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRl
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcApAQCAtMTk1LDYgKzE5NSwxNyBAQCBUZXh0UnVuSXRl
cmF0b3IgdGV4dFJ1bkZvcihjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBsZWdhY3lJbmxpbmVU
ZXh0Qm94KQogICAgIHJldHVybiB7IFJ1bkl0ZXJhdG9yTGVnYWN5UGF0aCB7IGxlZ2FjeUlubGlu
ZVRleHRCb3ggfSB9OwogfQogCitUZXh0UnVuSXRlcmF0b3IgdGV4dFJ1bkZvcihjb25zdCBJbmxp
bmVDb250ZW50JiBjb250ZW50LCBjb25zdCBSdW4mIHJ1bikKK3sKKyAgICByZXR1cm4gdGV4dFJ1
bkZvcihjb250ZW50LCBjb250ZW50LmluZGV4Rm9yUnVuKHJ1bikpOworfQorCitUZXh0UnVuSXRl
cmF0b3IgdGV4dFJ1bkZvcihjb25zdCBJbmxpbmVDb250ZW50JiBjb250ZW50LCBzaXplX3QgcnVu
SW5kZXgpCit7CisgICAgQVNTRVJUKGNvbnRlbnQucnVuc1tydW5JbmRleF0udGV4dCgpKTsKKyAg
ICByZXR1cm4geyBSdW5JdGVyYXRvck1vZGVyblBhdGggeyBjb250ZW50LCBydW5JbmRleCB9IH07
Cit9CisKIFRleHRSdW5SYW5nZSB0ZXh0UnVuc0Zvcihjb25zdCBSZW5kZXJUZXh0JiB0ZXh0KQog
ewogICAgIHJldHVybiB7IGZpcnN0VGV4dFJ1bkZvcih0ZXh0KSB9OwpAQCAtMjE4LDYgKzIyOSwx
MSBAQCBSdW5JdGVyYXRvciBydW5Gb3IoY29uc3QgUmVuZGVyQm94JiByZW5kZXJlcikKICAgICBy
ZXR1cm4geyBSdW5JdGVyYXRvckxlZ2FjeVBhdGgocmVuZGVyZXIuaW5saW5lQm94V3JhcHBlcigp
KSB9OwogfQogCitSdW5JdGVyYXRvciBydW5Gb3IoY29uc3QgSW5saW5lQ29udGVudCYgY29udGVu
dCwgc2l6ZV90IHJ1bkluZGV4KQoreworICAgIHJldHVybiB7IFJ1bkl0ZXJhdG9yTW9kZXJuUGF0
aCB7IGNvbnRlbnQsIHJ1bkluZGV4IH0gfTsKK30KKwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFU
VElOR19DT05URVhUKQogY29uc3QgUnVuSXRlcmF0b3JNb2Rlcm5QYXRoJiBQYXRoUnVuOjptb2Rl
cm5QYXRoKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCmluZGV4IGY0
YTkwNDQ0OTJiZC4uZGQ4NTc3M2M2M2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
LmgKQEAgLTIwMSw5ICsyMDEsMTIgQEAgcHJpdmF0ZToKIFRleHRSdW5JdGVyYXRvciBmaXJzdFRl
eHRSdW5Gb3IoY29uc3QgUmVuZGVyVGV4dCYpOwogVGV4dFJ1bkl0ZXJhdG9yIGZpcnN0VGV4dFJ1
bkluVGV4dE9yZGVyRm9yKGNvbnN0IFJlbmRlclRleHQmKTsKIFRleHRSdW5JdGVyYXRvciB0ZXh0
UnVuRm9yKGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gqKTsKK1RleHRSdW5JdGVyYXRvciB0ZXh0
UnVuRm9yKGNvbnN0IElubGluZUNvbnRlbnQmLCBjb25zdCBSdW4mKTsKK1RleHRSdW5JdGVyYXRv
ciB0ZXh0UnVuRm9yKGNvbnN0IElubGluZUNvbnRlbnQmLCBzaXplX3QgcnVuSW5kZXgpOwogVGV4
dFJ1blJhbmdlIHRleHRSdW5zRm9yKGNvbnN0IFJlbmRlclRleHQmKTsKIFJ1bkl0ZXJhdG9yIHJ1
bkZvcihjb25zdCBSZW5kZXJMaW5lQnJlYWsmKTsKIFJ1bkl0ZXJhdG9yIHJ1bkZvcihjb25zdCBS
ZW5kZXJCb3gmKTsKK1J1bkl0ZXJhdG9yIHJ1bkZvcihjb25zdCBJbmxpbmVDb250ZW50Jiwgc2l6
ZV90IHJ1bkluZGV4KTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>