<?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>217083</bug_id>
          
          <creation_ts>2020-09-29 03:29:23 -0700</creation_ts>
          <short_desc>[LFC][Integration] Generalize run iterator for non-text runs</short_desc>
          <delta_ts>2020-09-29 06:20:18 -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>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</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>1692871</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-09-29 03:29:23 -0700</bug_when>
    <thetext>Add RunIterator base for TextRunIterator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692872</commentid>
    <comment_count>1</comment_count>
      <attachid>409980</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-09-29 03:32:56 -0700</bug_when>
    <thetext>Created attachment 409980
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692898</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-29 06:19:09 -0700</bug_when>
    <thetext>Committed r267734: &lt;https://trac.webkit.org/changeset/267734&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409980.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692899</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-29 06:20:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/69744875&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409980</attachid>
            <date>2020-09-29 03:32:56 -0700</date>
            <delta_ts>2020-09-29 06:19:10 -0700</delta_ts>
            <desc>patch</desc>
            <filename>generalize-runiterator.patch</filename>
            <type>text/plain</type>
            <size>24937</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNDQ4ZjYyNjNlZDUuLmY1NDAzMzg1OWYxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDg4IEBACisyMDIwLTA5LTI5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gR2VuZXJhbGl6ZSBydW4gaXRlcmF0b3Ig
Zm9yIG5vbi10ZXh0IHJ1bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNzA4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBSdW5JdGVyYXRvciBiYXNlIGZvciBUZXh0UnVuSXRlcmF0b3IuCisgICAg
ICAgIEFkZCB0eXBlIHRyYWl0cy4KKyAgICAgICAgTmFtaW5nIGltcHJvdmVtZW50cy4KKworICAg
ICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6dXBz
dHJlYW0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmRvd25zdHJlYW0gY29u
c3QpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dFJ1bik6CisgICAgICAgICogbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6dGV4dFJ1bnNGb3IgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnJ1bkZvciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6ZWxl
bWVudFJ1bkZvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvcjo6UnVuSXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRUZXh0
UnVuSW5WaXN1YWxPcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
UnVuSXRlcmF0b3I6OnRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3I6Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yOjphdEVu
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0
ZXJhdG9yOjpUZXh0UnVuSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OnJ1bkZvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4
dFJ1bkl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRJblZpc3VhbE9yZGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6OnRyYXZlcnNl
TmV4dEluVGV4dE9yZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcjo6YXRFbmQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkVs
ZW1lbnRSdW5JdGVyYXRvcjo6RWxlbWVudFJ1bkl0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpFbGVtZW50UnVuSXRlcmF0b3I6OmF0RW5kIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjplbGVt
ZW50UnVuRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OlJ1bkl0ZXJhdG9yOjpSdW5JdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3I6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yOjpvcGVyYXRvciogY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yOjpvcGVy
YXRvci0+IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0
UnVuSXRlcmF0b3I6OlRleHRSdW5JdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6Om9wZXJhdG9yKiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yOjpv
cGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpU
ZXh0UnVuSXRlcmF0b3I6OmdldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6UnVuOjppc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlJ1bjo6bWluaW11bUNhcmV0T2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpSdW46Om1heGltdW1DYXJldE9mZnNldCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bjo6aXNMYXN0VGV4dFJ1
bk9uTGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4
dFJ1bjo6aXNMYXN0VGV4dFJ1biBjb25zdCk6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcjo6b3BlcmF0b3IgYm9v
bCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
VGV4dFJ1bkl0ZXJhdG9yOjpvcGVyYXRvciE9IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6Om9wZXJhdG9yPT0gY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkVsZW1l
bnRSdW5JdGVyYXRvcjo6RWxlbWVudFJ1bkl0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpFbGVtZW50UnVuSXRlcmF0b3I6Om9wZXJhdG9yIGJv
b2wgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OkVsZW1lbnRSdW5JdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpFbGVtZW50UnVuSXRlcmF0b3I6Om9wZXJhdG9y
LT4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlRleHRSdW46OmlzTGFzdE9uTGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bjo6aXNMYXN0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxl
Z2FjeVBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMZWdhY3lQ
YXRoOjppc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OkxlZ2FjeVBhdGg6Om1pbmltdW1DYXJldE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGVnYWN5UGF0aDo6bWF4aW11bUNhcmV0T2Zmc2V0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMZWdhY3lQYXRoOjppc0xh
c3RUZXh0UnVuT25MaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0
aW9uOjpMZWdhY3lQYXRoOjppc0xhc3RUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpMZWdhY3lQYXRoOjppc0xhc3RPbkxpbmUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxlZ2FjeVBhdGg6Omlz
TGFzdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6TW9kZXJuUGF0aDo6aXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjptaW5pbXVtQ2FyZXRPZmZzZXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Ok1vZGVyblBhdGg6
Om1heGltdW1DYXJldE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6TW9kZXJuUGF0aDo6aXNMYXN0VGV4dFJ1bk9uTGluZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TW9kZXJuUGF0aDo6aXNMYXN0VGV4dFJ1biBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TW9kZXJuUGF0aDo6
aXNMYXN0T25MaW5lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpNb2Rlcm5QYXRoOjppc0xhc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGluZUJyZWFrOjpsaW5lc0JvdW5kaW5nQm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpbmVCcmVhazo6Ym91bmRpbmdCb3hGb3JSZW5kZXJUcmVlRHVtcCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaW5lQnJlYWs6OmFic29sdXRlUmVjdHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjphYnNvbHV0ZVF1YWRzIGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250
YWluc09mZnNldCk6CisKIDIwMjAtMDktMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBNb3ZlIHJ1biBpdGVyYXRvciB0byBM
YXlvdXRJbnRlZ3JhdGlvbiBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IDY5
ZDNjZGZjNzI2ZS4uYTE4OGQwMWVmMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTc0
MiwxNCArNzQyLDE0IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp1cHN0cmVhbShFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
dW5zaWduZWQgdGV4dE9mZnNldCA9IGN1cnJlbnRQb3NpdGlvbi5vZmZzZXRJbkxlYWZOb2RlKCk7
Ci0gICAgICAgICAgICBmb3IgKGF1dG8gcnVuID0gZmlyc3RUZXh0UnVuOyBydW47IHJ1bi50cmF2
ZXJzZU5leHRJblRleHRPcmRlcigpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gcnVuID0gZmly
c3RUZXh0UnVuOyBydW47IHJ1bi50cmF2ZXJzZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKSkgewog
ICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0IDw9IHJ1bi0+bG9jYWxFbmRPZmZzZXQoKSkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA+IHJ1bi0+bG9jYWxTdGFydE9m
ZnNldCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPT0gcnVuLT5sb2NhbEVuZE9mZnNldCgpICsgMSAm
JiBydW4tPmlzTGFzdE9uTGluZSgpICYmICFydW4tPmlzTGFzdCgpKQorICAgICAgICAgICAgICAg
IGlmICh0ZXh0T2Zmc2V0ID09IHJ1bi0+bG9jYWxFbmRPZmZzZXQoKSArIDEgJiYgcnVuLT5pc0xh
c3RUZXh0UnVuT25MaW5lKCkgJiYgIXJ1bi0+aXNMYXN0VGV4dFJ1bigpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgfQogICAgICAgICB9
CkBAIC04NDUsNyArODQ1LDcgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGlu
Z0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIHVuc2lnbmVkIHRleHRPZmZzZXQgPSBjdXJyZW50UG9zaXRpb24ub2Zmc2V0SW5MZWFm
Tm9kZSgpOwotICAgICAgICAgICAgZm9yIChhdXRvIHJ1biA9IGZpcnN0VGV4dFJ1bjsgcnVuOyBy
dW4udHJhdmVyc2VOZXh0SW5UZXh0T3JkZXIoKSkgeworICAgICAgICAgICAgZm9yIChhdXRvIHJ1
biA9IGZpcnN0VGV4dFJ1bjsgcnVuOyBydW4udHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4dE9yZGVy
KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXJ1bi0+bGVuZ3RoKCkgJiYgdGV4dE9mZnNldCA9
PSBydW4tPmxvY2FsU3RhcnRPZmZzZXQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1
cnJlbnRQb3NpdGlvbjsKIApAQCAtODU1LDcgKzg1NSw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpk
b3duc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICAgICBpZiAodGV4dE9mZnNldCA9PSBydW4tPmxvY2FsRW5kT2Zmc2V0KCkgJiYgcnVuLT5pc0xh
c3RPbkxpbmUoKSAmJiAhcnVuLT5pc0xhc3QoKSkKKyAgICAgICAgICAgICAgICBpZiAodGV4dE9m
ZnNldCA9PSBydW4tPmxvY2FsRW5kT2Zmc2V0KCkgJiYgcnVuLT5pc0xhc3RUZXh0UnVuT25MaW5l
KCkgJiYgIXJ1bi0+aXNMYXN0VGV4dFJ1bigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Y3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggODNjYjYzMDFlNDhhLi4yOGVkY2U0ZmJhZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTYzMyw3ICs2MzMs
NyBAQCB2b2lkIFRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dFJ1bigpCiAgICAgICAgIAogICAgICAg
ICAvLyBEZXRlcm1pbmUgd2hhdCB0aGUgbmV4dCB0ZXh0IHJ1biB3aWxsIGJlLCBidXQgZG9uJ3Qg
YWR2YW5jZSB5ZXQKICAgICAgICAgYXV0byBuZXh0VGV4dFJ1biA9IG1fdGV4dFJ1bjsKLSAgICAg
ICAgbmV4dFRleHRSdW4udHJhdmVyc2VOZXh0SW5UZXh0T3JkZXIoKTsKKyAgICAgICAgbmV4dFRl
eHRSdW4udHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4dE9yZGVyKCk7CiAKICAgICAgICAgaWYgKHJ1
blN0YXJ0IDwgcnVuRW5kKSB7CiAgICAgICAgICAgICBhdXRvIGlzTmV3bGluZU9yVGFiID0gWyZd
KFVDaGFyIGNoYXJhY3RlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRl
eCA1NDIxMTg3OTQyYzAuLjNkYTY0MzgyNjJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5jcHAKQEAgLTI5NCw3ICsyOTQsNyBAQCBEaXNwbGF5OjpJbmxpbmVDb250ZW50JiBMaW5l
TGF5b3V0OjplbnN1cmVEaXNwbGF5SW5saW5lQ29udGVudCgpCiAgICAgcmV0dXJuICptX2Rpc3Bs
YXlJbmxpbmVDb250ZW50OwogfQogCi1MYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9y
IExpbmVMYXlvdXQ6OnRleHRSdW5zRm9yKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlclRleHQpIGNv
bnN0CitUZXh0UnVuSXRlcmF0b3IgTGluZUxheW91dDo6dGV4dFJ1bnNGb3IoY29uc3QgUmVuZGVy
VGV4dCYgcmVuZGVyVGV4dCkgY29uc3QKIHsKICAgICBhdXRvKiBpbmxpbmVDb250ZW50ID0gZGlz
cGxheUlubGluZUNvbnRlbnQoKTsKICAgICBpZiAoIWlubGluZUNvbnRlbnQpCkBAIC0zMTksMTIg
KzMxOSwxMiBAQCBMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yIExpbmVMYXlvdXQ6
OnRleHRSdW5zRm9yKGNvbnN0IFJlbmRlclRleHQmIHJlbgogICAgIHJldHVybiB7IExheW91dElu
dGVncmF0aW9uOjpNb2Rlcm5QYXRoKCppbmxpbmVDb250ZW50LCAqZmlyc3RJbmRleCwgbGFzdElu
ZGV4ICsgMSkgfTsKIH0KIAotTGF5b3V0SW50ZWdyYXRpb246OkVsZW1lbnRSdW5JdGVyYXRvciBM
aW5lTGF5b3V0OjplbGVtZW50UnVuRm9yKGNvbnN0IFJlbmRlckxpbmVCcmVhayYgcmVuZGVyTGlu
ZUJyZWFrKSBjb25zdAorUnVuSXRlcmF0b3IgTGluZUxheW91dDo6cnVuRm9yKGNvbnN0IFJlbmRl
ckVsZW1lbnQmIHJlbmRlckVsZW1lbnQpIGNvbnN0CiB7CiAgICAgYXV0byogaW5saW5lQ29udGVu
dCA9IGRpc3BsYXlJbmxpbmVDb250ZW50KCk7CiAgICAgaWYgKCFpbmxpbmVDb250ZW50KQogICAg
ICAgICByZXR1cm4geyB9OwotICAgIGF1dG8qIGxheW91dEJveCA9IG1fYm94VHJlZS5sYXlvdXRC
b3hGb3JSZW5kZXJlcihyZW5kZXJMaW5lQnJlYWspOworICAgIGF1dG8qIGxheW91dEJveCA9IG1f
Ym94VHJlZS5sYXlvdXRCb3hGb3JSZW5kZXJlcihyZW5kZXJFbGVtZW50KTsKICAgICBBU1NFUlQo
bGF5b3V0Qm94KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5saW5lQ29udGVudC0+
cnVucy5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCmluZGV4IGQ0
M2ZkOTM5MTI4ZS4uZGQzMDU4N2IwMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5o
CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhpdFRlc3QoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKTsKIAogICAgIFRl
eHRSdW5JdGVyYXRvciB0ZXh0UnVuc0Zvcihjb25zdCBSZW5kZXJUZXh0JikgY29uc3Q7Ci0gICAg
RWxlbWVudFJ1bkl0ZXJhdG9yIGVsZW1lbnRSdW5Gb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJikg
Y29uc3Q7CisgICAgUnVuSXRlcmF0b3IgcnVuRm9yKGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25z
dDsKIAogICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VDYWNoZXMoUmVuZGVyVmlldyYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25SdW5JdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAKaW5kZXggMjc4MGNmM2RhZGYzLi45OWE2NjE0
NGE2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAKQEAgLTMzLDQ0ICsz
Myw0OSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dEludGVncmF0aW9u
IHsKIAotVGV4dFJ1bkl0ZXJhdG9yOjpUZXh0UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYm
IHBhdGhWYXJpYW50KQotICAgIDogbV90ZXh0UnVuKFdURk1vdmUocGF0aFZhcmlhbnQpKQorUnVu
SXRlcmF0b3I6OlJ1bkl0ZXJhdG9yKFJ1bjo6UGF0aFZhcmlhbnQmJiBwYXRoVmFyaWFudCkKKyAg
ICA6IG1fcnVuKFdURk1vdmUocGF0aFZhcmlhbnQpKQogewogfQogCi1UZXh0UnVuSXRlcmF0b3Im
IFRleHRSdW5JdGVyYXRvcjo6dHJhdmVyc2VOZXh0SW5WaXN1YWxPcmRlcigpCitUZXh0UnVuSXRl
cmF0b3ImIFJ1bkl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRUZXh0UnVuSW5WaXN1YWxPcmRlcigpCiB7
Ci0gICAgV1RGOjpzd2l0Y2hPbihtX3RleHRSdW4ubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0
aCkgeworICAgIFdURjo6c3dpdGNoT24obV9ydW4ubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0
aCkgewogICAgICAgICBwYXRoLnRyYXZlcnNlTmV4dFRleHRSdW5JblZpc3VhbE9yZGVyKCk7CiAg
ICAgfSk7Ci0gICAgcmV0dXJuICp0aGlzOworICAgIHJldHVybiBkb3duY2FzdDxUZXh0UnVuSXRl
cmF0b3I+KCp0aGlzKTsKIH0KIAotVGV4dFJ1bkl0ZXJhdG9yJiBUZXh0UnVuSXRlcmF0b3I6OnRy
YXZlcnNlTmV4dEluVGV4dE9yZGVyKCkKK1RleHRSdW5JdGVyYXRvciYgUnVuSXRlcmF0b3I6OnRy
YXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcigpCiB7Ci0gICAgV1RGOjpzd2l0Y2hPbihtX3Rl
eHRSdW4ubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgeworICAgIFdURjo6c3dpdGNoT24o
bV9ydW4ubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewogICAgICAgICBwYXRoLnRyYXZl
cnNlTmV4dFRleHRSdW5JblRleHRPcmRlcigpOwogICAgIH0pOwotICAgIHJldHVybiAqdGhpczsK
KyAgICByZXR1cm4gZG93bmNhc3Q8VGV4dFJ1bkl0ZXJhdG9yPigqdGhpcyk7CiB9CiAKLWJvb2wg
VGV4dFJ1bkl0ZXJhdG9yOjpvcGVyYXRvcj09KGNvbnN0IFRleHRSdW5JdGVyYXRvciYgb3RoZXIp
IGNvbnN0Citib29sIFJ1bkl0ZXJhdG9yOjpvcGVyYXRvcj09KGNvbnN0IFJ1bkl0ZXJhdG9yJiBv
dGhlcikgY29uc3QKIHsKLSAgICBpZiAobV90ZXh0UnVuLm1fcGF0aFZhcmlhbnQuaW5kZXgoKSAh
PSBvdGhlci5tX3RleHRSdW4ubV9wYXRoVmFyaWFudC5pbmRleCgpKQorICAgIGlmIChtX3J1bi5t
X3BhdGhWYXJpYW50LmluZGV4KCkgIT0gb3RoZXIubV9ydW4ubV9wYXRoVmFyaWFudC5pbmRleCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3Rl
eHRSdW4ubV9wYXRoVmFyaWFudCwgWyZdKGNvbnN0IGF1dG8mIHBhdGgpIHsKLSAgICAgICAgcmV0
dXJuIHBhdGggPT0gV1RGOjpnZXQ8c3RkOjpkZWNheV90PGRlY2x0eXBlKHBhdGgpPj4ob3RoZXIu
bV90ZXh0UnVuLm1fcGF0aFZhcmlhbnQpOworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcnVu
Lm1fcGF0aFZhcmlhbnQsIFsmXShjb25zdCBhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVybiBw
YXRoID09IFdURjo6Z2V0PHN0ZDo6ZGVjYXlfdDxkZWNsdHlwZShwYXRoKT4+KG90aGVyLm1fcnVu
Lm1fcGF0aFZhcmlhbnQpOwogICAgIH0pOwogfQogCi1ib29sIFRleHRSdW5JdGVyYXRvcjo6YXRF
bmQoKSBjb25zdAorYm9vbCBSdW5JdGVyYXRvcjo6YXRFbmQoKSBjb25zdAogewotICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fdGV4dFJ1bi5tX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7
CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9ydW4ubV9wYXRoVmFyaWFudCwgW10oYXV0byYg
cGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5hdEVuZCgpOwogICAgIH0pOwogfQogCitUZXh0
UnVuSXRlcmF0b3I6OlRleHRSdW5JdGVyYXRvcihSdW46OlBhdGhWYXJpYW50JiYgcGF0aFZhcmlh
bnQpCisgICAgOiBSdW5JdGVyYXRvcihXVEZNb3ZlKHBhdGhWYXJpYW50KSkKK3sKK30KKwogc3Rh
dGljIGNvbnN0IFJlbmRlckJsb2NrRmxvdyogbGluZUxheW91dFN5c3RlbUZsb3dGb3JSZW5kZXJl
cihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIC8vIEluIGN1cnJlbnRseSBz
dXBwb3J0ZWQgY2FzZXMgdGhlIHJlbmRlcmVyIGlzIGFsd2F5cyBkaXJlY3QgY2hpbGQgb2YgdGhl
IGZsb3cuCkBAIC0xMTAsMjQgKzExNSwxMiBAQCBUZXh0UnVuUmFuZ2UgdGV4dFJ1bnNGb3IoY29u
c3QgUmVuZGVyVGV4dCYgdGV4dCkKICAgICByZXR1cm4geyBmaXJzdFRleHRSdW5Gb3IodGV4dCkg
fTsKIH0KIAotRWxlbWVudFJ1bkl0ZXJhdG9yOjpFbGVtZW50UnVuSXRlcmF0b3IoUnVuOjpQYXRo
VmFyaWFudCYmIHBhdGhWYXJpYW50KQotICAgIDogbV9ydW4oV1RGTW92ZShwYXRoVmFyaWFudCkp
Ci17Ci19Ci0KLWJvb2wgRWxlbWVudFJ1bkl0ZXJhdG9yOjphdEVuZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFdURjo6c3dpdGNoT24obV9ydW4ubV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkg
ewotICAgICAgICByZXR1cm4gcGF0aC5hdEVuZCgpOwotICAgIH0pOwotfQotCi1FbGVtZW50UnVu
SXRlcmF0b3IgZWxlbWVudFJ1bkZvcihjb25zdCBSZW5kZXJMaW5lQnJlYWsmIHJlbmRlckVsZW1l
bnQpCitSdW5JdGVyYXRvciBydW5Gb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJiByZW5kZXJFbGVt
ZW50KQogewogICAgIGlmIChhdXRvKiBmbG93ID0gbGluZUxheW91dFN5c3RlbUZsb3dGb3JSZW5k
ZXJlcihyZW5kZXJFbGVtZW50KSkgewogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQogICAgICAgICBpZiAoYXV0byogbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0
ID0gZmxvdy0+bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkpCi0gICAgICAgICAg
ICByZXR1cm4gbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LT5lbGVtZW50UnVuRm9y
KHJlbmRlckVsZW1lbnQpOworICAgICAgICAgICAgcmV0dXJuIGxheW91dEZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dC0+cnVuRm9yKHJlbmRlckVsZW1lbnQpOwogI2VuZGlmCiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAppbmRleCA3M2RjYWMyN2RkZWEuLmE4NzE3Y2Ix
OThlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCkBAIC01Myw2ICs1Myw4IEBA
IHB1YmxpYzoKIAogICAgIFJ1bihQYXRoVmFyaWFudCYmKTsKIAorICAgIGJvb2wgaXNUZXh0KCkg
Y29uc3Q7CisKICAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0OwogCiAgICAgZmxvYXQgYmFzZWxp
bmUoKSBjb25zdDsKQEAgLTYzLDggKzY1LDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzTGluZUJy
ZWFrKCkgY29uc3Q7CiAgICAgYm9vbCB1c2VMaW5lQnJlYWtCb3hSZW5kZXJUcmVlRHVtcFF1aXJr
KCkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBtaW5pbXVtQ2FyZXRPZmZzZXQoKSBjb25zdDsKKyAg
ICB1bnNpZ25lZCBtYXhpbXVtQ2FyZXRPZmZzZXQoKSBjb25zdDsKKwogcHJvdGVjdGVkOgotICAg
IGZyaWVuZCBjbGFzcyBFbGVtZW50UnVuSXRlcmF0b3I7CisgICAgZnJpZW5kIGNsYXNzIFJ1bkl0
ZXJhdG9yOwogICAgIGZyaWVuZCBjbGFzcyBUZXh0UnVuSXRlcmF0b3I7CiAKICAgICBQYXRoVmFy
aWFudCBtX3BhdGhWYXJpYW50OwpAQCAtODIsNTAgKzg3LDQ3IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCBsb2NhbEVuZE9mZnNldCgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
OwogCi0gICAgYm9vbCBpc0xhc3RPbkxpbmUoKSBjb25zdDsKLSAgICBib29sIGlzTGFzdCgpIGNv
bnN0OworICAgIGJvb2wgaXNMYXN0VGV4dFJ1bk9uTGluZSgpIGNvbnN0OworICAgIGJvb2wgaXNM
YXN0VGV4dFJ1bigpIGNvbnN0OwogfTsKIAotY2xhc3MgVGV4dFJ1bkl0ZXJhdG9yIHsKK2NsYXNz
IFJ1bkl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBUZXh0UnVuSXRlcmF0b3IoKSA6IG1fdGV4dFJ1
bihMZWdhY3lQYXRoIHsgbnVsbHB0ciwgeyB9IH0pIHsgfTsKLSAgICBUZXh0UnVuSXRlcmF0b3Io
UnVuOjpQYXRoVmFyaWFudCYmKTsKKyAgICBSdW5JdGVyYXRvcigpIDogbV9ydW4oTGVnYWN5UGF0
aCB7IG51bGxwdHIsIHsgfSB9KSB7IH07CisgICAgUnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFu
dCYmKTsKIAotICAgIFRleHRSdW5JdGVyYXRvciYgb3BlcmF0b3IrKygpIHsgcmV0dXJuIHRyYXZl
cnNlTmV4dEluVmlzdWFsT3JkZXIoKTsgfQotICAgIFRleHRSdW5JdGVyYXRvciYgdHJhdmVyc2VO
ZXh0SW5WaXN1YWxPcmRlcigpOwotICAgIFRleHRSdW5JdGVyYXRvciYgdHJhdmVyc2VOZXh0SW5U
ZXh0T3JkZXIoKTsKKyAgICBUZXh0UnVuSXRlcmF0b3ImIHRyYXZlcnNlTmV4dFRleHRSdW5JblZp
c3VhbE9yZGVyKCk7CisgICAgVGV4dFJ1bkl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRUZXh0UnVuSW5U
ZXh0T3JkZXIoKTsKIAogICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biAhYXRFbmQoKTsgfQogCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRleHRSdW5JdGVyYXRv
ciYpIGNvbnN0OwotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUZXh0UnVuSXRlcmF0b3ImIG90
aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBSdW5JdGVyYXRvciYpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBSdW5JdGVyYXRvciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9
CiAKICAgICBib29sIG9wZXJhdG9yPT0oRW5kSXRlcmF0b3IpIGNvbnN0IHsgcmV0dXJuIGF0RW5k
KCk7IH0KICAgICBib29sIG9wZXJhdG9yIT0oRW5kSXRlcmF0b3IpIGNvbnN0IHsgcmV0dXJuICFh
dEVuZCgpOyB9CiAKLSAgICBjb25zdCBUZXh0UnVuJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVy
biBtX3RleHRSdW47IH0KLSAgICBjb25zdCBUZXh0UnVuKiBvcGVyYXRvci0+KCkgY29uc3QgeyBy
ZXR1cm4gJm1fdGV4dFJ1bjsgfQorICAgIGNvbnN0IFJ1biYgb3BlcmF0b3IqKCkgY29uc3QgeyBy
ZXR1cm4gbV9ydW47IH0KKyAgICBjb25zdCBSdW4qIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVy
biAmbV9ydW47IH0KIAogICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBU
ZXh0UnVuIG1fdGV4dFJ1bjsKK3Byb3RlY3RlZDoKKyAgICBSdW4gbV9ydW47CiB9OwogCi1jbGFz
cyBFbGVtZW50UnVuSXRlcmF0b3IgeworY2xhc3MgVGV4dFJ1bkl0ZXJhdG9yIDogcHVibGljIFJ1
bkl0ZXJhdG9yIHsKIHB1YmxpYzoKLSAgICBFbGVtZW50UnVuSXRlcmF0b3IoKSA6IG1fcnVuKExl
Z2FjeVBhdGggeyBudWxscHRyLCB7IH0gfSkgeyB9OwotICAgIEVsZW1lbnRSdW5JdGVyYXRvcihS
dW46OlBhdGhWYXJpYW50JiYpOwotCi0gICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0
IHsgcmV0dXJuICFhdEVuZCgpOyB9CisgICAgVGV4dFJ1bkl0ZXJhdG9yKCkgeyB9CisgICAgVGV4
dFJ1bkl0ZXJhdG9yKFJ1bjo6UGF0aFZhcmlhbnQmJik7CiAKLSAgICBjb25zdCBSdW4mIG9wZXJh
dG9yKigpIGNvbnN0IHsgcmV0dXJuIG1fcnVuOyB9Ci0gICAgY29uc3QgUnVuKiBvcGVyYXRvci0+
KCkgY29uc3QgeyByZXR1cm4gJm1fcnVuOyB9CisgICAgVGV4dFJ1bkl0ZXJhdG9yJiBvcGVyYXRv
cisrKCkgeyByZXR1cm4gdHJhdmVyc2VOZXh0VGV4dFJ1bkluVmlzdWFsT3JkZXIoKTsgfQogCi0g
ICAgYm9vbCBhdEVuZCgpIGNvbnN0OworICAgIGNvbnN0IFRleHRSdW4mIG9wZXJhdG9yKigpIGNv
bnN0IHsgcmV0dXJuIGdldCgpOyB9CisgICAgY29uc3QgVGV4dFJ1biogb3BlcmF0b3ItPigpIGNv
bnN0IHsgcmV0dXJuICZnZXQoKTsgfQogCiBwcml2YXRlOgotICAgIFJ1biBtX3J1bjsKKyAgICBj
b25zdCBUZXh0UnVuJiBnZXQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxUZXh0UnVuPihtX3J1
bik7IH0KIH07CiAKIGNsYXNzIFRleHRSdW5SYW5nZSB7CkBAIC0xNDUsNyArMTQ3LDcgQEAgcHJp
dmF0ZToKIFRleHRSdW5JdGVyYXRvciBmaXJzdFRleHRSdW5Gb3IoY29uc3QgUmVuZGVyVGV4dCYp
OwogVGV4dFJ1bkl0ZXJhdG9yIGZpcnN0VGV4dFJ1bkluVGV4dE9yZGVyRm9yKGNvbnN0IFJlbmRl
clRleHQmKTsKIFRleHRSdW5SYW5nZSB0ZXh0UnVuc0Zvcihjb25zdCBSZW5kZXJUZXh0Jik7Ci1F
bGVtZW50UnVuSXRlcmF0b3IgZWxlbWVudFJ1bkZvcihjb25zdCBSZW5kZXJMaW5lQnJlYWsmKTsK
K1J1bkl0ZXJhdG9yIHJ1bkZvcihjb25zdCBSZW5kZXJMaW5lQnJlYWsmKTsKIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMTU0LDYgKzE1
NiwxMyBAQCBpbmxpbmUgUnVuOjpSdW4oUGF0aFZhcmlhbnQmJiBwYXRoKQogewogfQogCitpbmxp
bmUgYm9vbCBSdW46OmlzVGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
bV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgeworICAgICAgICByZXR1cm4gcGF0aC5pc1Rl
eHQoKTsKKyAgICB9KTsKK30KKwogaW5saW5lIEZsb2F0UmVjdCBSdW46OnJlY3QoKSBjb25zdAog
ewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgp
IHsKQEAgLTIwMyw2ICsyMTIsMjAgQEAgaW5saW5lIGJvb2wgUnVuOjp1c2VMaW5lQnJlYWtCb3hS
ZW5kZXJUcmVlRHVtcFF1aXJrKCkgY29uc3QKICAgICB9KTsKIH0KIAoraW5saW5lIHVuc2lnbmVk
IFJ1bjo6bWluaW11bUNhcmV0T2Zmc2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVybiBwYXRo
Lm1pbmltdW1DYXJldE9mZnNldCgpOworICAgIH0pOworfQorCitpbmxpbmUgdW5zaWduZWQgUnVu
OjptYXhpbXVtQ2FyZXRPZmZzZXQoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHBhdGgubWF4
aW11bUNhcmV0T2Zmc2V0KCk7CisgICAgfSk7Cit9CisKIGlubGluZSBib29sIFRleHRSdW46Omhh
c0h5cGhlbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFu
dCwgW10oYXV0byYgcGF0aCkgewpAQCAtMjQzLDIwICsyNjYsMjcgQEAgaW5saW5lIHVuc2lnbmVk
IFRleHRSdW46Omxlbmd0aCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSBib29sIFRleHRS
dW46OmlzTGFzdE9uTGluZSgpIGNvbnN0CitpbmxpbmUgYm9vbCBUZXh0UnVuOjppc0xhc3RUZXh0
UnVuT25MaW5lKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJp
YW50LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHJldHVybiBwYXRoLmlzTGFzdE9uTGluZSgp
OworICAgICAgICByZXR1cm4gcGF0aC5pc0xhc3RUZXh0UnVuT25MaW5lKCk7CiAgICAgfSk7CiB9
CiAKLWlubGluZSBib29sIFRleHRSdW46OmlzTGFzdCgpIGNvbnN0CitpbmxpbmUgYm9vbCBUZXh0
UnVuOjppc0xhc3RUZXh0UnVuKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbiht
X3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHJldHVybiBwYXRoLmlzTGFz
dCgpOworICAgICAgICByZXR1cm4gcGF0aC5pc0xhc3RUZXh0UnVuKCk7CiAgICAgfSk7CiB9CiAK
LQogfQogfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpUZXh0UnVuKQorc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpSdW4mIHJ1bikgeyByZXR1cm4gcnVuLmlzVGV4dCgpOyB9CitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4o
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcikKK3N0YXRpYyBib29s
IGlzVHlwZShjb25zdCBXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3ImIHJ1
bkl0ZXJhdG9yKSB7IHJldHVybiAhcnVuSXRlcmF0b3IgfHwgcnVuSXRlcmF0b3ItPmlzVGV4dCgp
OyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2Fj
eVBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCmluZGV4IDllMDcxNGY5MjY4OC4uNmQ3YzEzZmFk
ZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGgu
aApAQCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9zb3J0ZWRJbmxpbmVUZXh0
Qm94SW5kZXgoc29ydGVkSW5saW5lVGV4dEJveEluZGV4KQogICAgIHsgfQogCisgICAgYm9vbCBp
c1RleHQoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveC0+aXNJbmxpbmVUZXh0Qm94KCk7IH0K
KwogICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3gtPmZyYW1l
UmVjdCgpOyB9CiAKICAgICBib29sIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX2lubGluZUJveC0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOyB9CkBAIC00OCw2ICs1
MCw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV9p
bmxpbmVCb3gtPmlzTGluZUJyZWFrKCk7IH0KICAgICBmbG9hdCBiYXNlbGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1faW5saW5lQm94LT5iYXNlbGluZVBvc2l0aW9uKEFscGhhYmV0aWNCYXNlbGluZSk7
IH0KIAorICAgIHVuc2lnbmVkIG1pbmltdW1DYXJldE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5saW5lQm94LT5jYXJldE1pbk9mZnNldCgpOyB9CisgICAgdW5zaWduZWQgbWF4aW11bUNhcmV0
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3gtPmNhcmV0TWF4T2Zmc2V0KCk7IH0K
KwogICAgIGJvb2wgdXNlTGluZUJyZWFrQm94UmVuZGVyVHJlZUR1bXBRdWlyaygpIGNvbnN0CiAg
ICAgewogICAgICAgICByZXR1cm4gIW1faW5saW5lQm94LT5iZWhhdmVzTGlrZVRleHQoKTsKQEAg
LTU5LDEyICs2NCwxMiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbG9jYWxFbmRPZmZzZXQoKSBj
b25zdCB7IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPmVuZCgpOyB9CiAgICAgdW5zaWduZWQgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gaW5saW5lVGV4dEJveCgpLT5sZW4oKTsgfQogCi0gICAgaW5s
aW5lIGJvb2wgaXNMYXN0T25MaW5lKCkgY29uc3QKKyAgICBpbmxpbmUgYm9vbCBpc0xhc3RUZXh0
UnVuT25MaW5lKCkgY29uc3QKICAgICB7CiAgICAgICAgIGF1dG8qIG5leHQgPSBuZXh0SW5saW5l
VGV4dEJveEluVGV4dE9yZGVyKCk7CiAgICAgICAgIHJldHVybiAhbmV4dCB8fCAmaW5saW5lVGV4
dEJveCgpLT5yb290KCkgIT0gJm5leHQtPnJvb3QoKTsKICAgICB9Ci0gICAgaW5saW5lIGJvb2wg
aXNMYXN0KCkgY29uc3QgeyByZXR1cm4gIW5leHRJbmxpbmVUZXh0Qm94SW5UZXh0T3JkZXIoKTsg
fTsKKyAgICBpbmxpbmUgYm9vbCBpc0xhc3RUZXh0UnVuKCkgY29uc3QgeyByZXR1cm4gIW5leHRJ
bmxpbmVUZXh0Qm94SW5UZXh0T3JkZXIoKTsgfTsKIAogICAgIHZvaWQgdHJhdmVyc2VOZXh0VGV4
dFJ1bkluVmlzdWFsT3JkZXIoKSB7IG1faW5saW5lQm94ID0gaW5saW5lVGV4dEJveCgpLT5uZXh0
VGV4dEJveCgpOyB9CiAgICAgdm9pZCB0cmF2ZXJzZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaAppbmRleCBj
MTg0NmQxMTA4YzAuLjc1MzRkMmMyOWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
UnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKQEAgLTUwLDYgKzUwLDggQEAgcHVibGljOgogICAgIE1v
ZGVyblBhdGgmIG9wZXJhdG9yPShjb25zdCBNb2Rlcm5QYXRoJikgPSBkZWZhdWx0OwogICAgIE1v
ZGVyblBhdGgmIG9wZXJhdG9yPShNb2Rlcm5QYXRoJiYpID0gZGVmYXVsdDsKIAorICAgIGJvb2wg
aXNUZXh0KCkgY29uc3QgeyByZXR1cm4gISFydW4oKS50ZXh0Q29udGVudCgpOyB9CisKICAgICBG
bG9hdFJlY3QgcmVjdCgpIGNvbnN0OwogCiAgICAgZmxvYXQgYmFzZWxpbmUoKSBjb25zdCB7IHJl
dHVybiBsaW5lKCkuYmFzZWxpbmUoKTsgfQpAQCAtNTksNiArNjEsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBkaXJPdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0xp
bmVCcmVhaygpIGNvbnN0IHsgcmV0dXJuIHJ1bigpLmlzTGluZUJyZWFrKCk7IH0KIAorICAgIHVu
c2lnbmVkIG1pbmltdW1DYXJldE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIGlzVGV4dCgpID8gbG9j
YWxTdGFydE9mZnNldCgpIDogMDsgfQorICAgIHVuc2lnbmVkIG1heGltdW1DYXJldE9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIGlzVGV4dCgpID8gbG9jYWxTdGFydE9mZnNldCgpIDogMTsgfQorCiAg
ICAgYm9vbCB1c2VMaW5lQnJlYWtCb3hSZW5kZXJUcmVlRHVtcFF1aXJrKCkgY29uc3QKICAgICB7
CiAgICAgICAgIGlmICghbV9ydW5JbmRleCkKQEAgLTczLDE0ICs3OCwxNCBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgbG9jYWxFbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBydW4oKS50ZXh0Q29u
dGVudCgpLT5lbmQoKTsgfQogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHJ1
bigpLnRleHRDb250ZW50KCktPmxlbmd0aCgpOyB9CiAKLSAgICBib29sIGlzTGFzdE9uTGluZSgp
IGNvbnN0CisgICAgYm9vbCBpc0xhc3RUZXh0UnVuT25MaW5lKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIGlmIChpc0xhc3QoKSkKKyAgICAgICAgaWYgKGlzTGFzdFRleHRSdW4oKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBhdXRvJiBuZXh0ID0gcnVucygpW21fcnVuSW5kZXgg
KyAxXTsKICAgICAgICAgcmV0dXJuIHJ1bigpLmxpbmVJbmRleCgpICE9IG5leHQubGluZUluZGV4
KCk7CiAgICAgfQotICAgIGJvb2wgaXNMYXN0KCkgY29uc3QKKyAgICBib29sIGlzTGFzdFRleHRS
dW4oKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fcnVuSW5kZXggKyAxID09IG1fZW5k
SW5kZXg7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaW5lQnJlYWsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVh
ay5jcHAKaW5kZXggOTE0YzMxNDFhMTU2Li5lZDMyNjY2MDVjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJMaW5lQnJlYWs6OmxvY2FsQ2FyZXRSZWN0KElubGluZUJveCogaW5saW5l
Qm94LCB1bnNpZ25lZCBjYXJldE8KIAogSW50UmVjdCBSZW5kZXJMaW5lQnJlYWs6OmxpbmVzQm91
bmRpbmdCb3goKSBjb25zdAogewotICAgIGF1dG8gYm94ID0gTGF5b3V0SW50ZWdyYXRpb246OmVs
ZW1lbnRSdW5Gb3IoKnRoaXMpOworICAgIGF1dG8gYm94ID0gTGF5b3V0SW50ZWdyYXRpb246OnJ1
bkZvcigqdGhpcyk7CiAgICAgaWYgKCFib3gpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE3
OSw3ICsxNzksNyBAQCBJbnRSZWN0IFJlbmRlckxpbmVCcmVhazo6bGluZXNCb3VuZGluZ0JveCgp
IGNvbnN0CiAKIEludFJlY3QgUmVuZGVyTGluZUJyZWFrOjpib3VuZGluZ0JveEZvclJlbmRlclRy
ZWVEdW1wKCkgY29uc3QKIHsKLSAgICBhdXRvIGJveCA9IExheW91dEludGVncmF0aW9uOjplbGVt
ZW50UnVuRm9yKCp0aGlzKTsKKyAgICBhdXRvIGJveCA9IExheW91dEludGVncmF0aW9uOjpydW5G
b3IoKnRoaXMpOwogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC0yMDEs
NyArMjAxLDcgQEAgSW50UmVjdCBSZW5kZXJMaW5lQnJlYWs6OmJvdW5kaW5nQm94Rm9yUmVuZGVy
VHJlZUR1bXAoKSBjb25zdAogCiB2b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQpIGNvbnN0CiB7Ci0gICAgYXV0byBib3ggPSBMYXlvdXRJbnRlZ3JhdGlvbjo6ZWxlbWVudFJ1
bkZvcigqdGhpcyk7CisgICAgYXV0byBib3ggPSBMYXlvdXRJbnRlZ3JhdGlvbjo6cnVuRm9yKCp0
aGlzKTsKICAgICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTEsNyArMjExLDcg
QEAgdm9pZCBSZW5kZXJMaW5lQnJlYWs6OmFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiBy
ZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGEKIAogdm9pZCBSZW5kZXJMaW5lQnJlYWs6OmFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
IHsKLSAgICBhdXRvIGJveCA9IExheW91dEludGVncmF0aW9uOjplbGVtZW50UnVuRm9yKCp0aGlz
KTsKKyAgICBhdXRvIGJveCA9IExheW91dEludGVncmF0aW9uOjpydW5Gb3IoKnRoaXMpOwogICAg
IGlmICghYm94KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAppbmRleCAzMjcyMjE3ZWVmZWMuLjE5ZDExZmU3OGUwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAgdW5zaWdu
ZWQgUmVuZGVyVGV4dDo6Y291bnRSZW5kZXJlZENoYXJhY3Rlck9mZnNldHNVbnRpbCh1bnNpZ25l
ZCBvZmZzZXQpIGNvbnN0CiBlbnVtIGNsYXNzIE9mZnNldFR5cGUgeyBDaGFyYWN0ZXIsIENhcmV0
IH07CiBzdGF0aWMgYm9vbCBjb250YWluc09mZnNldChjb25zdCBSZW5kZXJUZXh0JiB0ZXh0LCB1
bnNpZ25lZCBvZmZzZXQsIE9mZnNldFR5cGUgdHlwZSkKIHsKLSAgICBmb3IgKGF1dG8gYm94ID0g
TGF5b3V0SW50ZWdyYXRpb246OmZpcnN0VGV4dFJ1bkluVGV4dE9yZGVyRm9yKHRleHQpOyBib3g7
IGJveC50cmF2ZXJzZU5leHRJblRleHRPcmRlcigpKSB7CisgICAgZm9yIChhdXRvIGJveCA9IExh
eW91dEludGVncmF0aW9uOjpmaXJzdFRleHRSdW5JblRleHRPcmRlckZvcih0ZXh0KTsgYm94OyBi
b3gudHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4dE9yZGVyKCkpIHsKICAgICAgICAgYXV0byBzdGFy
dCA9IGJveC0+bG9jYWxTdGFydE9mZnNldCgpOwogICAgICAgICBpZiAob2Zmc2V0IDwgc3RhcnQp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>