<?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>190713</bug_id>
          
          <creation_ts>2018-10-18 08:17:15 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add generic inline content handling.</short_desc>
          <delta_ts>2018-10-19 09:43:21 -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="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>1470533</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-10-18 08:17:15 -0700</bug_when>
    <thetext>Take inline breaker into use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470543</commentid>
    <comment_count>1</comment_count>
      <attachid>352694</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-10-18 08:41:36 -0700</bug_when>
    <thetext>Created attachment 352694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470883</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-10-19 09:42:04 -0700</bug_when>
    <thetext>Committed r237288: &lt;https://trac.webkit.org/changeset/237288&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470885</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-19 09:43:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/45407485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352694</attachid>
            <date>2018-10-18 08:41:36 -0700</date>
            <delta_ts>2018-10-19 08:44:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>29199</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDlmZjIxZGRhZC4uNGE5NTcwNzBlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAxOC0xMC0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtMRkNdW0lGQ10gQWRkIGdlbmVyaWMgaW5saW5lIGNvbnRlbnQgaGFuZGxpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA3MTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBsYXlvdXRJ
bmxpbmVDb250ZW50IHR1cm5zIElubGluZUxpbmVCcmVha2VyOjpSdW4gb2JqZWN0cyBpbnRvIGZp
bmFsIGlubGluZSBydW5zIGJ5CisgICAgICAgIHJlc29sdmluZyBoZWFkaW5nL3RyYWlsaW5nIHdo
aXRlc3BhY2UsIGFsaWdtZW50LCBleHBhbnNpb24gb3Bwb3J0dW5pdGllcyBldGMuCisgICAgICAg
IFRoZXNlIGlubGluZSBydW5zIGFyZSBpbnB1dCB0byB0aGUgZGlzcGxheSB0cmVlIGNvbnN0cnVj
dGlvbi4gCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlCb3guaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Ojp0cmlt
TGVhZGluZ1J1bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpsYXlvdXRJbmxpbmVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZEhlaWdodCBjb25z
dCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OkxpbmU6Omhhc0NvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZTo6Y29udGVudExvZ2ljYWxMZWZ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmU6
OmF2YWlsYWJsZVdpZHRoIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ1N0YXRlOjppbmxpbmVSdW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlOjphcHBlbmRJbmxpbmVSdW4pOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lTGluZUJyZWFrZXI6Om5leHRSdW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVMaW5lQnJlYWtlcjo6bmV4dExheW91dFJ1bik6IERlbGV0ZWQu
CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaDoK
KyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSdW4uaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJ1bjo6bG9naWNhbExlZnQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSdW46OmxvZ2ljYWxSaWdodCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJ1bjo6d2lkdGggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSdW46OnNldFdpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lUnVuOjpzZXRMb2dpY2FsUmlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVSdW46OlRleHRDb250ZXh0Ojpwb3NpdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJ1bjo6VGV4dENvbnRleHQ6Omxlbmd0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJ1bjo6VGV4dENvbnRleHQ6
OnNldExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJ1bjo6dGV4dENv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSdW46OmlubGluZUl0ZW0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSdW46OklubGluZVJ1bik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJ1bjo6VGV4dENvbnRleHQ6OlRleHRD
b250ZXh0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpM
aW5lOjpMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ6OkxpbmU6OnNldENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
aXNOb25Db2xsYXBzZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6aXNUcmltbWFi
bGVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ6OkxpbmU6OmFwcGVuZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZTo6Y2xvc2UpOgorCiAyMDE4LTEwLTE3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGQgZ2Vu
ZXJpYyBpbmxpbmUgbGluZSBicmVha2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDc0ZGMwMDgxMGEyLi5i
YjM5YzZmYThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEyNTUsNiArMTI1NSw3IEBAIGxheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUludmFsaWRhdGlvbi5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCcmVha2VyLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lUnVu
UHJvdmlkZXIuY3BwCitsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lLmNwcAogbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9UZXh0Q29udGVudFByb3ZpZGVyLmNwcAogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvdGV4dGxheW91dC9UZXh0VXRpbC5jcHAKIGxheW91dC9pbmxpbmVm
b3JtYXR0aW5nL3RleHRsYXlvdXQvc2ltcGxlL1NpbXBsZVRleHRSdW5HZW5lcmF0b3IuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNmI1OWI3ZDQ4YzAuLmU2OGIxZjQ4N2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTg0LDYgKzE5ODQsNyBAQAogCQk2
RUQ4NzhDNTE0NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUQ4NzhDMzE0NzQ5M0Y0MDA0
QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmggKi87IH07CiAJCTZFRDhDMzdBMTgzQkZGOEMw
MDlFNTNCRCAvKiBCb3hTaGFwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkVEOEMzNzgxODNCRkY4QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkVFOEE3NzMxMEY4
MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFOEE3NzExMEY4MDNGMzAwNUE0QTI0
IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyB9OworCQk2RjIxOUQ3NzIxNzhEMzcy
MDBCQjAzM0MgLyogSW5saW5lUnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RjIxOUQ3NDIxNzhEMzcxMDBCQjAzM0MgLyogSW5saW5lUnVuLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYyMjJCNzYx
QUI1MkQ4QTAwOTQ2NTFBIC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjIyQjc1MUFCNTJEOEEw
MDk0NjUxQSAvKiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgKi87IH07CiAJCTZGM0Ux
RjYyMjEzNjE0MjAwMEE2NUEwOCAvKiBGbG9hdEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYzRTFGNjEyMTM2MTQxNzAwQTY1QTA4IC8qIEZsb2F0
Qm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NkY1MjE3QzcyMTc3RjVBNzAwNjU4M0JCIC8qIElubGluZVJ1blByb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjUyMTdDNDIxNzdGNUE2MDA2
NTgzQkIgLyogSW5saW5lUnVuUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTA1Myw2ICs5MDU0LDggQEAKIAkJNkVFOEE3NzAxMEY4
MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RUU4QTc3MTEwRjgwM0YzMDA1QTRBMjQgLyog
SlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RjA4MzBERjIwQjQ2OTUxMDA4QTk0NUIgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGMjE5RDc0MjE3OEQzNzEw
MEJCMDMzQyAvKiBJbmxpbmVSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5saW5lUnVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGMjE5RDc2MjE3OEQz
NzEwMEJCMDMzQyAvKiBMaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjIyMkI3NDFBQjUy
RDY0MDA5NDY1MUEgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkYyMjJCNzUxQUI1MkQ4QTAwOTQ2NTFBIC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYzRTFG
NUYyMTM2MTQxNzAwQTY1QTA4IC8qIEZsb2F0Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZs
b2F0Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MDI0LDYgKzE2MDI3
LDggQEAKIAkJMTE1Q0ZBOUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRpbmcgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZGMjE5RDc0MjE3
OEQzNzEwMEJCMDMzQyAvKiBJbmxpbmVSdW4uaCAqLywKKwkJCQk2RjIxOUQ3NjIxNzhEMzcxMDBC
QjAzM0MgLyogTGluZS5jcHAgKi8sCiAJCQkJNkZFMTk4MTMyMTc4Mzk3QjAwNDQ2RjA4IC8qIElu
bGluZUxpbmVCcmVha2VyLmNwcCAqLywKIAkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyog
SW5saW5lTGluZUJyZWFrZXIuaCAqLywKIAkJCQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyog
dGV4dGxheW91dCAqLywKQEAgLTMwMzc5LDYgKzMwMzg0LDcgQEAKIAkJCQlBMTBCQjU4NTE0ODRF
M0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzA4
Q0QxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzY3MDhDRjEyRDlDQTRCMDAwNDQyMzQgLyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RjIxOUQ3NzIxNzhEMzcyMDBCQjAzM0MgLyogSW5saW5l
UnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhEMTEyRDlDQTRCMDAwNDQyMzQgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOEQzMTJE
OUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDM2NzA4RDUxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVy
UHJpbWl0aXZlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUJveC5oCmluZGV4IDM2MzBlZTJhNzBkLi45MjdlYWRjMGE0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCkBAIC00
MSw2ICs0MSw3IEBAIGNsYXNzIEZsb2F0QXZvaWRlcjsKIGNsYXNzIEZsb2F0Qm94OwogY2xhc3Mg
Rm9ybWF0dGluZ0NvbnRleHQ7CiBjbGFzcyBGbG9hdGluZ0NvbnRleHQ7CitjbGFzcyBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDsKIGNsYXNzIExheW91dENvbnRleHQ7CiB9CiAKQEAgLTU0LDYgKzU1
LDcgQEAgcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXQ6OkZsb2F0Qm94OwogICAgIGZy
aWVuZCBjbGFzcyBMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OwogICAgIGZyaWVuZCBjbGFzcyBM
YXlvdXQ6OkZsb2F0aW5nQ29udGV4dDsKKyAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDsKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpMYXlvdXRDb250ZXh0
OwogCiAgICAgQm94KGNvbnN0IFJlbmRlclN0eWxlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKaW5kZXggN2RlMjNjMTFjN2UuLmVkN2U1YmQxN2JlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0zMCwxNCArMzAsMTQgQEAKIAogI2luY2x1ZGUg
IkZsb2F0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKKyNp
bmNsdWRlICJJbmxpbmVMaW5lQnJlYWtlci5oIgorI2luY2x1ZGUgIklubGluZVJ1blByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgi
CiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dElubGluZUJveC5o
IgogI2luY2x1ZGUgIkxheW91dElubGluZUNvbnRhaW5lci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKLSNpbmNsdWRlICJTaW1wbGVMaW5lQnJlYWtlci5oIgotI2luY2x1ZGUgIlRleHRDb250ZW50
UHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIApAQCAtNTEsMTQgKzUxLDE1IEBAIElubGluZUZvcm1h
dHRpbmdDb250ZXh0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBCb3gmIGZvcm1hdHRp
bmdDb250ZXh0Um9vCiB7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91
dChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdGUmIGlubGluZUZv
cm1hdHRpbmdTdGF0ZSkgY29uc3QKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91
dChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRp
bmdTdGF0ZSkgY29uc3QKIHsKICAgICBpZiAoIWlzPENvbnRhaW5lcj4ocm9vdCgpKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0
LCBzdHJlYW0gPDwgIltTdGFydF0gLT4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCAtPiBsYXlv
dXQgY29udGV4dCgiIDw8ICZsYXlvdXRDb250ZXh0IDw8ICIpIGZvcm1hdHRpbmcgcm9vdCgiIDw8
ICZyb290KCkgPDwgIikiKTsKIAotICAgIFRleHRDb250ZW50UHJvdmlkZXIgdGV4dENvbnRlbnRQ
cm92aWRlcjsKKyAgICBhdXRvJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUgPSBkb3duY2FzdDxJbmxp
bmVGb3JtYXR0aW5nU3RhdGU+KGZvcm1hdHRpbmdTdGF0ZSk7CisgICAgSW5saW5lUnVuUHJvdmlk
ZXIgaW5saW5lUnVuUHJvdmlkZXIoaW5saW5lRm9ybWF0dGluZ1N0YXRlKTsKICAgICBhdXRvJiBm
b3JtYXR0aW5nUm9vdCA9IGRvd25jYXN0PENvbnRhaW5lcj4ocm9vdCgpKTsKICAgICBhdXRvKiBs
YXlvdXRCb3ggPSBmb3JtYXR0aW5nUm9vdC5maXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgpOwog
ICAgIC8vIENhc3VhbGx5IHdhbGsgdGhyb3VnaCB0aGUgYmxvY2sncyBkZXNjZW5kYW50cyBhbmQg
cGxhY2UgdGhlIGlubGluZSBib3hlcyBvbmUgYWZ0ZXIgdGhlIG90aGVyIGFzIG11Y2ggYXMgd2Ug
Y2FuICh5ZWFoLCBJIGFtIGxvb2tpbmcgYXQgeW91IGZsb2F0cykuCkBAIC02OCwxMiArNjksMTEg
QEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0KExheW91dENvbnRleHQmIGxh
eW91dENvbnRleHQsIEZvcm1hdHRpbmdTdGEKICAgICAgICAgICAgIGxheW91dEJveCA9IGRvd25j
YXN0PENvbnRhaW5lcj4oKmxheW91dEJveCkuZmlyc3RJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8mIGlubGluZUJv
eCA9IGRvd25jYXN0PElubGluZUJveD4oKmxheW91dEJveCk7Ci0gICAgICAgIC8vIE9ubHkgdGV4
dCBjb250ZW50IGF0IHRoaXMgcG9pbnQuCi0gICAgICAgIGlmIChpbmxpbmVCb3guaGFzVGV4dENv
bnRlbnQoKSkKLSAgICAgICAgICAgIHRleHRDb250ZW50UHJvdmlkZXIuYXBwZW5kVGV4dChpbmxp
bmVCb3gudGV4dENvbnRlbnQoKSwgaW5saW5lQm94LnN0eWxlKCksIHRydWUpOwogCi0gICAgICAg
IGZvciAoOyBsYXlvdXRCb3g7IGxheW91dEJveCA9IGxheW91dEJveC0+Y29udGFpbmluZ0Jsb2Nr
KCkpIHsKKyAgICAgICAgaW5saW5lUnVuUHJvdmlkZXIuYXBwZW5kKCpsYXlvdXRCb3gpOworICAg
ICAgICBjb21wdXRlV2lkdGhBbmRIZWlnaHQobGF5b3V0Q29udGV4dCwgKmxheW91dEJveCk7CisK
KyAgICAgICAgZm9yICg7IGxheW91dEJveDsgbGF5b3V0Qm94ID0gbGF5b3V0Qm94LT5wYXJlbnQo
KSkgewogICAgICAgICAgICAgaWYgKGxheW91dEJveCA9PSAmZm9ybWF0dGluZ1Jvb3QpIHsKICAg
ICAgICAgICAgICAgICBsYXlvdXRCb3ggPSBudWxscHRyOwogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtODYsMjAgKzg2LDEwNCBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0YQogICAgICAgICBB
U1NFUlQoIWxheW91dEJveCB8fCBsYXlvdXRCb3gtPmlzRGVzY2VuZGFudE9mKGZvcm1hdHRpbmdS
b290KSk7CiAgICAgfQogCisgICAgbGF5b3V0SW5saW5lQ29udGVudChsYXlvdXRDb250ZXh0LCBp
bmxpbmVGb3JtYXR0aW5nU3RhdGUsIGlubGluZVJ1blByb3ZpZGVyKTsKKworICAgIExPR19XSVRI
X1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBpbmxp
bmUgZm9ybWF0dGluZyBjb250ZXh0IC0+IGxheW91dCBjb250ZXh0KCIgPDwgJmxheW91dENvbnRl
eHQgPDwgIikgZm9ybWF0dGluZyByb290KCIgPDwgJnJvb3QoKSA8PCAiKSIpOworfQorCitzdGF0
aWMgYm9vbCB0cmltTGVhZGluZ1J1bihjb25zdCBJbmxpbmVMaW5lQnJlYWtlcjo6UnVuJiBydW4p
Cit7CisgICAgQVNTRVJUKHJ1bi5wb3NpdGlvbiA9PSBJbmxpbmVMaW5lQnJlYWtlcjo6UnVuOjpQ
b3NpdGlvbjo6TGluZUJlZ2luKTsKKworICAgIGF1dG8mIGlubGluZVJ1biA9IHJ1bi5pbmxpbmVS
dW47CisgICAgaWYgKCFpbmxpbmVSdW4uaXNXaGl0ZXNwYWNlKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiBpbmxpbmVSdW4uc3R5bGUoKS5jb2xsYXBzZVdoaXRlU3BhY2Uo
KTsKK30KKwordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5saW5lQ29udGVu
dChjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUmIGlubGluZUZvcm1hdHRpbmdTdGF0ZSwgY29uc3QgSW5saW5lUnVuUHJvdmlkZXImIGlubGlu
ZVJ1blByb3ZpZGVyKSBjb25zdAoreworICAgIGF1dG8mIGZvcm1hdHRpbmdSb290ID0gZG93bmNh
c3Q8Q29udGFpbmVyPihyb290KCkpOwogICAgIGF1dG8mIGZvcm1hdHRpbmdSb290RGlzcGxheUJv
eCA9IGxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveChmb3JtYXR0aW5nUm9vdCk7
Ci0gICAgYXV0byBsaW5lTGVmdCA9IGZvcm1hdHRpbmdSb290RGlzcGxheUJveC5jb250ZW50Qm94
TGVmdCgpOwotICAgIGF1dG8gbGluZVJpZ2h0ID0gZm9ybWF0dGluZ1Jvb3REaXNwbGF5Qm94LmNv
bnRlbnRCb3hSaWdodCgpOwogCi0gICAgU2ltcGxlTGluZUJyZWFrZXI6OkxpbmVDb25zdHJhaW50
TGlzdCBjb25zdHJhaW50czsKLSAgICBjb25zdHJhaW50cy5hcHBlbmQoeyB7IH0sIGxpbmVMZWZ0
LCBsaW5lUmlnaHQgfSk7Ci0gICAgYXV0byB0ZXh0UnVuTGlzdCA9IHRleHRDb250ZW50UHJvdmlk
ZXIudGV4dFJ1bnMoKTsKLSAgICBTaW1wbGVMaW5lQnJlYWtlciBzaW1wbGVMaW5lQnJlYWtlcih0
ZXh0UnVuTGlzdCwgdGV4dENvbnRlbnRQcm92aWRlciwgV1RGTW92ZShjb25zdHJhaW50cyksIGZv
cm1hdHRpbmdSb290LnN0eWxlKCkpOworICAgIGF1dG8gbGluZUxvZ2ljYWxMZWZ0ID0gZm9ybWF0
dGluZ1Jvb3REaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCk7CisgICAgYXV0byBhdmFpbGFibGVX
aWR0aCA9IGZvcm1hdHRpbmdSb290RGlzcGxheUJveC5jb250ZW50Qm94V2lkdGgoKTsKKyAgICBh
dXRvIHByZXZpb3VzUnVuUG9zaXRpb25Jc0xpbmVFbmQgPSBmYWxzZTsKIAotICAgIC8vIFNpbmNl
IHdlIGRvbid0IHlldCBoYXZlIGEgZGlzcGxheSB0cmVlIGNvbnRleHQgZm9yIGlubGluZSBib3hl
cywgbGV0J3MganVzdCBjYWNoZSB0aGUgcnVucyBvbiB0aGUgc3RhdGUgc28gdGhhdCB0aGV5IGNh
biBiZSB2ZXJpZmllZCBhZ2FpbnN0IHRoZSBzbGwvaW5saW5lIHRyZWUgcnVucyBsYXRlci4KLSAg
ICBBU1NFUlQoaXM8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihpbmxpbmVGb3JtYXR0aW5nU3RhdGUp
KTsKLSAgICBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGlubGluZUZvcm1hdHRpbmdT
dGF0ZSkuYWRkTGF5b3V0UnVucyhzaW1wbGVMaW5lQnJlYWtlci5ydW5zKCkpOworICAgIExpbmUg
bGluZShpbmxpbmVGb3JtYXR0aW5nU3RhdGUpOworICAgIGxpbmUuc2V0Q29uc3RyYWludHMobGlu
ZUxvZ2ljYWxMZWZ0LCBhdmFpbGFibGVXaWR0aCk7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oRm9y
bWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW0VuZF0gLT4gaW5saW5lIGZvcm1hdHRp
bmcgY29udGV4dCAtPiBsYXlvdXQgY29udGV4dCgiIDw8ICZsYXlvdXRDb250ZXh0IDw8ICIpIGZv
cm1hdHRpbmcgcm9vdCgiIDw8ICZyb290KCkgPDwgIikiKTsKKyAgICBJbmxpbmVMaW5lQnJlYWtl
ciBsaW5lQnJlYWtlcihsYXlvdXRDb250ZXh0LCBpbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5l
Q29udGVudCgpLCBpbmxpbmVSdW5Qcm92aWRlci5ydW5zKCkpOworICAgIHdoaWxlIChhdXRvIHJ1
biA9IGxpbmVCcmVha2VyLm5leHRSdW4obGluZS5jb250ZW50TG9naWNhbExlZnQoKSwgbGluZS5h
dmFpbGFibGVXaWR0aCgpLCAhbGluZS5oYXNDb250ZW50KCkpKSB7CisKKyAgICAgICAgaWYgKHJ1
bi0+cG9zaXRpb24gPT0gSW5saW5lTGluZUJyZWFrZXI6OlJ1bjo6UG9zaXRpb246OkxpbmVCZWdp
bikgeworICAgICAgICAgICAgLy8gRmlyc3QgcnVuIG9uIGxpbmUuCisKKyAgICAgICAgICAgIC8v
IFByZXZpb3VzIHJ1biBlbmRlZCB1cCBiZWluZyBhdCB0aGUgbGluZSBlbmQuIEFkanVzdCB0aGUg
bGluZSBhY2NvcmRpbmdseS4KKyAgICAgICAgICAgIGlmICghcHJldmlvdXNSdW5Qb3NpdGlvbklz
TGluZUVuZCkgeworICAgICAgICAgICAgICAgIGxpbmUuY2xvc2UoKTsKKyAgICAgICAgICAgICAg
ICBsaW5lLnNldENvbnN0cmFpbnRzKGxpbmVMb2dpY2FsTGVmdCwgYXZhaWxhYmxlV2lkdGgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gU2tpcCBsZWFkaW5nIHdoaXRlc3BhY2UuCisg
ICAgICAgICAgICBpZiAoIXRyaW1MZWFkaW5nUnVuKCpydW4pKQorICAgICAgICAgICAgICAgIGxp
bmUuYXBwZW5kQ29udGVudCgqcnVuKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKHJ1bi0+cG9zaXRpb24gPT0gSW5saW5lTGluZUJyZWFrZXI6OlJ1bjo6
UG9zaXRpb246OkxpbmVFbmQpIHsKKyAgICAgICAgICAgIC8vIExhc3QgcnVuIG9uIGxpbmUuCisg
ICAgICAgICAgICBwcmV2aW91c1J1blBvc2l0aW9uSXNMaW5lRW5kID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGxpbmUuYXBwZW5kQ29udGVudCgqcnVuKTsKKyAgICAgICAgICAgIC8vIE1vdmUgb3ZlciB0
byB0aGUgbmV4dCBsaW5lLgorICAgICAgICAgICAgbGluZS5jbG9zZSgpOworICAgICAgICAgICAg
bGluZS5zZXRDb25zdHJhaW50cyhsaW5lTG9naWNhbExlZnQsIGF2YWlsYWJsZVdpZHRoKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBtYXkgb3Ig
bWF5IG5vdCBiZSB0aGUgbGFzdCBydW4gb24gbGluZSAtYnV0IGRlZmluaXRlbHkgbm90IHRoZSBm
aXJzdCBvbmUuCisgICAgICAgIGxpbmUuYXBwZW5kQ29udGVudCgqcnVuKTsKKyAgICB9CisgICAg
bGluZS5jbG9zZSgpOworfQorCit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
V2lkdGhBbmRIZWlnaHQoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3Qg
Qm94JiBsYXlvdXRCb3gpIGNvbnN0Cit7CisgICAgaWYgKGlzPElubGluZUJveD4obGF5b3V0Qm94
KSAmJiBkb3duY2FzdDxJbmxpbmVCb3g+KGxheW91dEJveCkuaGFzVGV4dENvbnRlbnQoKSkgewor
ICAgICAgICAvLyBUZXh0IGNvbnRlbnQgd2lkdGggaXMgY29tcHV0ZWQgZHVyaW5nIHRleHQgcnVu
IGdlbmVyYXRpb24uIC1JdCBkb2VzIG5vdCBtYWtlIGFueSBzZW5zZSB0byBtZWFzdXJlIHVucHJv
Y2Vzc2VkIHRleHQgaGVyZSwgc2luY2UgaXQgd2lsbCBsaWtlbHkgYmUKKyAgICAgICAgLy8gc3Bs
aXQgdXAgKG9yIGNvbmNhdGVuYXRlZCkuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgQVNTRVJUX05P
VF9JTVBMRU1FTlRFRF9ZRVQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChs
YXlvdXRCb3guaXNJbmxpbmVCbG9ja0JveCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVN
RU5URURfWUVUKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobGF5b3V0Qm94
LnJlcGxhY2VkKCkpIHsKKyAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Q29u
dGV4dCwgbGF5b3V0Qm94KTsKKworICAgICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbGF5b3V0Q29u
dGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCk7CisKKyAgICAgICAgYXV0byB3
aWR0aEFuZE1hcmdpbiA9IEdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxh
eW91dENvbnRleHQsIGxheW91dEJveCk7CisgICAgICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJv
eFdpZHRoKHdpZHRoQW5kTWFyZ2luLndpZHRoKTsKKyAgICAgICAgZGlzcGxheUJveC5zZXRIb3Jp
em9udGFsTWFyZ2luKHdpZHRoQW5kTWFyZ2luLm1hcmdpbik7CisgICAgICAgIGRpc3BsYXlCb3gu
c2V0SG9yaXpvbnRhbE5vbkNvbXB1dGVkTWFyZ2luKHdpZHRoQW5kTWFyZ2luLm5vbkNvbXB1dGVk
TWFyZ2luKTsKKworICAgICAgICBhdXRvIGhlaWdodEFuZE1hcmdpbiA9IEdlb21ldHJ5Ojppbmxp
bmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOworICAg
ICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoaGVpZ2h0QW5kTWFyZ2luLmhlaWdo
dCk7CisgICAgICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4oaGVp
Z2h0QW5kTWFyZ2luLm1hcmdpbik7CisgICAgICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJn
aW4oaGVpZ2h0QW5kTWFyZ2luLmNvbGxhcHNlZE1hcmdpbi52YWx1ZV9vcihoZWlnaHRBbmRNYXJn
aW4ubWFyZ2luKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm47CiB9CiAKIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jikg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDMyNGQ5ZDVlY2JjLi4x
Mzg0YzFkNGRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0yOCwxMyAr
MjgsMTQgQEAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1
ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5saW5lTGluZUJyZWFrZXIuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQogbmFt
ZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZTsKK2NsYXNzIElu
bGluZVJ1blByb3ZpZGVyOwogCiAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIGxheW91dCBs
b2dpYyBmb3IgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBodHRwczovL3d3dy53My5v
cmcvVFIvQ1NTMjIvdmlzdXJlbi5odG1sI2lubGluZS1mb3JtYXR0aW5nCkBAIC00Niw2ICs0Nywz
MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXlvdXQoTGF5b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdT
dGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgorICAgIGNsYXNzIExpbmUgeworICAg
IHB1YmxpYzoKKyAgICAgICAgTGluZShJbmxpbmVGb3JtYXR0aW5nU3RhdGUmKTsKKworICAgICAg
ICB2b2lkIHNldENvbnN0cmFpbnRzKExheW91dFVuaXQgbGluZUxvZ2ljYWxMZWZ0LCBMYXlvdXRV
bml0IGF2YWlsYWJsZVdpZHRoKTsKKyAgICAgICAgdm9pZCBhcHBlbmRDb250ZW50KGNvbnN0IElu
bGluZUxpbmVCcmVha2VyOjpSdW4mKTsKKyAgICAgICAgdm9pZCBjbG9zZSgpOworICAgICAgICBi
b29sIGhhc0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiAhbV9pc0VtcHR5OyB9CisgICAgICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9n
aWNhbExlZnQ7IH0KKyAgICAgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fYXZhaWxhYmxlV2lkdGg7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVj
dCBUcmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQgeworICAgICAgICAgICAgTGF5b3V0VW5pdCB3aWR0
aDsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aDsKKyAgICAgICAgfTsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxUcmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQ+IG1fdHJhaWxpbmdUcmltbWFibGVD
b250ZW50OworICAgICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIG1faW5saW5lRm9ybWF0dGlu
Z1N0YXRlOworICAgICAgICBMYXlvdXRVbml0IG1fY29udGVudExvZ2ljYWxMZWZ0OworICAgICAg
ICBMYXlvdXRVbml0IG1fYXZhaWxhYmxlV2lkdGg7CisgICAgICAgIGJvb2wgbV9pc0VtcHR5IHsg
dHJ1ZSB9OworICAgICAgICBib29sIG1fbGFzdFJ1bklzTm90Q29sbGFwc2VkVGV4dCB7IHRydWUg
fTsKKyAgICB9OworCisgICAgdm9pZCBsYXlvdXRJbmxpbmVDb250ZW50KGNvbnN0IExheW91dENv
bnRleHQmLCBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmLCBjb25zdCBJbmxpbmVSdW5Qcm92aWRlciYp
IGNvbnN0OworCisgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRIZWlnaHQoY29uc3QgTGF5b3V0Q29u
dGV4dCYsIGNvbnN0IEJveCYpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9u
KGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIGNvbXB1dGVJbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oY29uc3QgTGF5b3V0Q29udGV4dCYs
IGNvbnN0IEJveCYpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5o
CmluZGV4IGNhYWNlMmU3YzhjLi5kYzZjOWU4MGI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0
YXRlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkZvcm1hdHRpbmdTdGF0ZS5oIgog
I2luY2x1ZGUgIklubGluZUl0ZW0uaCIKKyNpbmNsdWRlICJJbmxpbmVSdW4uaCIKICNpbmNsdWRl
ICJSdW5zLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCkBAIC00Nyw5ICs0OCwxNCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRMYXlvdXRSdW5zKFZlY3RvcjxMYXlvdXRSdW4+JiYgbGF5
b3V0UnVucykgeyBtX2xheW91dFJ1bnMgPSBXVEZNb3ZlKGxheW91dFJ1bnMpOyB9CiAgICAgY29u
c3QgVmVjdG9yPExheW91dFJ1bj4mIGxheW91dFJ1bnMoKSBjb25zdCB7IHJldHVybiBtX2xheW91
dFJ1bnM7IH0KIAorICAgIC8vIFRlbXAKKyAgICBJbmxpbmVSdW5zJiBpbmxpbmVSdW5zKCkgeyBy
ZXR1cm4gbV9pbmxpbmVSdW5zOyB9CisgICAgdm9pZCBhcHBlbmRJbmxpbmVSdW4oSW5saW5lUnVu
IGlubGluZVJ1bikgeyBtX2lubGluZVJ1bnMuYXBwZW5kKGlubGluZVJ1bik7IH0KKwogcHJpdmF0
ZToKICAgICBJbmxpbmVDb250ZW50IG1faW5saW5lQ29udGVudDsKICAgICBWZWN0b3I8TGF5b3V0
UnVuPiBtX2xheW91dFJ1bnM7CisgICAgSW5saW5lUnVucyBtX2lubGluZVJ1bnM7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKaW5kZXggMDJkZGNkNGMxOWMuLmQ0MzczMGFjNGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lQnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBAIElubGluZUxpbmVCcmVh
a2VyOjpJbmxpbmVMaW5lQnJlYWtlcihjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBJCiB7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8SW5saW5lTGluZUJyZWFrZXI6OlJ1bj4g
SW5saW5lTGluZUJyZWFrZXI6Om5leHRMYXlvdXRSdW4oTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgbGluZUlzRW1wdHkpCitzdGQ6
Om9wdGlvbmFsPElubGluZUxpbmVCcmVha2VyOjpSdW4+IElubGluZUxpbmVCcmVha2VyOjpuZXh0
UnVuKExheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBMYXlvdXRVbml0IGF2YWlsYWJsZVdp
ZHRoLCBib29sIGxpbmVJc0VtcHR5KQogewogICAgIGlmIChpc0F0Q29udGVudEVuZCgpKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmgKaW5kZXggZGY4NGYx
MDkxZDEuLmRjZWY2YWJjZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgcHVibGljOgogICAgICAgICBJbmxpbmVSdW5Qcm92aWRlcjo6UnVuIGlubGluZVJ1bjsKICAg
ICAgICAgTGF5b3V0VW5pdCB3aWR0aDsKICAgICB9OwotICAgIHN0ZDo6b3B0aW9uYWw8UnVuPiBu
ZXh0TGF5b3V0UnVuKExheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBMYXlvdXRVbml0IGF2
YWlsYWJsZVdpZHRoLCBib29sIGxpbmVJc0VtcHR5KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFJ1bj4g
bmV4dFJ1bihMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCBhdmFpbGFi
bGVXaWR0aCwgYm9vbCBsaW5lSXNFbXB0eSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBM
aW5lQnJlYWtpbmdCZWhhdmlvciB7IEtlZXAsIEJyZWFrLCBXcmFwVG9OZXh0TGluZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lUnVu
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSdW4uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzI3Nzc1OGU0YjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVSdW4uaApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIklubGluZVJ1
blByb3ZpZGVyLmgiCisjaW5jbHVkZSAiTGF5b3V0VW5pdC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworc3RydWN0IElubGluZVJ1biB7CisgICAgSW5saW5l
UnVuKExheW91dFVuaXQgbG9nY2lhbExlZnQsIExheW91dFVuaXQgd2lkdGgsIGNvbnN0IElubGlu
ZUl0ZW0mKTsKKyAgICBJbmxpbmVSdW4oTGF5b3V0VW5pdCBsb2djaWFsTGVmdCwgTGF5b3V0VW5p
dCB3aWR0aCwgSXRlbVBvc2l0aW9uLCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IElubGluZUl0ZW0m
KTsKKworICAgIExheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2lj
YWxMZWZ0OyB9CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBs
b2dpY2FsTGVmdCgpICsgd2lkdGgoKTsgfQorICAgIExheW91dFVuaXQgd2lkdGgoKSBjb25zdCB7
IHJldHVybiBtX3dpZHRoOyB9CisKKyAgICB2b2lkIHNldFdpZHRoKExheW91dFVuaXQgd2lkdGgp
IHsgbV93aWR0aCA9IHdpZHRoOyB9CisgICAgdm9pZCBzZXRMb2dpY2FsUmlnaHQoTGF5b3V0VW5p
dCBsb2dpY2FsUmlnaHQpIHsgbV93aWR0aCAtPSAodGhpcy0+bG9naWNhbFJpZ2h0KCkgLSBsb2dp
Y2FsUmlnaHQpOyB9CisKKyAgICBzdHJ1Y3QgVGV4dENvbnRleHQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgVGV4dENvbnRleHQoSXRlbVBvc2l0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOworCisgICAg
ICAgIEl0ZW1Qb3NpdGlvbiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
KyAgICAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKwor
ICAgICAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBsZW5ndGgpIHsgbV9sZW5ndGggPSBsZW5n
dGg7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIEl0ZW1Qb3NpdGlvbiBtX3Bvc2l0aW9uOwor
ICAgICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKKyAgICB9OworICAgIHN0ZDo6b3B0aW9uYWw8VGV4
dENvbnRleHQ+JiB0ZXh0Q29udGV4dCgpIHsgcmV0dXJuIG1fdGV4dENvbnRleHQ7IH0KKyAgICBj
b25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVJdGVt
OyB9CisKK3ByaXZhdGU6CisgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxMZWZ0OworICAgIExheW91
dFVuaXQgbV93aWR0aDsKKworICAgIGNvbnN0IElubGluZUl0ZW0mIG1faW5saW5lSXRlbTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFRleHRDb250ZXh0PiBtX3RleHRDb250ZXh0OworfTsKKwordXNpbmcg
SW5saW5lUnVucyA9IFZlY3RvcjxJbmxpbmVSdW4+OworCitpbmxpbmUgSW5saW5lUnVuOjpJbmxp
bmVSdW4oTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCB3aWR0aCwgY29uc3QgSW5s
aW5lSXRlbSYgaW5saW5lSXRlbSkKKyAgICA6IG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCisg
ICAgLCBtX3dpZHRoKHdpZHRoKQorICAgICwgbV9pbmxpbmVJdGVtKGlubGluZUl0ZW0pCit7Cit9
CisKK2lubGluZSBJbmxpbmVSdW46OklubGluZVJ1bihMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBM
YXlvdXRVbml0IHdpZHRoLCBJdGVtUG9zaXRpb24gcG9zaXRpb24sIHVuc2lnbmVkIGxlbmd0aCwg
Y29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSkKKyAgICA6IG1fbG9naWNhbExlZnQobG9naWNh
bExlZnQpCisgICAgLCBtX3dpZHRoKHdpZHRoKQorICAgICwgbV9pbmxpbmVJdGVtKGlubGluZUl0
ZW0pCisgICAgLCBtX3RleHRDb250ZXh0KFRleHRDb250ZXh0IHsgcG9zaXRpb24sIGxlbmd0aCB9
KQoreworfQorCitpbmxpbmUgSW5saW5lUnVuOjpUZXh0Q29udGV4dDo6VGV4dENvbnRleHQoSXRl
bVBvc2l0aW9uIHBvc2l0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgOiBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQorICAgICwgbV9sZW5ndGgobGVuZ3RoKQoreworfQorCit9Cit9CisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzNDJiZWVjZjJhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZS5jcHAK
QEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbmxpbmVGb3JtYXR0
aW5nU3RhdGUuaCIKKyNpbmNsdWRlICJJbmxpbmVSdW5Qcm92aWRlci5oIgorCisjaWYgRU5BQkxF
KExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBMYXlvdXQgeworCitJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZTo6TGluZShJbmxp
bmVGb3JtYXR0aW5nU3RhdGUmIGlubGluZUZvcm1hdHRpbmdTdGF0ZSkKKyAgICA6IG1faW5saW5l
Rm9ybWF0dGluZ1N0YXRlKGlubGluZUZvcm1hdHRpbmdTdGF0ZSkKK3sKK30KKwordm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZTo6c2V0Q29uc3RyYWludHMoTGF5b3V0VW5pdCBsaW5l
TG9naWNhbExlZnQsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpCit7CisgICAgbV9jb250ZW50
TG9naWNhbExlZnQgPSBsaW5lTG9naWNhbExlZnQ7CisgICAgbV9hdmFpbGFibGVXaWR0aCA9IGF2
YWlsYWJsZVdpZHRoOworfQorCitzdGF0aWMgYm9vbCBpc05vbkNvbGxhcHNlZFRleHQoY29uc3Qg
SW5saW5lUnVuUHJvdmlkZXI6OlJ1biYgaW5saW5lUnVuKQoreworICAgIHJldHVybiBpbmxpbmVS
dW4uaXNUZXh0KCkgJiYgIWlubGluZVJ1bi50ZXh0Q29udGV4dCgpLT5pc0NvbGxhcHNlZCgpOwor
fQorCitzdGF0aWMgYm9vbCBpc1RyaW1tYWJsZUNvbnRlbnQoY29uc3QgSW5saW5lUnVuUHJvdmlk
ZXI6OlJ1biYgaW5saW5lUnVuKQoreworICAgIHJldHVybiBpbmxpbmVSdW4uaXNXaGl0ZXNwYWNl
KCkgJiYgaW5saW5lUnVuLnN0eWxlKCkuY29sbGFwc2VXaGl0ZVNwYWNlKCk7Cit9CisKK3ZvaWQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmU6OmFwcGVuZENvbnRlbnQoY29uc3QgSW5saW5l
TGluZUJyZWFrZXI6OlJ1biYgcnVuKQoreworICAgIGF1dG8gbGFzdFJ1bldhc05vdENvbGxhcHNl
ZFRleHQgPSBtX2xhc3RSdW5Jc05vdENvbGxhcHNlZFRleHQ7CisgICAgYXV0byBoYWRDb250ZW50
ID0gaGFzQ29udGVudCgpOworICAgIGF1dG8gY29udGVudExvZ2ljYWxMZWZ0ID0gbV9jb250ZW50
TG9naWNhbExlZnQ7CisgICAgbV90cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQgPSB7IH07CisKKyAg
ICBhdXRvJiBpbmxpbmVSdW4gPSBydW4uaW5saW5lUnVuOworICAgIG1fYXZhaWxhYmxlV2lkdGgg
LT0gcnVuLndpZHRoOworICAgIG1fbGFzdFJ1bklzTm90Q29sbGFwc2VkVGV4dCA9IGlzTm9uQ29s
bGFwc2VkVGV4dChpbmxpbmVSdW4pOworICAgIG1faXNFbXB0eSA9IGZhbHNlOworICAgIG1fY29u
dGVudExvZ2ljYWxMZWZ0ICs9IHJ1bi53aWR0aDsKKworICAgIC8vIEFwcGVuZCB0aGlzIHRleHQg
cnVuIHRvIHRoZSBlbmQgb2YgdGhlIGxhc3QgdGV4dCBydW4sIGlmIHRoZSBsYXN0IHJ1biBpcyBj
b250aW51b3VzLgorICAgIGlmIChpbmxpbmVSdW4uaXNUZXh0KCkpIHsKKyAgICAgICAgYXV0byB0
ZXh0Q29udGV4dCA9IGlubGluZVJ1bi50ZXh0Q29udGV4dCgpOworICAgICAgICBhdXRvIHJ1bkxl
bmd0aCA9IHRleHRDb250ZXh0LT5pc0NvbGxhcHNlZCgpID8gMSA6IHRleHRDb250ZXh0LT5sZW5n
dGgoKTsKKworICAgICAgICBpZiAoaXNUcmltbWFibGVDb250ZW50KGlubGluZVJ1bikpCisgICAg
ICAgICAgICBtX3RyYWlsaW5nVHJpbW1hYmxlQ29udGVudCA9IFRyYWlsaW5nVHJpbW1hYmxlQ29u
dGVudCB7IHJ1bi53aWR0aCwgcnVuTGVuZ3RoIH07CisKKyAgICAgICAgaWYgKGhhZENvbnRlbnQg
JiYgbGFzdFJ1bldhc05vdENvbGxhcHNlZFRleHQpIHsKKyAgICAgICAgICAgIGF1dG8mIGlubGlu
ZVJ1biA9IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmlubGluZVJ1bnMoKS5sYXN0KCk7CisgICAg
ICAgICAgICBpbmxpbmVSdW4uc2V0V2lkdGgoaW5saW5lUnVuLndpZHRoKCkgKyBydW4ud2lkdGgp
OworICAgICAgICAgICAgaW5saW5lUnVuLnRleHRDb250ZXh0KCktPnNldExlbmd0aChpbmxpbmVS
dW4udGV4dENvbnRleHQoKS0+bGVuZ3RoKCkgKyBydW5MZW5ndGgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG1faW5saW5lRm9ybWF0dGluZ1N0YXRl
LmFwcGVuZElubGluZVJ1bih7IGNvbnRlbnRMb2dpY2FsTGVmdCwgcnVuLndpZHRoLCB0ZXh0Q29u
dGV4dC0+c3RhcnQoKSwgcnVuTGVuZ3RoLCBpbmxpbmVSdW4uaW5saW5lSXRlbSgpfSk7CisgICAg
fQorCisgICAgbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuYXBwZW5kSW5saW5lUnVuKHsgY29udGVu
dExvZ2ljYWxMZWZ0LCBydW4ud2lkdGgsIGlubGluZVJ1bi5pbmxpbmVJdGVtKCkgfSk7Cit9CisK
K3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmU6OmNsb3NlKCkKK3sKKyAgICBhdXRv
IHRyaW1UcmFpbGluZ0NvbnRlbnQgPSBbJl0oKSB7CisKKyAgICAgICAgaWYgKCFtX3RyYWlsaW5n
VHJpbW1hYmxlQ29udGVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvJiBs
YXN0SW5saW5lUnVuID0gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5lUnVucygpLmxhc3Qo
KTsKKyAgICAgICAgbGFzdElubGluZVJ1bi5zZXRXaWR0aChsYXN0SW5saW5lUnVuLndpZHRoKCkg
LSBtX3RyYWlsaW5nVHJpbW1hYmxlQ29udGVudC0+d2lkdGgpOworICAgICAgICBsYXN0SW5saW5l
UnVuLnRleHRDb250ZXh0KCktPnNldExlbmd0aChsYXN0SW5saW5lUnVuLnRleHRDb250ZXh0KCkt
Pmxlbmd0aCgpIC0gbV90cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQtPmxlbmd0aCk7CisKKyAgICAg
ICAgaWYgKCFsYXN0SW5saW5lUnVuLnRleHRDb250ZXh0KCktPmxlbmd0aCgpKQorICAgICAgICAg
ICAgbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5lUnVucygpLnJlbW92ZUxhc3QoKTsKKyAg
ICAgICAgbV9hdmFpbGFibGVXaWR0aCArPSBtX3RyYWlsaW5nVHJpbW1hYmxlQ29udGVudC0+d2lk
dGg7CisgICAgICAgIG1fdHJhaWxpbmdUcmltbWFibGVDb250ZW50ID0geyB9OworICAgIH07CisK
KyAgICB0cmltVHJhaWxpbmdDb250ZW50KCk7CisgICAgbV9pc0VtcHR5ID0gdHJ1ZTsKK30KKwor
fQorfQorCisjZW5kaWYK
</data>
<flag name="review"
          id="370026"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>