<?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>181721</bug_id>
          
          <creation_ts>2018-01-16 23:21:03 -0800</creation_ts>
          <short_desc>[Cairo] Move prepareForFilling(), prepareForStroking() code to CairoOperations</short_desc>
          <delta_ts>2018-01-17 01:37:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1389899</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-16 23:21:03 -0800</bug_when>
    <thetext>[Cairo] Move prepareForFilling(), prepareForStroking() code to CairoOperations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389900</commentid>
    <comment_count>1</comment_count>
      <attachid>331472</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-16 23:26:07 -0800</bug_when>
    <thetext>Created attachment 331472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389931</commentid>
    <comment_count>2</comment_count>
      <attachid>331477</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 01:31:51 -0800</bug_when>
    <thetext>Created attachment 331477
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389936</commentid>
    <comment_count>3</comment_count>
      <attachid>331477</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 01:36:01 -0800</bug_when>
    <thetext>Comment on attachment 331477
Patch for landing

Clearing flags on attachment: 331477

Committed r227055: &lt;https://trac.webkit.org/changeset/227055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389937</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 01:36:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389938</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-17 01:37:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/36576494&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331472</attachid>
            <date>2018-01-16 23:26:07 -0800</date>
            <delta_ts>2018-01-17 01:31:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181721-20180117082605.patch</filename>
            <type>text/plain</type>
            <size>14992</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDZkYTMzZDQyMmE3ZjJk
ZTBiNDZiYzNjNTM5OTE5NDhkNzg2ZjJiNS4uMGQyZWZmODM0OWRkYWI2ODdjYzI0NGE4MTgzZTgx
NzhlZmFhYzg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE4LTAxLTE2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIE1vdmUg
cHJlcGFyZUZvckZpbGxpbmcoKSwgcHJlcGFyZUZvclN0cm9raW5nKCkgY29kZSB0byBDYWlyb09w
ZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTcyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgdGhlIHByZXBhcmVGb3JGaWxsaW5nKCkgYW5kIHByZXBhcmVGb3JTdHJva2luZygpIGNv
ZGUgb2ZmIG9mIHRoZQorICAgICAgICBQbGF0Zm9ybUNvbnRleHRDYWlybyBjbGFzcyBhbmQgaW50
byBzdGF0aWMgZnVuY3Rpb25zIGluc2lkZSB0aGUKKyAgICAgICAgQ2Fpcm9PcGVyYXRpb25zIGlt
cGxlbWVudGF0aW9uIGZpbGVzLiBUaGUgb3JpZ2luYWwgbWV0aG9kcyB3ZXJlbid0CisgICAgICAg
IGNhbGxlZCBmcm9tIGFueSBwbGFjZSBvdGhlciB0aGFuIHRoZSBDYWlybyBvcGVyYXRpb25zLCBh
bmQgdGhleSBvbmx5CisgICAgICAgIG9wZXJhdGVkIHdpdGggdGhlIGNhaXJvX3Qgb2JqZWN0IHRo
YXQncyBzdG9yZWQgaW4gYW5kIHJldHJpZXZhYmxlIGZyb20KKyAgICAgICAgdGhlIFBsYXRmb3Jt
Q29udGV4dENhaXJvIG9iamVjdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gbm8gY2hhbmdl
IGluIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9P
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpyZWR1Y2VTb3VyY2VCeUFs
cGhhKToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpwcmVwYXJlQ2Fpcm9Db250ZXh0U291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86
OmRyYXdQYXRoU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsQ3VycmVudENh
aXJvUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6c3Ryb2tlUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWlybzo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6
ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1D
b250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVkdWNlU291cmNlQnlBbHBoYSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlQ2Fpcm9Db250ZXh0U291cmNlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpwcmVwYXJl
Rm9yRmlsbGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRD
YWlybzo6cHJlcGFyZUZvclN0cm9raW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmg6CisK
IDIwMTgtMDEtMTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ2FuJ3Qgc2Nyb2xsIGlmcmFtZSBhZnRlciB0b2dnbGluZyBpdCB0byBkaXNwbGF5Om5v
bmUgYW5kIGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4IGFiM2YyMzYxN2FmYTdjZTNjZWM1
YWRhYTk2MGI2ZDhkNmMzMjk1YjQuLjkxMWExYjNmYjRhMTQ4MTcxZDJlNjY2ZTM0NjEwZjQ4OGU4
ZjI3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtNTAsNiArNTAsMTAwIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgQ2Fpcm8gewogCitlbnVtIFBhdHRlcm5BZGp1c3RtZW50
IHsgTm9BZGp1c3RtZW50LCBBZGp1c3RQYXR0ZXJuRm9yR2xvYmFsQWxwaGEgfTsKK2VudW0gQWxw
aGFQcmVzZXJ2YXRpb24geyBEb05vdFByZXNlcnZlQWxwaGEsIFByZXNlcnZlQWxwaGEgfTsKKwor
c3RhdGljIHZvaWQgcmVkdWNlU291cmNlQnlBbHBoYShjYWlyb190KiBjciwgZmxvYXQgYWxwaGEp
Cit7CisgICAgaWYgKGFscGhhID49IDEpCisgICAgICAgIHJldHVybjsKKyAgICBjYWlyb19wdXNo
X2dyb3VwKGNyKTsKKyAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IsIENBSVJPX09QRVJBVE9SX1NP
VVJDRSk7CisgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgYWxwaGEpOworICAgIGNhaXJv
X3BvcF9ncm91cF90b19zb3VyY2UoY3IpOworfQorCitzdGF0aWMgdm9pZCBwcmVwYXJlQ2Fpcm9D
b250ZXh0U291cmNlKGNhaXJvX3QqIGNyLCBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4sIGNhaXJv
X3BhdHRlcm5fdCogZ3JhZGllbnQsIGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgZ2xvYmFsQWxw
aGEpCit7CisgICAgaWYgKHBhdHRlcm4pIHsKKyAgICAgICAgLy8gUGF0dGVybiBzb3VyY2UKKyAg
ICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgcGF0dGVybik7CisgICAgICAgIHJlZHVjZVNvdXJj
ZUJ5QWxwaGEoY3IsIGdsb2JhbEFscGhhKTsKKyAgICB9IGVsc2UgaWYgKGdyYWRpZW50KSB7Cisg
ICAgICAgIC8vIEdyYWRpZW50IHNvdXJjZQorICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBn
cmFkaWVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29saWQgY29sb3Igc291cmNlCisg
ICAgICAgIGlmIChnbG9iYWxBbHBoYSA8IDEpCisgICAgICAgICAgICBzZXRTb3VyY2VSR0JBRnJv
bUNvbG9yKGNyLCBjb2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBjb2xvci5hbHBo
YSgpIC8gMjU1LmYgKiBnbG9iYWxBbHBoYSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBz
ZXRTb3VyY2VSR0JBRnJvbUNvbG9yKGNyLCBjb2xvcik7CisgICAgfQorfQorCitzdGF0aWMgdm9p
ZCBjbGlwRm9yUGF0dGVybkZpbGxpbmcoY2Fpcm9fdCogY3IsIGNvbnN0IEZsb2F0U2l6ZSYgcGF0
dGVyblNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgYm9vbCBy
ZXBlYXRYLCBib29sIHJlcGVhdFkpCit7CisgICAgLy8gSG9sZCBjdXJyZW50IGNhaXJvIHBhdGgg
aW4gYSB2YXJpYWJsZSBmb3IgcmVzdG9yaW5nIGl0IGFmdGVyIGNvbmZpZ3VyaW5nIHRoZSBwYXR0
ZXJuIGNsaXAgcmVjdGFuZ2xlLgorICAgIGF1dG8gY3VycmVudFBhdGggPSBjYWlyb19jb3B5X3Bh
dGgoY3IpOworICAgIGNhaXJvX25ld19wYXRoKGNyKTsKKworICAgIC8vIEluaXRpYWxpemUgY2xp
cHBpbmcgZXh0ZW50IGZyb20gY3VycmVudCBjYWlybyBjbGlwIGV4dGVudHMsIHRoZW4gc2hyaW5r
IGlmIG5lZWRlZCBhY2NvcmRpbmcgdG8gcGF0dGVybi4KKyAgICAvLyBJbnNwaXJlZCBieSBHcmFw
aGljc0NvbnRleHRRdDo6ZHJhd1JlcGVhdFBhdHRlcm4uCisgICAgZG91YmxlIHgxLCB5MSwgeDIs
IHkyOworICAgIGNhaXJvX2NsaXBfZXh0ZW50cyhjciwgJngxLCAmeTEsICZ4MiwgJnkyKTsKKyAg
ICBGbG9hdFJlY3QgY2xpcFJlY3QoeDEsIHkxLCB4MiAtIHgxLCB5MiAtIHkxKTsKKworICAgIEZs
b2F0UmVjdCBwYXR0ZXJuUmVjdCA9IHBhdHRlcm5UcmFuc2Zvcm0ubWFwUmVjdChGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBwYXR0ZXJuU2l6ZSkpOworCisgICAgaWYgKCFyZXBlYXRYKSB7CisgICAg
ICAgIGNsaXBSZWN0LnNldFgocGF0dGVyblJlY3QueCgpKTsKKyAgICAgICAgY2xpcFJlY3Quc2V0
V2lkdGgocGF0dGVyblJlY3Qud2lkdGgoKSk7CisgICAgfQorICAgIGlmICghcmVwZWF0WSkgewor
ICAgICAgICBjbGlwUmVjdC5zZXRZKHBhdHRlcm5SZWN0LnkoKSk7CisgICAgICAgIGNsaXBSZWN0
LnNldEhlaWdodChwYXR0ZXJuUmVjdC5oZWlnaHQoKSk7CisgICAgfQorICAgIGlmICghcmVwZWF0
WCB8fCAhcmVwZWF0WSkgeworICAgICAgICBjYWlyb19yZWN0YW5nbGUoY3IsIGNsaXBSZWN0Lngo
KSwgY2xpcFJlY3QueSgpLCBjbGlwUmVjdC53aWR0aCgpLCBjbGlwUmVjdC5oZWlnaHQoKSk7Cisg
ICAgICAgIGNhaXJvX2NsaXAoY3IpOworICAgIH0KKworICAgIC8vIFJlc3RvcmluZyBjYWlybyBw
YXRoLgorICAgIGNhaXJvX2FwcGVuZF9wYXRoKGNyLCBjdXJyZW50UGF0aCk7CisgICAgY2Fpcm9f
cGF0aF9kZXN0cm95KGN1cnJlbnRQYXRoKTsKK30KKworc3RhdGljIHZvaWQgcHJlcGFyZUZvckZp
bGxpbmcoY2Fpcm9fdCogY3IsIGNvbnN0IENhaXJvOjpGaWxsU291cmNlJiBmaWxsU291cmNlLCBm
bG9hdCBnbG9iYWxBbHBoYSwgUGF0dGVybkFkanVzdG1lbnQgcGF0dGVybkFkanVzdG1lbnQpCit7
CisgICAgY2Fpcm9fc2V0X2ZpbGxfcnVsZShjciwgZmlsbFNvdXJjZS5maWxsUnVsZSA9PSBSVUxF
X0VWRU5PREQgPyBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lO
RElORyk7CisKKyAgICBib29sIGFkanVzdEZvckFscGhhID0gcGF0dGVybkFkanVzdG1lbnQgPT0g
QWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhOworCisgICAgYXV0byogZ3JhZGllbnQgPSBmaWxs
U291cmNlLmdyYWRpZW50LmJhc2UuZ2V0KCk7CisgICAgaWYgKGFkanVzdEZvckFscGhhICYmIGZp
bGxTb3VyY2UuZ3JhZGllbnQuYWxwaGFBZGp1c3RlZCkKKyAgICAgICAgZ3JhZGllbnQgPSBmaWxs
U291cmNlLmdyYWRpZW50LmFscGhhQWRqdXN0ZWQuZ2V0KCk7CisKKyAgICBwcmVwYXJlQ2Fpcm9D
b250ZXh0U291cmNlKGNyLCBmaWxsU291cmNlLnBhdHRlcm4ub2JqZWN0LmdldCgpLCBncmFkaWVu
dCwKKyAgICAgICAgZmlsbFNvdXJjZS5jb2xvciwgYWRqdXN0Rm9yQWxwaGEgPyBnbG9iYWxBbHBo
YSA6IDEpOworCisgICAgaWYgKGZpbGxTb3VyY2UucGF0dGVybi5vYmplY3QpIHsKKyAgICAgICAg
Y2xpcEZvclBhdHRlcm5GaWxsaW5nKGNyLCBmaWxsU291cmNlLnBhdHRlcm4uc2l6ZSwgZmlsbFNv
dXJjZS5wYXR0ZXJuLnRyYW5zZm9ybSwKKyAgICAgICAgICAgIGZpbGxTb3VyY2UucGF0dGVybi5y
ZXBlYXRYLCBmaWxsU291cmNlLnBhdHRlcm4ucmVwZWF0WSk7CisgICAgfQorfQorCit2b2lkIHBy
ZXBhcmVGb3JTdHJva2luZyhjYWlyb190KiBjciwgY29uc3QgQ2Fpcm86OlN0cm9rZVNvdXJjZSYg
c3Ryb2tlU291cmNlLCBmbG9hdCBnbG9iYWxBbHBoYSwgQWxwaGFQcmVzZXJ2YXRpb24gYWxwaGFQ
cmVzZXJ2YXRpb24pCit7CisgICAgYm9vbCBwcmVzZXJ2ZUFscGhhID0gYWxwaGFQcmVzZXJ2YXRp
b24gPT0gUHJlc2VydmVBbHBoYTsKKworICAgIGF1dG8qIGdyYWRpZW50ID0gc3Ryb2tlU291cmNl
LmdyYWRpZW50LmJhc2UuZ2V0KCk7CisgICAgaWYgKHByZXNlcnZlQWxwaGEgJiYgc3Ryb2tlU291
cmNlLmdyYWRpZW50LmFscGhhQWRqdXN0ZWQpCisgICAgICAgIGdyYWRpZW50ID0gc3Ryb2tlU291
cmNlLmdyYWRpZW50LmFscGhhQWRqdXN0ZWQuZ2V0KCk7CisKKyAgICBwcmVwYXJlQ2Fpcm9Db250
ZXh0U291cmNlKGNyLCBzdHJva2VTb3VyY2UucGF0dGVybi5nZXQoKSwgZ3JhZGllbnQsCisgICAg
ICAgIHN0cm9rZVNvdXJjZS5jb2xvciwgcHJlc2VydmVBbHBoYSA/IGdsb2JhbEFscGhhIDogMSk7
Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUmVjdFdpdGhDb2xvcihjYWlyb190KiBjciwg
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKCFj
b2xvci5pc1Zpc2libGUoKSAmJiBjYWlyb19nZXRfb3BlcmF0b3IoY3IpID09IENBSVJPX09QRVJB
VE9SX09WRVIpCkBAIC0xMDYsMTQgKzIwMCwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJhd1Bh
dGhTaGFkb3coUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRgog
ICAgIGlmIChkcmF3aW5nU3R5bGUgJiBGaWxsKSB7CiAgICAgICAgIGNhaXJvX3NhdmUoY2Fpcm9T
aGFkb3dDb250ZXh0KTsKICAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY2Fpcm9TaGFkb3dDb250
ZXh0LCBwYXRoLmdldCgpKTsKLSAgICAgICAgc2hhZG93Q29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCktPnByZXBhcmVGb3JGaWxsaW5nKGZpbGxTb3VyY2UsIFBsYXRmb3JtQ29udGV4dENhaXJvOjpO
b0FkanVzdG1lbnQpOworICAgICAgICBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb1NoYWRvd0NvbnRl
eHQsIGZpbGxTb3VyY2UsIHNoYWRvd0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5nbG9iYWxB
bHBoYSgpLCBOb0FkanVzdG1lbnQpOwogICAgICAgICBjYWlyb19maWxsKGNhaXJvU2hhZG93Q29u
dGV4dCk7CiAgICAgICAgIGNhaXJvX3Jlc3RvcmUoY2Fpcm9TaGFkb3dDb250ZXh0KTsKICAgICB9
CiAKICAgICBpZiAoZHJhd2luZ1N0eWxlICYgU3Ryb2tlKSB7CiAgICAgICAgIGNhaXJvX2FwcGVu
ZF9wYXRoKGNhaXJvU2hhZG93Q29udGV4dCwgcGF0aC5nZXQoKSk7Ci0gICAgICAgIHNoYWRvd0Nv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9yU3Ryb2tpbmcoc3Ryb2tlU291cmNl
LCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6RG9Ob3RQcmVzZXJ2ZUFscGhhKTsKKyAgICAgICAgcHJl
cGFyZUZvclN0cm9raW5nKGNhaXJvU2hhZG93Q29udGV4dCwgc3Ryb2tlU291cmNlLCBzaGFkb3dD
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2xvYmFsQWxwaGEoKSwgRG9Ob3RQcmVzZXJ2ZUFs
cGhhKTsKICAgICAgICAgY2Fpcm9fc3Ryb2tlKGNhaXJvU2hhZG93Q29udGV4dCk7CiAgICAgfQog
CkBAIC0xMzEsNyArMjI1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZpbGxDdXJyZW50Q2Fpcm9Q
YXRoKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGMKICAgICBjYWlyb190
KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigpOwogICAgIGNhaXJvX3NhdmUoY3IpOwogCi0gICAg
cGxhdGZvcm1Db250ZXh0LnByZXBhcmVGb3JGaWxsaW5nKGZpbGxTb3VyY2UsIFBsYXRmb3JtQ29u
dGV4dENhaXJvOjpBZGp1c3RQYXR0ZXJuRm9yR2xvYmFsQWxwaGEpOworICAgIHByZXBhcmVGb3JG
aWxsaW5nKGNyLCBmaWxsU291cmNlLCBwbGF0Zm9ybUNvbnRleHQuZ2xvYmFsQWxwaGEoKSwgQWRq
dXN0UGF0dGVybkZvckdsb2JhbEFscGhhKTsKICAgICBjYWlyb19maWxsKGNyKTsKIAogICAgIGNh
aXJvX3Jlc3RvcmUoY3IpOwpAQCAtNjI2LDcgKzcyMCw3IEBAIHZvaWQgc3Ryb2tlUmVjdChQbGF0
Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IGZsCiAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY3IsIGxpbmVX
aWR0aCk7CiAgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNv
dXJjZSwgdGFyZ2V0Q29udGV4dCwgU3Ryb2tlKTsKLSAgICBwbGF0Zm9ybUNvbnRleHQucHJlcGFy
ZUZvclN0cm9raW5nKHN0cm9rZVNvdXJjZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OlByZXNlcnZl
QWxwaGEpOworICAgIHByZXBhcmVGb3JTdHJva2luZyhjciwgc3Ryb2tlU291cmNlLCBwbGF0Zm9y
bUNvbnRleHQuZ2xvYmFsQWxwaGEoKSwgUHJlc2VydmVBbHBoYSk7CiAgICAgY2Fpcm9fc3Ryb2tl
KGNyKTsKIAogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwpAQCAtNjM4LDcgKzczMiw3IEBAIHZvaWQg
c3Ryb2tlUGF0aChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBQ
YXRoJiBwYXRoLCBjb25zdCBTCiAKICAgICBzZXRQYXRoT25DYWlyb0NvbnRleHQoY3IsIHBhdGgu
cGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7CiAgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1D
b250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwgdGFyZ2V0Q29udGV4dCwgU3Ryb2tlKTsKLSAgICBw
bGF0Zm9ybUNvbnRleHQucHJlcGFyZUZvclN0cm9raW5nKHN0cm9rZVNvdXJjZSwgUGxhdGZvcm1D
b250ZXh0Q2Fpcm86OlByZXNlcnZlQWxwaGEpOworICAgIHByZXBhcmVGb3JTdHJva2luZyhjciwg
c3Ryb2tlU291cmNlLCBwbGF0Zm9ybUNvbnRleHQuZ2xvYmFsQWxwaGEoKSwgUHJlc2VydmVBbHBo
YSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKIH0KIApAQCAtNjYxLDcgKzc1NSw3IEBAIHZvaWQg
ZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBG
aWxsU291cmNlJiBmaWxsU291CiAgICAgY2Fpcm9fc2F2ZShjcik7CiAKICAgICBpZiAodGV4dERy
YXdpbmdNb2RlICYgVGV4dE1vZGVGaWxsKSB7Ci0gICAgICAgIHBsYXRmb3JtQ29udGV4dC5wcmVw
YXJlRm9yRmlsbGluZyhmaWxsU291cmNlLCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6QWRqdXN0UGF0
dGVybkZvckdsb2JhbEFscGhhKTsKKyAgICAgICAgcHJlcGFyZUZvckZpbGxpbmcoY3IsIGZpbGxT
b3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxBbHBoYSgpLCBBZGp1c3RQYXR0ZXJuRm9yR2xv
YmFsQWxwaGEpOwogICAgICAgICBkcmF3R2x5cGhzVG9Db250ZXh0KGNyLCBzY2FsZWRGb250LCBz
eW50aGV0aWNCb2xkT2Zmc2V0LCBnbHlwaHMpOwogICAgIH0KIApAQCAtNjcwLDcgKzc2NCw3IEBA
IHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBj
b25zdCBGaWxsU291cmNlJiBmaWxsU291CiAgICAgLy8gdGhlIHRleHQgYXMgZXZlbiBvbmUgc2lu
Z2xlIHN0cm9rZSB3b3VsZCBjb3ZlciB0aGUgZnVsbCB3ZHRoIG9mIHRoZSB0ZXh0LgogICAgIC8v
ICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNzU5LgogICAg
IGlmICh0ZXh0RHJhd2luZ01vZGUgJiBUZXh0TW9kZVN0cm9rZSAmJiBzdHJva2VUaGlja25lc3Mg
PCAyICogeE9mZnNldCkgewotICAgICAgICBwbGF0Zm9ybUNvbnRleHQucHJlcGFyZUZvclN0cm9r
aW5nKHN0cm9rZVNvdXJjZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OlByZXNlcnZlQWxwaGEpOwor
ICAgICAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY3IsIHN0cm9rZVNvdXJjZSwgcGxhdGZvcm1Db250
ZXh0Lmdsb2JhbEFscGhhKCksIFByZXNlcnZlQWxwaGEpOwogICAgICAgICBjYWlyb19zZXRfbGlu
ZV93aWR0aChjciwgc3Ryb2tlVGhpY2tuZXNzKTsKIAogICAgICAgICAvLyBUaGlzIG1heSBkaXN0
dXJiIHRoZSBDVE0sIGJ1dCB3ZSBhcmUgZ29pbmcgdG8gY2FsbCBjYWlyb19yZXN0b3JlIHNvb24g
YWZ0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKaW5kZXggNmEzY2M3NThmNzZmZjY5
NWY1Njk5Yjg4MWY5Y2I4ODY3ZGQ2NGY1OS4uZDc1ZjMxNzNlMjk0YTgwOWNlNmUyMzIzYjg3Yjk1
MzQ4YmQ0MjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcApAQCAtMjU0LDk3ICsy
NTQsNiBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpzZXRHbG9iYWxBbHBoYShmbG9hdCBn
bG9iYWxBbHBoYSkKICAgICBtX3N0YXRlLT5tX2dsb2JhbEFscGhhID0gZ2xvYmFsQWxwaGE7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCByZWR1Y2VTb3VyY2VCeUFscGhhKGNhaXJvX3QqIGNyLCBm
bG9hdCBhbHBoYSkKLXsKLSAgICBpZiAoYWxwaGEgPj0gMSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGNhaXJvX3B1c2hfZ3JvdXAoY3IpOwotICAgIGNhaXJvX3NldF9vcGVyYXRvcihjciwgQ0FJUk9f
T1BFUkFUT1JfU09VUkNFKTsKLSAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBhbHBoYSk7
Ci0gICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShjcik7Ci19Ci0KLXN0YXRpYyB2b2lkIHBy
ZXBhcmVDYWlyb0NvbnRleHRTb3VyY2UoY2Fpcm9fdCogY3IsIGNhaXJvX3BhdHRlcm5fdCogcGF0
dGVybiwgY2Fpcm9fcGF0dGVybl90KiBncmFkaWVudCwgY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9h
dCBnbG9iYWxBbHBoYSkKLXsKLSAgICBpZiAocGF0dGVybikgewotICAgICAgICAvLyBQYXR0ZXJu
IHNvdXJjZQotICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBwYXR0ZXJuKTsKLSAgICAgICAg
cmVkdWNlU291cmNlQnlBbHBoYShjciwgZ2xvYmFsQWxwaGEpOwotICAgIH0gZWxzZSBpZiAoZ3Jh
ZGllbnQpIHsKLSAgICAgICAgLy8gR3JhZGllbnQgc291cmNlCi0gICAgICAgIGNhaXJvX3NldF9z
b3VyY2UoY3IsIGdyYWRpZW50KTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBTb2xpZCBjb2xv
ciBzb3VyY2UKLSAgICAgICAgaWYgKGdsb2JhbEFscGhhIDwgMSkKLSAgICAgICAgICAgIHNldFNv
dXJjZVJHQkFGcm9tQ29sb3IoY3IsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCks
IGNvbG9yLmFscGhhKCkgLyAyNTUuZiAqIGdsb2JhbEFscGhhKSk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY3IsIGNvbG9yKTsKLSAgICB9Ci19Ci0K
LXZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKGNvbnN0IENhaXJv
OjpGaWxsU291cmNlJiBmaWxsU291cmNlLCBQYXR0ZXJuQWRqdXN0bWVudCBwYXR0ZXJuQWRqdXN0
bWVudCkKLXsKLSAgICBjYWlyb19zZXRfZmlsbF9ydWxlKG1fY3IuZ2V0KCksIGZpbGxTb3VyY2Uu
ZmlsbFJ1bGUgPT0gUlVMRV9FVkVOT0REID8gQ0FJUk9fRklMTF9SVUxFX0VWRU5fT0REIDogQ0FJ
Uk9fRklMTF9SVUxFX1dJTkRJTkcpOwotCi0gICAgYm9vbCBhZGp1c3RGb3JBbHBoYSA9IHBhdHRl
cm5BZGp1c3RtZW50ID09IEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYTsKLQotICAgIGF1dG8q
IGdyYWRpZW50ID0gZmlsbFNvdXJjZS5ncmFkaWVudC5iYXNlLmdldCgpOwotICAgIGlmIChhZGp1
c3RGb3JBbHBoYSAmJiBmaWxsU291cmNlLmdyYWRpZW50LmFscGhhQWRqdXN0ZWQpCi0gICAgICAg
IGdyYWRpZW50ID0gZmlsbFNvdXJjZS5ncmFkaWVudC5hbHBoYUFkanVzdGVkLmdldCgpOwotCi0g
ICAgcHJlcGFyZUNhaXJvQ29udGV4dFNvdXJjZShtX2NyLmdldCgpLCBmaWxsU291cmNlLnBhdHRl
cm4ub2JqZWN0LmdldCgpLCBncmFkaWVudCwKLSAgICAgICAgZmlsbFNvdXJjZS5jb2xvciwgYWRq
dXN0Rm9yQWxwaGEgPyBnbG9iYWxBbHBoYSgpIDogMSk7Ci0KLSAgICBpZiAoZmlsbFNvdXJjZS5w
YXR0ZXJuLm9iamVjdCkgewotICAgICAgICBjbGlwRm9yUGF0dGVybkZpbGxpbmcoZmlsbFNvdXJj
ZS5wYXR0ZXJuLnNpemUsIGZpbGxTb3VyY2UucGF0dGVybi50cmFuc2Zvcm0sCi0gICAgICAgICAg
ICBmaWxsU291cmNlLnBhdHRlcm4ucmVwZWF0WCwgZmlsbFNvdXJjZS5wYXR0ZXJuLnJlcGVhdFkp
OwotICAgIH0KLX0KLQotdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6cHJlcGFyZUZvclN0cm9r
aW5nKGNvbnN0IENhaXJvOjpTdHJva2VTb3VyY2UmIHN0cm9rZVNvdXJjZSwgQWxwaGFQcmVzZXJ2
YXRpb24gYWxwaGFQcmVzZXJ2YXRpb24pCi17Ci0gICAgYm9vbCBwcmVzZXJ2ZUFscGhhID0gYWxw
aGFQcmVzZXJ2YXRpb24gPT0gUHJlc2VydmVBbHBoYTsKLQotICAgIGF1dG8qIGdyYWRpZW50ID0g
c3Ryb2tlU291cmNlLmdyYWRpZW50LmJhc2UuZ2V0KCk7Ci0gICAgaWYgKHByZXNlcnZlQWxwaGEg
JiYgc3Ryb2tlU291cmNlLmdyYWRpZW50LmFscGhhQWRqdXN0ZWQpCi0gICAgICAgIGdyYWRpZW50
ID0gc3Ryb2tlU291cmNlLmdyYWRpZW50LmFscGhhQWRqdXN0ZWQuZ2V0KCk7Ci0KLSAgICBwcmVw
YXJlQ2Fpcm9Db250ZXh0U291cmNlKG1fY3IuZ2V0KCksIHN0cm9rZVNvdXJjZS5wYXR0ZXJuLmdl
dCgpLCBncmFkaWVudCwKLSAgICAgICAgc3Ryb2tlU291cmNlLmNvbG9yLCBwcmVzZXJ2ZUFscGhh
ID8gZ2xvYmFsQWxwaGEoKSA6IDEpOwotfQotCi12b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpj
bGlwRm9yUGF0dGVybkZpbGxpbmcoY29uc3QgRmxvYXRTaXplJiBwYXR0ZXJuU2l6ZSwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBib29sIHJlcGVhdFgsIGJvb2wgcmVw
ZWF0WSkKLXsKLSAgICAvLyBIb2xkIGN1cnJlbnQgY2Fpcm8gcGF0aCBpbiBhIHZhcmlhYmxlIGZv
ciByZXN0b3JpbmcgaXQgYWZ0ZXIgY29uZmlndXJpbmcgdGhlIHBhdHRlcm4gY2xpcCByZWN0YW5n
bGUuCi0gICAgYXV0byBjdXJyZW50UGF0aCA9IGNhaXJvX2NvcHlfcGF0aChtX2NyLmdldCgpKTsK
LSAgICBjYWlyb19uZXdfcGF0aChtX2NyLmdldCgpKTsKLQotICAgIC8vIEluaXRpYWxpemUgY2xp
cHBpbmcgZXh0ZW50IGZyb20gY3VycmVudCBjYWlybyBjbGlwIGV4dGVudHMsIHRoZW4gc2hyaW5r
IGlmIG5lZWRlZCBhY2NvcmRpbmcgdG8gcGF0dGVybi4KLSAgICAvLyBJbnNwaXJlZCBieSBHcmFw
aGljc0NvbnRleHRRdDo6ZHJhd1JlcGVhdFBhdHRlcm4uCi0gICAgZG91YmxlIHgxLCB5MSwgeDIs
IHkyOwotICAgIGNhaXJvX2NsaXBfZXh0ZW50cyhtX2NyLmdldCgpLCAmeDEsICZ5MSwgJngyLCAm
eTIpOwotICAgIEZsb2F0UmVjdCBjbGlwUmVjdCh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEpOwot
Ci0gICAgRmxvYXRSZWN0IHBhdHRlcm5SZWN0ID0gcGF0dGVyblRyYW5zZm9ybS5tYXBSZWN0KEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIHBhdHRlcm5TaXplKSk7Ci0KLSAgICBpZiAoIXJlcGVhdFgp
IHsKLSAgICAgICAgY2xpcFJlY3Quc2V0WChwYXR0ZXJuUmVjdC54KCkpOwotICAgICAgICBjbGlw
UmVjdC5zZXRXaWR0aChwYXR0ZXJuUmVjdC53aWR0aCgpKTsKLSAgICB9Ci0gICAgaWYgKCFyZXBl
YXRZKSB7Ci0gICAgICAgIGNsaXBSZWN0LnNldFkocGF0dGVyblJlY3QueSgpKTsKLSAgICAgICAg
Y2xpcFJlY3Quc2V0SGVpZ2h0KHBhdHRlcm5SZWN0LmhlaWdodCgpKTsKLSAgICB9Ci0gICAgaWYg
KCFyZXBlYXRYIHx8ICFyZXBlYXRZKSB7Ci0gICAgICAgIGNhaXJvX3JlY3RhbmdsZShtX2NyLmdl
dCgpLCBjbGlwUmVjdC54KCksIGNsaXBSZWN0LnkoKSwgY2xpcFJlY3Qud2lkdGgoKSwgY2xpcFJl
Y3QuaGVpZ2h0KCkpOwotICAgICAgICBjYWlyb19jbGlwKG1fY3IuZ2V0KCkpOwotICAgIH0KLQot
ICAgIC8vIFJlc3RvcmluZyBjYWlybyBwYXRoLgotICAgIGNhaXJvX2FwcGVuZF9wYXRoKG1fY3Iu
Z2V0KCksIGN1cnJlbnRQYXRoKTsKLSAgICBjYWlyb19wYXRoX2Rlc3Ryb3koY3VycmVudFBhdGgp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ0FJUk8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9y
bUNvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAppbmRleCAxOGRmYjUyYTAxZTg1N2U1ZTQyYWZlOTczZmM0
MTZmY2JlNDc1MjE4Li4wYTM0M2Q5ZGJhOTY3NjhmYThlZDdlYzljZjhiMzQyZmNjY2IwMGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9y
bUNvbnRleHRDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKQEAgLTczLDE1ICs3Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvblF1YWxpdHkp
OwogICAgIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSBj
b25zdDsKIAotICAgIGVudW0gUGF0dGVybkFkanVzdG1lbnQgeyBOb0FkanVzdG1lbnQsIEFkanVz
dFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSB9OwotICAgIHZvaWQgcHJlcGFyZUZvckZpbGxpbmcoY29u
c3QgQ2Fpcm86OkZpbGxTb3VyY2UmLCBQYXR0ZXJuQWRqdXN0bWVudCk7Ci0KLSAgICBlbnVtIEFs
cGhhUHJlc2VydmF0aW9uIHsgRG9Ob3RQcmVzZXJ2ZUFscGhhLCBQcmVzZXJ2ZUFscGhhIH07Ci0g
ICAgdm9pZCBwcmVwYXJlRm9yU3Ryb2tpbmcoY29uc3QgQ2Fpcm86OlN0cm9rZVNvdXJjZSYsIEFs
cGhhUHJlc2VydmF0aW9uKTsKLQogcHJpdmF0ZToKLSAgICB2b2lkIGNsaXBGb3JQYXR0ZXJuRmls
bGluZyhjb25zdCBGbG9hdFNpemUmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBib29sLCBib29s
KTsKLQogICAgIFJlZlB0cjxjYWlyb190PiBtX2NyOwogCiAgICAgLy8gS2VlcGluZyBhIHBvaW50
ZXIgdG8gR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlIGhlcmUgZW5hYmxlcyBjYWxsaW5n
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331477</attachid>
            <date>2018-01-17 01:31:51 -0800</date>
            <delta_ts>2018-01-17 01:31:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181721-20180117103149.patch</filename>
            <type>text/plain</type>
            <size>15083</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRiNjJmNTRlN2M5YWYx
OTIwYTdmZDFlOGUwMTgwZmMzZGQ4YmJjMS4uNDE0YjdkMjVmOTlkM2UwZjBkNmRhNzBiMDVhZTYz
NWJjMzBkMTA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDE4LTAxLTE3ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ2Fpcm9dIE1vdmUg
cHJlcGFyZUZvckZpbGxpbmcoKSwgcHJlcGFyZUZvclN0cm9raW5nKCkgY29kZSB0byBDYWlyb09w
ZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTcyMQorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgorCisg
ICAgICAgIE1vdmUgdGhlIHByZXBhcmVGb3JGaWxsaW5nKCkgYW5kIHByZXBhcmVGb3JTdHJva2lu
ZygpIGNvZGUgb2ZmIG9mIHRoZQorICAgICAgICBQbGF0Zm9ybUNvbnRleHRDYWlybyBjbGFzcyBh
bmQgaW50byBzdGF0aWMgZnVuY3Rpb25zIGluc2lkZSB0aGUKKyAgICAgICAgQ2Fpcm9PcGVyYXRp
b25zIGltcGxlbWVudGF0aW9uIGZpbGVzLiBUaGUgb3JpZ2luYWwgbWV0aG9kcyB3ZXJlbid0Cisg
ICAgICAgIGNhbGxlZCBmcm9tIGFueSBwbGFjZSBvdGhlciB0aGFuIHRoZSBDYWlybyBvcGVyYXRp
b25zLCBhbmQgdGhleSBvbmx5CisgICAgICAgIG9wZXJhdGVkIHdpdGggdGhlIGNhaXJvX3Qgb2Jq
ZWN0IHRoYXQncyBzdG9yZWQgaW4gYW5kIHJldHJpZXZhYmxlIGZyb20KKyAgICAgICAgdGhlIFBs
YXRmb3JtQ29udGV4dENhaXJvIG9iamVjdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gbm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Q2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpyZWR1Y2VTb3Vy
Y2VCeUFscGhhKToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpwcmVwYXJlQ2Fpcm9Db250ZXh0
U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q2Fpcm86OmRyYXdQYXRoU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsQ3Vy
cmVudENhaXJvUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6c3Ryb2tlUmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWlybzo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWlybzo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxh
dGZvcm1Db250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVkdWNlU291cmNlQnlB
bHBoYSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlQ2Fpcm9Db250ZXh0U291
cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpw
cmVwYXJlRm9yRmlsbGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNv
bnRleHRDYWlybzo6cHJlcGFyZUZvclN0cm9raW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJv
Lmg6CisKKzIwMTgtMDEtMTcgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgor
CiAgICAgICAgIFtDYWlyb10gVXNlIG9uZS10aW1lIFNoYWRvd0JsdXIgb2JqZWN0cyB3aGVuIHBl
cmZvcm1pbmcgc2hhZG93aW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODE3MjAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5kZXggZDg5YTFkMWNjN2Mx
N2I1Y2FiMmU3ZmE4YTFiZWI1NmFlZDBiNjQ1NC4uYmU1ZGI3YmU3YmI1NzVjYzJmMzQ0MmM5OTVk
N2EwZTA4ZTYxODA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC01MCw2ICs1MCwxMDAgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBDYWlybyB7CiAKK2VudW0gUGF0dGVybkFk
anVzdG1lbnQgeyBOb0FkanVzdG1lbnQsIEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSB9Owor
ZW51bSBBbHBoYVByZXNlcnZhdGlvbiB7IERvTm90UHJlc2VydmVBbHBoYSwgUHJlc2VydmVBbHBo
YSB9OworCitzdGF0aWMgdm9pZCByZWR1Y2VTb3VyY2VCeUFscGhhKGNhaXJvX3QqIGNyLCBmbG9h
dCBhbHBoYSkKK3sKKyAgICBpZiAoYWxwaGEgPj0gMSkKKyAgICAgICAgcmV0dXJuOworICAgIGNh
aXJvX3B1c2hfZ3JvdXAoY3IpOworICAgIGNhaXJvX3NldF9vcGVyYXRvcihjciwgQ0FJUk9fT1BF
UkFUT1JfU09VUkNFKTsKKyAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBhbHBoYSk7Cisg
ICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShjcik7Cit9CisKK3N0YXRpYyB2b2lkIHByZXBh
cmVDYWlyb0NvbnRleHRTb3VyY2UoY2Fpcm9fdCogY3IsIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVy
biwgY2Fpcm9fcGF0dGVybl90KiBncmFkaWVudCwgY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCBn
bG9iYWxBbHBoYSkKK3sKKyAgICBpZiAocGF0dGVybikgeworICAgICAgICAvLyBQYXR0ZXJuIHNv
dXJjZQorICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBwYXR0ZXJuKTsKKyAgICAgICAgcmVk
dWNlU291cmNlQnlBbHBoYShjciwgZ2xvYmFsQWxwaGEpOworICAgIH0gZWxzZSBpZiAoZ3JhZGll
bnQpIHsKKyAgICAgICAgLy8gR3JhZGllbnQgc291cmNlCisgICAgICAgIGNhaXJvX3NldF9zb3Vy
Y2UoY3IsIGdyYWRpZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb2xpZCBjb2xvciBz
b3VyY2UKKyAgICAgICAgaWYgKGdsb2JhbEFscGhhIDwgMSkKKyAgICAgICAgICAgIHNldFNvdXJj
ZVJHQkFGcm9tQ29sb3IoY3IsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCksIGNv
bG9yLmFscGhhKCkgLyAyNTUuZiAqIGdsb2JhbEFscGhhKSk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY3IsIGNvbG9yKTsKKyAgICB9Cit9CisKK3N0
YXRpYyB2b2lkIGNsaXBGb3JQYXR0ZXJuRmlsbGluZyhjYWlyb190KiBjciwgY29uc3QgRmxvYXRT
aXplJiBwYXR0ZXJuU2l6ZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3Jt
LCBib29sIHJlcGVhdFgsIGJvb2wgcmVwZWF0WSkKK3sKKyAgICAvLyBIb2xkIGN1cnJlbnQgY2Fp
cm8gcGF0aCBpbiBhIHZhcmlhYmxlIGZvciByZXN0b3JpbmcgaXQgYWZ0ZXIgY29uZmlndXJpbmcg
dGhlIHBhdHRlcm4gY2xpcCByZWN0YW5nbGUuCisgICAgYXV0byBjdXJyZW50UGF0aCA9IGNhaXJv
X2NvcHlfcGF0aChjcik7CisgICAgY2Fpcm9fbmV3X3BhdGgoY3IpOworCisgICAgLy8gSW5pdGlh
bGl6ZSBjbGlwcGluZyBleHRlbnQgZnJvbSBjdXJyZW50IGNhaXJvIGNsaXAgZXh0ZW50cywgdGhl
biBzaHJpbmsgaWYgbmVlZGVkIGFjY29yZGluZyB0byBwYXR0ZXJuLgorICAgIC8vIEluc3BpcmVk
IGJ5IEdyYXBoaWNzQ29udGV4dFF0OjpkcmF3UmVwZWF0UGF0dGVybi4KKyAgICBkb3VibGUgeDEs
IHkxLCB4MiwgeTI7CisgICAgY2Fpcm9fY2xpcF9leHRlbnRzKGNyLCAmeDEsICZ5MSwgJngyLCAm
eTIpOworICAgIEZsb2F0UmVjdCBjbGlwUmVjdCh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEpOwor
CisgICAgRmxvYXRSZWN0IHBhdHRlcm5SZWN0ID0gcGF0dGVyblRyYW5zZm9ybS5tYXBSZWN0KEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIHBhdHRlcm5TaXplKSk7CisKKyAgICBpZiAoIXJlcGVhdFgp
IHsKKyAgICAgICAgY2xpcFJlY3Quc2V0WChwYXR0ZXJuUmVjdC54KCkpOworICAgICAgICBjbGlw
UmVjdC5zZXRXaWR0aChwYXR0ZXJuUmVjdC53aWR0aCgpKTsKKyAgICB9CisgICAgaWYgKCFyZXBl
YXRZKSB7CisgICAgICAgIGNsaXBSZWN0LnNldFkocGF0dGVyblJlY3QueSgpKTsKKyAgICAgICAg
Y2xpcFJlY3Quc2V0SGVpZ2h0KHBhdHRlcm5SZWN0LmhlaWdodCgpKTsKKyAgICB9CisgICAgaWYg
KCFyZXBlYXRYIHx8ICFyZXBlYXRZKSB7CisgICAgICAgIGNhaXJvX3JlY3RhbmdsZShjciwgY2xp
cFJlY3QueCgpLCBjbGlwUmVjdC55KCksIGNsaXBSZWN0LndpZHRoKCksIGNsaXBSZWN0LmhlaWdo
dCgpKTsKKyAgICAgICAgY2Fpcm9fY2xpcChjcik7CisgICAgfQorCisgICAgLy8gUmVzdG9yaW5n
IGNhaXJvIHBhdGguCisgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY3IsIGN1cnJlbnRQYXRoKTsKKyAg
ICBjYWlyb19wYXRoX2Rlc3Ryb3koY3VycmVudFBhdGgpOworfQorCitzdGF0aWMgdm9pZCBwcmVw
YXJlRm9yRmlsbGluZyhjYWlyb190KiBjciwgY29uc3QgQ2Fpcm86OkZpbGxTb3VyY2UmIGZpbGxT
b3VyY2UsIGZsb2F0IGdsb2JhbEFscGhhLCBQYXR0ZXJuQWRqdXN0bWVudCBwYXR0ZXJuQWRqdXN0
bWVudCkKK3sKKyAgICBjYWlyb19zZXRfZmlsbF9ydWxlKGNyLCBmaWxsU291cmNlLmZpbGxSdWxl
ID09IFJVTEVfRVZFTk9ERCA/IENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCA6IENBSVJPX0ZJTExf
UlVMRV9XSU5ESU5HKTsKKworICAgIGJvb2wgYWRqdXN0Rm9yQWxwaGEgPSBwYXR0ZXJuQWRqdXN0
bWVudCA9PSBBZGp1c3RQYXR0ZXJuRm9yR2xvYmFsQWxwaGE7CisKKyAgICBhdXRvKiBncmFkaWVu
dCA9IGZpbGxTb3VyY2UuZ3JhZGllbnQuYmFzZS5nZXQoKTsKKyAgICBpZiAoYWRqdXN0Rm9yQWxw
aGEgJiYgZmlsbFNvdXJjZS5ncmFkaWVudC5hbHBoYUFkanVzdGVkKQorICAgICAgICBncmFkaWVu
dCA9IGZpbGxTb3VyY2UuZ3JhZGllbnQuYWxwaGFBZGp1c3RlZC5nZXQoKTsKKworICAgIHByZXBh
cmVDYWlyb0NvbnRleHRTb3VyY2UoY3IsIGZpbGxTb3VyY2UucGF0dGVybi5vYmplY3QuZ2V0KCks
IGdyYWRpZW50LAorICAgICAgICBmaWxsU291cmNlLmNvbG9yLCBhZGp1c3RGb3JBbHBoYSA/IGds
b2JhbEFscGhhIDogMSk7CisKKyAgICBpZiAoZmlsbFNvdXJjZS5wYXR0ZXJuLm9iamVjdCkgewor
ICAgICAgICBjbGlwRm9yUGF0dGVybkZpbGxpbmcoY3IsIGZpbGxTb3VyY2UucGF0dGVybi5zaXpl
LCBmaWxsU291cmNlLnBhdHRlcm4udHJhbnNmb3JtLAorICAgICAgICAgICAgZmlsbFNvdXJjZS5w
YXR0ZXJuLnJlcGVhdFgsIGZpbGxTb3VyY2UucGF0dGVybi5yZXBlYXRZKTsKKyAgICB9Cit9CisK
K3ZvaWQgcHJlcGFyZUZvclN0cm9raW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6U3Ryb2tl
U291cmNlJiBzdHJva2VTb3VyY2UsIGZsb2F0IGdsb2JhbEFscGhhLCBBbHBoYVByZXNlcnZhdGlv
biBhbHBoYVByZXNlcnZhdGlvbikKK3sKKyAgICBib29sIHByZXNlcnZlQWxwaGEgPSBhbHBoYVBy
ZXNlcnZhdGlvbiA9PSBQcmVzZXJ2ZUFscGhhOworCisgICAgYXV0byogZ3JhZGllbnQgPSBzdHJv
a2VTb3VyY2UuZ3JhZGllbnQuYmFzZS5nZXQoKTsKKyAgICBpZiAocHJlc2VydmVBbHBoYSAmJiBz
dHJva2VTb3VyY2UuZ3JhZGllbnQuYWxwaGFBZGp1c3RlZCkKKyAgICAgICAgZ3JhZGllbnQgPSBz
dHJva2VTb3VyY2UuZ3JhZGllbnQuYWxwaGFBZGp1c3RlZC5nZXQoKTsKKworICAgIHByZXBhcmVD
YWlyb0NvbnRleHRTb3VyY2UoY3IsIHN0cm9rZVNvdXJjZS5wYXR0ZXJuLmdldCgpLCBncmFkaWVu
dCwKKyAgICAgICAgc3Ryb2tlU291cmNlLmNvbG9yLCBwcmVzZXJ2ZUFscGhhID8gZ2xvYmFsQWxw
aGEgOiAxKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSZWN0V2l0aENvbG9yKGNhaXJv
X3QqIGNyLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAg
ICBpZiAoIWNvbG9yLmlzVmlzaWJsZSgpICYmIGNhaXJvX2dldF9vcGVyYXRvcihjcikgPT0gQ0FJ
Uk9fT1BFUkFUT1JfT1ZFUikKQEAgLTEwNiwxNCArMjAwLDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBkcmF3UGF0aFNoYWRvdyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBj
b25zdCBGCiAgICAgaWYgKGRyYXdpbmdTdHlsZSAmIEZpbGwpIHsKICAgICAgICAgY2Fpcm9fc2F2
ZShjYWlyb1NoYWRvd0NvbnRleHQpOwogICAgICAgICBjYWlyb19hcHBlbmRfcGF0aChjYWlyb1No
YWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOwotICAgICAgICBzaGFkb3dDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoZmlsbFNvdXJjZSwgUGxhdGZvcm1Db250ZXh0
Q2Fpcm86Ok5vQWRqdXN0bWVudCk7CisgICAgICAgIHByZXBhcmVGb3JGaWxsaW5nKGNhaXJvU2hh
ZG93Q29udGV4dCwgZmlsbFNvdXJjZSwgc2hhZG93Q29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkt
Pmdsb2JhbEFscGhhKCksIE5vQWRqdXN0bWVudCk7CiAgICAgICAgIGNhaXJvX2ZpbGwoY2Fpcm9T
aGFkb3dDb250ZXh0KTsKICAgICAgICAgY2Fpcm9fcmVzdG9yZShjYWlyb1NoYWRvd0NvbnRleHQp
OwogICAgIH0KIAogICAgIGlmIChkcmF3aW5nU3R5bGUgJiBTdHJva2UpIHsKICAgICAgICAgY2Fp
cm9fYXBwZW5kX3BhdGgoY2Fpcm9TaGFkb3dDb250ZXh0LCBwYXRoLmdldCgpKTsKLSAgICAgICAg
c2hhZG93Q29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTdHJva2luZyhzdHJv
a2VTb3VyY2UsIFBsYXRmb3JtQ29udGV4dENhaXJvOjpEb05vdFByZXNlcnZlQWxwaGEpOworICAg
ICAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY2Fpcm9TaGFkb3dDb250ZXh0LCBzdHJva2VTb3VyY2Us
IHNoYWRvd0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5nbG9iYWxBbHBoYSgpLCBEb05vdFBy
ZXNlcnZlQWxwaGEpOwogICAgICAgICBjYWlyb19zdHJva2UoY2Fpcm9TaGFkb3dDb250ZXh0KTsK
ICAgICB9CiAKQEAgLTEzMSw3ICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbEN1cnJl
bnRDYWlyb1BhdGgoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgYwogICAg
IGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CiAgICAgY2Fpcm9fc2F2ZShjcik7
CiAKLSAgICBwbGF0Zm9ybUNvbnRleHQucHJlcGFyZUZvckZpbGxpbmcoZmlsbFNvdXJjZSwgUGxh
dGZvcm1Db250ZXh0Q2Fpcm86OkFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7CisgICAgcHJl
cGFyZUZvckZpbGxpbmcoY3IsIGZpbGxTb3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxBbHBo
YSgpLCBBZGp1c3RQYXR0ZXJuRm9yR2xvYmFsQWxwaGEpOwogICAgIGNhaXJvX2ZpbGwoY3IpOwog
CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CkBAIC02MjYsNyArNzIwLDcgQEAgdm9pZCBzdHJva2VS
ZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCwgZmwKICAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3QueCgpLCByZWN0LnkoKSwg
cmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKICAgICBjYWlyb19zZXRfbGluZV93aWR0aChj
ciwgbGluZVdpZHRoKTsKICAgICBkcmF3UGF0aFNoYWRvdyhwbGF0Zm9ybUNvbnRleHQsIHsgfSwg
c3Ryb2tlU291cmNlLCBzaGFkb3dTdGF0ZSwgdGFyZ2V0Q29udGV4dCwgU3Ryb2tlKTsKLSAgICBw
bGF0Zm9ybUNvbnRleHQucHJlcGFyZUZvclN0cm9raW5nKHN0cm9rZVNvdXJjZSwgUGxhdGZvcm1D
b250ZXh0Q2Fpcm86OlByZXNlcnZlQWxwaGEpOworICAgIHByZXBhcmVGb3JTdHJva2luZyhjciwg
c3Ryb2tlU291cmNlLCBwbGF0Zm9ybUNvbnRleHQuZ2xvYmFsQWxwaGEoKSwgUHJlc2VydmVBbHBo
YSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKIAogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwpAQCAt
NjM4LDcgKzczMiw3IEBAIHZvaWQgc3Ryb2tlUGF0aChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBjb25zdCBQYXRoJiBwYXRoLCBjb25zdCBTCiAKICAgICBzZXRQYXRoT25D
YWlyb0NvbnRleHQoY3IsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7CiAgICAgZHJh
d1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwgc2hhZG93U3Rh
dGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7Ci0gICAgcGxhdGZvcm1Db250ZXh0LnByZXBhcmVG
b3JTdHJva2luZyhzdHJva2VTb3VyY2UsIFBsYXRmb3JtQ29udGV4dENhaXJvOjpQcmVzZXJ2ZUFs
cGhhKTsKKyAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY3IsIHN0cm9rZVNvdXJjZSwgcGxhdGZvcm1D
b250ZXh0Lmdsb2JhbEFscGhhKCksIFByZXNlcnZlQWxwaGEpOwogICAgIGNhaXJvX3N0cm9rZShj
cik7CiB9CiAKQEAgLTY2MSw3ICs3NTUsNyBAQCB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNvdQogICAg
IGNhaXJvX3NhdmUoY3IpOwogCiAgICAgaWYgKHRleHREcmF3aW5nTW9kZSAmIFRleHRNb2RlRmls
bCkgewotICAgICAgICBwbGF0Zm9ybUNvbnRleHQucHJlcGFyZUZvckZpbGxpbmcoZmlsbFNvdXJj
ZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7Cisg
ICAgICAgIHByZXBhcmVGb3JGaWxsaW5nKGNyLCBmaWxsU291cmNlLCBwbGF0Zm9ybUNvbnRleHQu
Z2xvYmFsQWxwaGEoKSwgQWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhKTsKICAgICAgICAgZHJh
d0dseXBoc1RvQ29udGV4dChjciwgc2NhbGVkRm9udCwgc3ludGhldGljQm9sZE9mZnNldCwgZ2x5
cGhzKTsKICAgICB9CiAKQEAgLTY3MCw3ICs3NjQsNyBAQCB2b2lkIGRyYXdHbHlwaHMoUGxhdGZv
cm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNv
dQogICAgIC8vIHRoZSB0ZXh0IGFzIGV2ZW4gb25lIHNpbmdsZSBzdHJva2Ugd291bGQgY292ZXIg
dGhlIGZ1bGwgd2R0aCBvZiB0aGUgdGV4dC4KICAgICAvLyAgU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzc1OS4KICAgICBpZiAodGV4dERyYXdpbmdNb2RlICYg
VGV4dE1vZGVTdHJva2UgJiYgc3Ryb2tlVGhpY2tuZXNzIDwgMiAqIHhPZmZzZXQpIHsKLSAgICAg
ICAgcGxhdGZvcm1Db250ZXh0LnByZXBhcmVGb3JTdHJva2luZyhzdHJva2VTb3VyY2UsIFBsYXRm
b3JtQ29udGV4dENhaXJvOjpQcmVzZXJ2ZUFscGhhKTsKKyAgICAgICAgcHJlcGFyZUZvclN0cm9r
aW5nKGNyLCBzdHJva2VTb3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxBbHBoYSgpLCBQcmVz
ZXJ2ZUFscGhhKTsKICAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY3IsIHN0cm9rZVRoaWNr
bmVzcyk7CiAKICAgICAgICAgLy8gVGhpcyBtYXkgZGlzdHVyYiB0aGUgQ1RNLCBidXQgd2UgYXJl
IGdvaW5nIHRvIGNhbGwgY2Fpcm9fcmVzdG9yZSBzb29uIGFmdGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwCmluZGV4IDk5Yjg4MmZhMTk3MDQ4MWQ0YTZkZmZkZjQ4MDdkMWY2M2M1NzVk
Y2YuLjlmNGQzZGNkNjVhZTg5MWE0ZmIxZDk2NmM4M2FkNTM5NWRkZWZkMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0
Zm9ybUNvbnRleHRDYWlyby5jcHAKQEAgLTI1NCw5NyArMjU0LDYgQEAgdm9pZCBQbGF0Zm9ybUNv
bnRleHRDYWlybzo6c2V0R2xvYmFsQWxwaGEoZmxvYXQgZ2xvYmFsQWxwaGEpCiAgICAgbV9zdGF0
ZS0+bV9nbG9iYWxBbHBoYSA9IGdsb2JhbEFscGhhOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQg
cmVkdWNlU291cmNlQnlBbHBoYShjYWlyb190KiBjciwgZmxvYXQgYWxwaGEpCi17Ci0gICAgaWYg
KGFscGhhID49IDEpCi0gICAgICAgIHJldHVybjsKLSAgICBjYWlyb19wdXNoX2dyb3VwKGNyKTsK
LSAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IsIENBSVJPX09QRVJBVE9SX1NPVVJDRSk7Ci0gICAg
Y2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgYWxwaGEpOwotICAgIGNhaXJvX3BvcF9ncm91cF90
b19zb3VyY2UoY3IpOwotfQotCi1zdGF0aWMgdm9pZCBwcmVwYXJlQ2Fpcm9Db250ZXh0U291cmNl
KGNhaXJvX3QqIGNyLCBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4sIGNhaXJvX3BhdHRlcm5fdCog
Z3JhZGllbnQsIGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgZ2xvYmFsQWxwaGEpCi17Ci0gICAg
aWYgKHBhdHRlcm4pIHsKLSAgICAgICAgLy8gUGF0dGVybiBzb3VyY2UKLSAgICAgICAgY2Fpcm9f
c2V0X3NvdXJjZShjciwgcGF0dGVybik7Ci0gICAgICAgIHJlZHVjZVNvdXJjZUJ5QWxwaGEoY3Is
IGdsb2JhbEFscGhhKTsKLSAgICB9IGVsc2UgaWYgKGdyYWRpZW50KSB7Ci0gICAgICAgIC8vIEdy
YWRpZW50IHNvdXJjZQotICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBncmFkaWVudCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgLy8gU29saWQgY29sb3Igc291cmNlCi0gICAgICAgIGlmIChn
bG9iYWxBbHBoYSA8IDEpCi0gICAgICAgICAgICBzZXRTb3VyY2VSR0JBRnJvbUNvbG9yKGNyLCBj
b2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBjb2xvci5hbHBoYSgpIC8gMjU1LmYg
KiBnbG9iYWxBbHBoYSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzZXRTb3VyY2VSR0JB
RnJvbUNvbG9yKGNyLCBjb2xvcik7Ci0gICAgfQotfQotCi12b2lkIFBsYXRmb3JtQ29udGV4dENh
aXJvOjpwcmVwYXJlRm9yRmlsbGluZyhjb25zdCBDYWlybzo6RmlsbFNvdXJjZSYgZmlsbFNvdXJj
ZSwgUGF0dGVybkFkanVzdG1lbnQgcGF0dGVybkFkanVzdG1lbnQpCi17Ci0gICAgY2Fpcm9fc2V0
X2ZpbGxfcnVsZShtX2NyLmdldCgpLCBmaWxsU291cmNlLmZpbGxSdWxlID09IFJVTEVfRVZFTk9E
RCA/IENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCA6IENBSVJPX0ZJTExfUlVMRV9XSU5ESU5HKTsK
LQotICAgIGJvb2wgYWRqdXN0Rm9yQWxwaGEgPSBwYXR0ZXJuQWRqdXN0bWVudCA9PSBBZGp1c3RQ
YXR0ZXJuRm9yR2xvYmFsQWxwaGE7Ci0KLSAgICBhdXRvKiBncmFkaWVudCA9IGZpbGxTb3VyY2Uu
Z3JhZGllbnQuYmFzZS5nZXQoKTsKLSAgICBpZiAoYWRqdXN0Rm9yQWxwaGEgJiYgZmlsbFNvdXJj
ZS5ncmFkaWVudC5hbHBoYUFkanVzdGVkKQotICAgICAgICBncmFkaWVudCA9IGZpbGxTb3VyY2Uu
Z3JhZGllbnQuYWxwaGFBZGp1c3RlZC5nZXQoKTsKLQotICAgIHByZXBhcmVDYWlyb0NvbnRleHRT
b3VyY2UobV9jci5nZXQoKSwgZmlsbFNvdXJjZS5wYXR0ZXJuLm9iamVjdC5nZXQoKSwgZ3JhZGll
bnQsCi0gICAgICAgIGZpbGxTb3VyY2UuY29sb3IsIGFkanVzdEZvckFscGhhID8gZ2xvYmFsQWxw
aGEoKSA6IDEpOwotCi0gICAgaWYgKGZpbGxTb3VyY2UucGF0dGVybi5vYmplY3QpIHsKLSAgICAg
ICAgY2xpcEZvclBhdHRlcm5GaWxsaW5nKGZpbGxTb3VyY2UucGF0dGVybi5zaXplLCBmaWxsU291
cmNlLnBhdHRlcm4udHJhbnNmb3JtLAotICAgICAgICAgICAgZmlsbFNvdXJjZS5wYXR0ZXJuLnJl
cGVhdFgsIGZpbGxTb3VyY2UucGF0dGVybi5yZXBlYXRZKTsKLSAgICB9Ci19Ci0KLXZvaWQgUGxh
dGZvcm1Db250ZXh0Q2Fpcm86OnByZXBhcmVGb3JTdHJva2luZyhjb25zdCBDYWlybzo6U3Ryb2tl
U291cmNlJiBzdHJva2VTb3VyY2UsIEFscGhhUHJlc2VydmF0aW9uIGFscGhhUHJlc2VydmF0aW9u
KQotewotICAgIGJvb2wgcHJlc2VydmVBbHBoYSA9IGFscGhhUHJlc2VydmF0aW9uID09IFByZXNl
cnZlQWxwaGE7Ci0KLSAgICBhdXRvKiBncmFkaWVudCA9IHN0cm9rZVNvdXJjZS5ncmFkaWVudC5i
YXNlLmdldCgpOwotICAgIGlmIChwcmVzZXJ2ZUFscGhhICYmIHN0cm9rZVNvdXJjZS5ncmFkaWVu
dC5hbHBoYUFkanVzdGVkKQotICAgICAgICBncmFkaWVudCA9IHN0cm9rZVNvdXJjZS5ncmFkaWVu
dC5hbHBoYUFkanVzdGVkLmdldCgpOwotCi0gICAgcHJlcGFyZUNhaXJvQ29udGV4dFNvdXJjZSht
X2NyLmdldCgpLCBzdHJva2VTb3VyY2UucGF0dGVybi5nZXQoKSwgZ3JhZGllbnQsCi0gICAgICAg
IHN0cm9rZVNvdXJjZS5jb2xvciwgcHJlc2VydmVBbHBoYSA/IGdsb2JhbEFscGhhKCkgOiAxKTsK
LX0KLQotdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6Y2xpcEZvclBhdHRlcm5GaWxsaW5nKGNv
bnN0IEZsb2F0U2l6ZSYgcGF0dGVyblNpemUsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blRyYW5zZm9ybSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCi17Ci0gICAgLy8gSG9sZCBj
dXJyZW50IGNhaXJvIHBhdGggaW4gYSB2YXJpYWJsZSBmb3IgcmVzdG9yaW5nIGl0IGFmdGVyIGNv
bmZpZ3VyaW5nIHRoZSBwYXR0ZXJuIGNsaXAgcmVjdGFuZ2xlLgotICAgIGF1dG8gY3VycmVudFBh
dGggPSBjYWlyb19jb3B5X3BhdGgobV9jci5nZXQoKSk7Ci0gICAgY2Fpcm9fbmV3X3BhdGgobV9j
ci5nZXQoKSk7Ci0KLSAgICAvLyBJbml0aWFsaXplIGNsaXBwaW5nIGV4dGVudCBmcm9tIGN1cnJl
bnQgY2Fpcm8gY2xpcCBleHRlbnRzLCB0aGVuIHNocmluayBpZiBuZWVkZWQgYWNjb3JkaW5nIHRv
IHBhdHRlcm4uCi0gICAgLy8gSW5zcGlyZWQgYnkgR3JhcGhpY3NDb250ZXh0UXQ6OmRyYXdSZXBl
YXRQYXR0ZXJuLgotICAgIGRvdWJsZSB4MSwgeTEsIHgyLCB5MjsKLSAgICBjYWlyb19jbGlwX2V4
dGVudHMobV9jci5nZXQoKSwgJngxLCAmeTEsICZ4MiwgJnkyKTsKLSAgICBGbG9hdFJlY3QgY2xp
cFJlY3QoeDEsIHkxLCB4MiAtIHgxLCB5MiAtIHkxKTsKLQotICAgIEZsb2F0UmVjdCBwYXR0ZXJu
UmVjdCA9IHBhdHRlcm5UcmFuc2Zvcm0ubWFwUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBw
YXR0ZXJuU2l6ZSkpOwotCi0gICAgaWYgKCFyZXBlYXRYKSB7Ci0gICAgICAgIGNsaXBSZWN0LnNl
dFgocGF0dGVyblJlY3QueCgpKTsKLSAgICAgICAgY2xpcFJlY3Quc2V0V2lkdGgocGF0dGVyblJl
Y3Qud2lkdGgoKSk7Ci0gICAgfQotICAgIGlmICghcmVwZWF0WSkgewotICAgICAgICBjbGlwUmVj
dC5zZXRZKHBhdHRlcm5SZWN0LnkoKSk7Ci0gICAgICAgIGNsaXBSZWN0LnNldEhlaWdodChwYXR0
ZXJuUmVjdC5oZWlnaHQoKSk7Ci0gICAgfQotICAgIGlmICghcmVwZWF0WCB8fCAhcmVwZWF0WSkg
ewotICAgICAgICBjYWlyb19yZWN0YW5nbGUobV9jci5nZXQoKSwgY2xpcFJlY3QueCgpLCBjbGlw
UmVjdC55KCksIGNsaXBSZWN0LndpZHRoKCksIGNsaXBSZWN0LmhlaWdodCgpKTsKLSAgICAgICAg
Y2Fpcm9fY2xpcChtX2NyLmdldCgpKTsKLSAgICB9Ci0KLSAgICAvLyBSZXN0b3JpbmcgY2Fpcm8g
cGF0aC4KLSAgICBjYWlyb19hcHBlbmRfcGF0aChtX2NyLmdldCgpLCBjdXJyZW50UGF0aCk7Ci0g
ICAgY2Fpcm9fcGF0aF9kZXN0cm95KGN1cnJlbnRQYXRoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENBSVJPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgK
aW5kZXggOTE4MzYyNmQ5ZTU0ODQzNmM5ZjIzN2M1ZmYyYzFjNTcxNzhlZTNjZi4uNTQwNjgxOTQw
MGRlZTlhYzQ2YWZhY2JlOWE0MTY5ZDQzYjAwYTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWly
by5oCkBAIC03MywxNSArNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5KTsKICAgICBJbnRlcnBvbGF0aW9uUXVh
bGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3Q7CiAKLSAgICBlbnVtIFBhdHRl
cm5BZGp1c3RtZW50IHsgTm9BZGp1c3RtZW50LCBBZGp1c3RQYXR0ZXJuRm9yR2xvYmFsQWxwaGEg
fTsKLSAgICB2b2lkIHByZXBhcmVGb3JGaWxsaW5nKGNvbnN0IENhaXJvOjpGaWxsU291cmNlJiwg
UGF0dGVybkFkanVzdG1lbnQpOwotCi0gICAgZW51bSBBbHBoYVByZXNlcnZhdGlvbiB7IERvTm90
UHJlc2VydmVBbHBoYSwgUHJlc2VydmVBbHBoYSB9OwotICAgIHZvaWQgcHJlcGFyZUZvclN0cm9r
aW5nKGNvbnN0IENhaXJvOjpTdHJva2VTb3VyY2UmLCBBbHBoYVByZXNlcnZhdGlvbik7Ci0KIHBy
aXZhdGU6Ci0gICAgdm9pZCBjbGlwRm9yUGF0dGVybkZpbGxpbmcoY29uc3QgRmxvYXRTaXplJiwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgYm9vbCwgYm9vbCk7Ci0KICAgICBSZWZQdHI8Y2Fpcm9f
dD4gbV9jcjsKIAogICAgIC8vIEtlZXBpbmcgYSBwb2ludGVyIHRvIEdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZSBoZXJlIGVuYWJsZXMgY2FsbGluZwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>