<?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>178937</bug_id>
          
          <creation_ts>2017-10-27 08:11:46 -0700</creation_ts>
          <short_desc>[WPE] Add some error reporting during EGL display/context creation</short_desc>
          <delta_ts>2017-11-15 12:09:23 -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>WPE WebKit</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=178896</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1365355</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-10-27 08:11:46 -0700</bug_when>
    <thetext>Currently it is very hard to determine what went wrong when EGL fails
to create valid contexts for us, with only the following being written
into standard error (see bug #178896 for one instance of this):

    PlatformDisplayWPE: could not create the EGL display.

It would be a good idea to add some calls to “eglGetError()” and write
some more information to standard error on failure. Admittedly, using
“eglGetError()” won&apos;t get us particularly chatty messages, but it would
be better than the current situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365356</commentid>
    <comment_count>1</comment_count>
      <attachid>325162</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-10-27 08:15:25 -0700</bug_when>
    <thetext>Created attachment 325162
RFC patch, to get the discussion started.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365989</commentid>
    <comment_count>2</comment_count>
      <attachid>325162</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-10-30 05:34:59 -0700</bug_when>
    <thetext>Comment on attachment 325162
RFC patch, to get the discussion started.

Looks good to me. I think getting a meaningful error when things go wrong is very important. I hate when things just crash or fail without telling why.
So feel free to upload it for review. I will r+ it if no further comments in a few days from other reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365990</commentid>
    <comment_count>3</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-10-30 05:39:42 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #1)
&gt; Created attachment 325162 [details]
&gt; RFC patch, to get the discussion started.

LGTM as well! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366001</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-30 07:08:56 -0700</bug_when>
    <thetext>As I mentoined in bug #178896, the output when I run dyz is now:

PlatformDisplayWPE: could not create the EGL display: EGL_SUCCESS.
Cannot create EGL context: invalid display (last error: EGL_BAD_PARAMETER)

I&apos;m not sure why there&apos;s no PlatformDisplayWPE if the error is EGL_SUCCESS, but that should have a different error message. Reminds me of those &quot;Error: success&quot; Windows screeshots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366134</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-10-30 12:50:37 -0700</bug_when>
    <thetext>Provided that we seem to agree in that having this landed, I&apos;ll
rebase the patch, add a proper ChangeLog entry, and re-upload it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366205</commentid>
    <comment_count>6</comment_count>
      <attachid>325382</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-10-30 15:12:19 -0700</bug_when>
    <thetext>Created attachment 325382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366206</commentid>
    <comment_count>7</comment_count>
      <attachid>325382</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-10-30 15:18:29 -0700</bug_when>
    <thetext>Comment on attachment 325382
Patch

It seems the GTK EWS failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366351</commentid>
    <comment_count>8</comment_count>
      <attachid>325382</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-10-31 03:40:20 -0700</bug_when>
    <thetext>Comment on attachment 325382
Patch

r- due to failed GTK EWS on the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366353</commentid>
    <comment_count>9</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-10-31 03:47:32 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #8)
&gt; Comment on attachment 325382 [details]
&gt; Patch
&gt; 
&gt; r- due to failed GTK EWS on the patch

I&apos;m on it. The build failure happens locally for me so it won&apos;t be
hard fix and make sure the GTK+ port builds fine as well ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366356</commentid>
    <comment_count>10</comment_count>
      <attachid>325432</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-10-31 05:00:53 -0700</bug_when>
    <thetext>Created attachment 325432
Patch

This version builds fine, it includes &quot;GLContextEGL.h&quot; when USE(EGL) is enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367447</commentid>
    <comment_count>11</comment_count>
      <attachid>325432</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-02 11:56:00 -0700</bug_when>
    <thetext>Comment on attachment 325432
Patch

Clearing flags on attachment: 325432

Committed r224347: &lt;https://trac.webkit.org/changeset/224347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367448</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-02 11:56:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325162</attachid>
            <date>2017-10-27 08:15:25 -0700</date>
            <delta_ts>2017-10-30 15:12:15 -0700</delta_ts>
            <desc>RFC patch, to get the discussion started.</desc>
            <filename>bug-178937-20171027181524.patch</filename>
            <type>text/plain</type>
            <size>11823</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDFiYTE3OWI0NjNmNDQy
YjEzOThkMGJmZmY1MWE5NGZhOWQzYWViOGMuLjljMzYwODU4ZDhkMjY1NmRiNDljOTVmZTExZDdk
OTExMzdlZTAwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC02Nyw2ICs2NywzNyBAQCBzdGF0aWMgY29uc3Qg
RUdMZW51bSBnRUdMQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOwogc3RhdGljIGNvbnN0
IEVHTGVudW0gZ0VHTEFQSVZlcnNpb24gPSBFR0xfT1BFTkdMX0FQSTsKICNlbmRpZgogCitjb25z
dCBjaGFyKiBHTENvbnRleHRFR0w6OmVycm9yU3RyaW5nKGludCBzdGF0dXNDb2RlKQoreworICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludCkgPj0gc2l6ZW9mKEVHTGludCksICJFR0xpbnQgbXVz
dCBub3QgYmUgd2lkZXIgdGhhbiBpbnQiKTsKKyAgICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHsKKyNk
ZWZpbmUgQ0FTRV9SRVRVUk5fU1RSSU5HKG5hbWUpIGNhc2UgbmFtZTogcmV0dXJuICNuYW1lCisg
ICAgICAgIC8vIGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L0VHTC9zZGsvZG9jcy9t
YW4vaHRtbC9lZ2xHZXRFcnJvci54aHRtbAorICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdM
X1NVQ0NFU1MpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX05PVF9JTklUSUFMSVpF
RCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FDQ0VTUyk7CisgICAgICAg
IENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FMTE9DKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5f
U1RSSU5HKEVHTF9CQURfQVRUUklCVVRFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVH
TF9CQURfQ09OVEVYVCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0NPTkZJ
Ryk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0NVUlJFTlRfU1VSRkFDRSk7
CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0RJU1BMQVkpOworICAgICAgICBD
QVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9TVVJGQUNFKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5f
U1RSSU5HKEVHTF9CQURfTUFUQ0gpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JB
RF9QQVJBTUVURVIpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9OQVRJVkVf
UElYTUFQKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfTkFUSVZFX1dJTkRP
Vyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQ09OVEVYVF9MT1NUKTsKKyN1bmRl
ZiBDQVNFX1JFVFVSTl9TVFJJTkcKKyAgICBkZWZhdWx0OiByZXR1cm4gIlVua25vd24gRUdMIGVy
cm9yIjsKKyAgICB9Cit9CisKK2NvbnN0IGNoYXIqIEdMQ29udGV4dEVHTDo6bGFzdEVycm9yU3Ry
aW5nKCkKK3sKKyAgICByZXR1cm4gZXJyb3JTdHJpbmcoZWdsR2V0RXJyb3IoKSk7Cit9CisKIGJv
b2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlzcGxheSBkaXNwbGF5LCBFR0xDb25m
aWcqIGNvbmZpZywgRUdMU3VyZmFjZVR5cGUgc3VyZmFjZVR5cGUpCiB7CiAgICAgRUdMaW50IGF0
dHJpYnV0ZUxpc3RbXSA9IHsKQEAgLTEwNSwxMiArMTM2LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxH
TENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93Q29udGV4dChHTE5hdGl2ZVdp
bmRvd1R5CiB7CiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gcGxhdGZvcm1EaXNwbGF5LmVnbERp
c3BsYXkoKTsKICAgICBFR0xDb25maWcgY29uZmlnOwotICAgIGlmICghZ2V0RUdMQ29uZmlnKGRp
c3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKQorICAgIGlmICghZ2V0RUdMQ29uZmlnKGRp
c3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygi
Q2Fubm90IG9idGFpbiBFR0wgd2luZG93IGNvbnRleHQgY29uZmlndXJhdGlvbjogJXNcbiIsIGxh
c3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAg
RUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChkaXNwbGF5LCBjb25maWcsIHNo
YXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIGlmIChjb250ZXh0ID09IEVH
TF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKSB7CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgd2luZG93IGNvbnRleHQ6ICVzXG4i
LCBsYXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAog
ICAgIEVHTFN1cmZhY2Ugc3VyZmFjZSA9IEVHTF9OT19TVVJGQUNFOwogI2lmIFBMQVRGT1JNKEdU
SykKQEAgLTEyOSw2ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENv
bnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeQogICAgIHN1cmZh
Y2UgPSBlZ2xDcmVhdGVXaW5kb3dTdXJmYWNlKGRpc3BsYXksIGNvbmZpZywgc3RhdGljX2Nhc3Q8
RUdMTmF0aXZlV2luZG93VHlwZT4od2luZG93KSwgbnVsbHB0cik7CiAjZW5kaWYKICAgICBpZiAo
c3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5v
dCBjcmVhdGUgRUdMIHdpbmRvdyBzdXJmYWNlOiAlc1xuIiwgbGFzdEVycm9yU3RyaW5nKCkpOwog
ICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChkaXNwbGF5LCBjb250ZXh0KTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTQwLDE2ICsxNzYsMjEgQEAgc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVQYnVmZmVyQ29udGV4dChQbGF0Zm9y
bURpc3BsYXkKIHsKICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkuZWds
RGlzcGxheSgpOwogICAgIEVHTENvbmZpZyBjb25maWc7Ci0gICAgaWYgKCFnZXRFR0xDb25maWco
ZGlzcGxheSwgJmNvbmZpZywgUGJ1ZmZlclN1cmZhY2UpKQorICAgIGlmICghZ2V0RUdMQ29uZmln
KGRpc3BsYXksICZjb25maWcsIFBidWZmZXJTdXJmYWNlKSkgeworICAgICAgICBXVEZMb2dBbHdh
eXMoIkNhbm5vdCBvYnRhaW4gRUdMIFBidWZmZXIgY29uZmlndXJhdGlvbjogJXNcbiIsIGxhc3RF
cnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdM
Q29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChkaXNwbGF5LCBjb25maWcsIHNoYXJp
bmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIGlmIChjb250ZXh0ID09IEVHTF9O
T19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgUGJ1ZmZlciBjb250ZXh0OiAlc1xuIiwg
bGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKICAg
ICBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10gPSB7IEVHTF9XSURUSCwgMSwg
RUdMX0hFSUdIVCwgMSwgRUdMX05PTkUgfTsKICAgICBFR0xTdXJmYWNlIHN1cmZhY2UgPSBlZ2xD
cmVhdGVQYnVmZmVyU3VyZmFjZShkaXNwbGF5LCBjb25maWcsIHBidWZmZXJBdHRyaWJ1dGVzKTsK
ICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgeworICAgICAgICBXVEZMb2dBbHdh
eXMoIkNhbm5vdCBjcmVhdGUgRUdMIFBidWZmZXIgc3VyZmFjZTogJXNcbiIsIGxhc3RFcnJvclN0
cmluZygpKTsKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQoZGlzcGxheSwgY29udGV4dCk7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTE2MCwzMSArMjAxLDQ3IEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlUGJ1ZmZlckNvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRl
eHRFR0w6OmNyZWF0ZVN1cmZhY2VsZXNzQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIHBsYXRmb3Jt
RGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkKIHsKICAgICBFR0xEaXNwbGF5IGRp
c3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpOwotICAgIGlmIChkaXNwbGF5ID09
IEVHTF9OT19ESVNQTEFZKQorICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBzdXJmYWNlbGVzcyBFR0wgY29udGV4
dDogaW52YWxpZCBkaXNwbGF5IChsYXN0IGVycm9yOiAlcylcbiIsIGxhc3RFcnJvclN0cmluZygp
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgY29uc3QgY2hhciogZXh0
ZW5zaW9ucyA9IGVnbFF1ZXJ5U3RyaW5nKGRpc3BsYXksIEVHTF9FWFRFTlNJT05TKTsKLSAgICBp
ZiAoIUdMQ29udGV4dDo6aXNFeHRlbnNpb25TdXBwb3J0ZWQoZXh0ZW5zaW9ucywgIkVHTF9LSFJf
c3VyZmFjZWxlc3NfY29udGV4dCIpICYmICFHTENvbnRleHQ6OmlzRXh0ZW5zaW9uU3VwcG9ydGVk
KGV4dGVuc2lvbnMsICJFR0xfS0hSX3N1cmZhY2VsZXNzX29wZW5nbCIpKQorICAgIGlmICghR0xD
b250ZXh0Ojppc0V4dGVuc2lvblN1cHBvcnRlZChleHRlbnNpb25zLCAiRUdMX0tIUl9zdXJmYWNl
bGVzc19jb250ZXh0IikgJiYgIUdMQ29udGV4dDo6aXNFeHRlbnNpb25TdXBwb3J0ZWQoZXh0ZW5z
aW9ucywgIkVHTF9LSFJfc3VyZmFjZWxlc3Nfb3BlbmdsIikpIHsKKyAgICAgICAgV1RGTG9nQWx3
YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBzdXJmYWNlbGVzcyBjb250ZXh0OiBtaXNzaW5nIEVHTF9L
SFJfc3VyZmFjZWxlc3Nfe2NvbnRleHQsb3BlbmdsfSBleHRlbnNpb24uXG4iKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29uZmlnIGNvbmZpZzsKLSAgICBpZiAo
IWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBTdXJmYWNlbGVzcykpCisgICAgaWYgKCFn
ZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgU3VyZmFjZWxlc3MpKSB7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiQ2Fubm90IG9idGFpbiBFR0wgc3VyZmFjZWxlc3MgY29uZmlndXJhdGlvbjog
JXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChkaXNwbGF5LCBj
b25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIGlmIChjb250
ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhU
KSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgc3VyZmFjZWxlc3Mg
Y29udGV4dDogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+KG5l
dyBHTENvbnRleHRFR0wocGxhdGZvcm1EaXNwbGF5LCBjb250ZXh0LCBFR0xfTk9fU1VSRkFDRSwg
U3VyZmFjZWxlc3MpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250
ZXh0RUdMOjpjcmVhdGVDb250ZXh0KEdMTmF0aXZlV2luZG93VHlwZSB3aW5kb3csIFBsYXRmb3Jt
RGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5KQogewotICAgIGlmIChwbGF0Zm9ybURpc3BsYXkuZWds
RGlzcGxheSgpID09IEVHTF9OT19ESVNQTEFZKQorICAgIGlmIChwbGF0Zm9ybURpc3BsYXkuZWds
RGlzcGxheSgpID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fu
bm90IGNyZWF0ZSBFR0wgY29udGV4dDogaW52YWxpZCBkaXNwbGF5IChsYXN0IGVycm9yOiAlcylc
biIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQog
Ci0gICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09IEVHTF9GQUxTRSkKKyAgICBp
ZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZBTFNFKSB7CisjaWYgVVNFKE9Q
RU5HTF9FU18yKQorICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIGNvbnRl
eHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEVTIEFQSSAoJXMpXG4iLCBsYXN0RXJyb3JTdHJpbmco
KSk7CisjZWxzZQorICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIGNvbnRl
eHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEFQSSAoJXMpXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29udGV4
dCBlZ2xTaGFyaW5nQ29udGV4dCA9IHBsYXRmb3JtRGlzcGxheS5zaGFyaW5nR0xDb250ZXh0KCkg
PyBzdGF0aWNfY2FzdDxHTENvbnRleHRFR0wqPihwbGF0Zm9ybURpc3BsYXkuc2hhcmluZ0dMQ29u
dGV4dCgpKS0+bV9jb250ZXh0IDogRUdMX05PX0NPTlRFWFQ7CiAgICAgYXV0byBjb250ZXh0ID0g
d2luZG93ID8gY3JlYXRlV2luZG93Q29udGV4dCh3aW5kb3csIHBsYXRmb3JtRGlzcGxheSwgZWds
U2hhcmluZ0NvbnRleHQpIDogbnVsbHB0cjsKQEAgLTIxMiwxMSArMjY5LDE5IEBAIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlQ29udGV4dChHTE5hdGl2
ZVdpbmRvd1R5cGUgd2luCiAKIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4
dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3Bs
YXkpCiB7Ci0gICAgaWYgKHBsYXRmb3JtRGlzcGxheS5lZ2xEaXNwbGF5KCkgPT0gRUdMX05PX0RJ
U1BMQVkpCisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS5lZ2xEaXNwbGF5KCkgPT0gRUdMX05PX0RJ
U1BMQVkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBzaGFyaW5n
IGNvbnRleHQ6IGludmFsaWQgZGlzcGxheSAobGFzdCBlcnJvcjogJXMpIiwgbGFzdEVycm9yU3Ry
aW5nKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICBpZiAoZWdsQmlu
ZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZBTFNFKQorICAgIGlmIChlZ2xCaW5kQVBJKGdF
R0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgc2hhcmluZyBjb250ZXh0OiBlcnJv
ciBiaW5kaW5nIE9wZW5HTCBFUyBBUEkgKCVzKVxuIiwgbGFzdEVycm9yU3RyaW5nKCkpOworI2Vs
c2UKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBzaGFyaW5nIGNvbnRl
eHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEFQSSAoJXMpXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgYXV0byBjb250
ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3JtRGlzcGxheSk7CiAgICAgaWYg
KCFjb250ZXh0KSB7CkBAIC0yNDcsNiArMzEyLDggQEAgR0xDb250ZXh0RUdMOjpHTENvbnRleHRF
R0woUGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5LCBFR0xDb250ZXh0IGNvbnRleHQsIEVHTFN1cmYK
IHsKICAgICBBU1NFUlQodHlwZSAhPSBQaXhtYXBTdXJmYWNlKTsKICAgICBBU1NFUlQodHlwZSA9
PSBTdXJmYWNlbGVzcyB8fCBzdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKTsKKyAgICBSRUxFQVNF
X0FTU0VSVChtX2Rpc3BsYXkuZWdsRGlzcGxheSgpICE9IEVHTF9OT19ESVNQTEFZKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChjb250ZXh0ICE9IEVHTF9OT19DT05URVhUKTsKIH0KIAogR0xDb250ZXh0
RUdMOjp+R0xDb250ZXh0RUdMKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAppbmRleCBiM2NlN2Y1ZGRmOGFjMDk0MTlkMTY0YmQz
YTg5NTkxOTA2NjI0OWE5Li5lODEwYWM3Y2ZjZjAxMWJiYTFiMTc0M2VjZjNhMDkwMWQ3ZmE5Mjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250
ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29u
dGV4dEVHTC5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlQ29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUsIFBs
YXRmb3JtRGlzcGxheSYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdM
PiBjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmKTsKIAorICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSk7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGxhc3RFcnJvclN0cmluZygpOworCiAgICAgdmlydHVhbCB+R0xDb250ZXh0RUdMKCk7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCmluZGV4IDE4NGMzZTNmNDE5NDdiNzhhMGZhNTlj
Nzg2MDJkOTAxZmEwMjYxNWQuLjU3YTE4Y2UwMmFjOTI4YTIzOTYxNWQ0Nzk2OWIxZmM2MGEwZGNh
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0xXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vn
bC9HTENvbnRleHRFR0xXUEUuY3BwCkBAIC01Miw4ICs1MiwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8
R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNw
bGF5JiBwbAogewogICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IHBsYXRmb3JtRGlzcGxheS5lZ2xE
aXNwbGF5KCk7CiAgICAgRUdMQ29uZmlnIGNvbmZpZzsKLSAgICBpZiAoIWdldEVHTENvbmZpZyhk
aXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlKSkKKyAgICBpZiAoIWdldEVHTENvbmZpZyhk
aXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlKSkgeworICAgICAgICBXVEZMb2dBbHdheXMo
IkNhbm5vdCBvYnRhaW4gRUdMIFdQRSBjb250ZXh0IGNvbmZpZ3VyYXRpb246ICVzXG4iLCBsYXN0
RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KIAogICAgIHN0
YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNbXSA9IHsKICNpZiBVU0UoT1BFTkdM
X0VTXzIpCkBAIC02MywxOSArNjUsMjMgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4g
R0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYgcGwKICAgICB9
OwogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChkaXNwbGF5LCBj
b25maWcsIHNoYXJpbmdDb250ZXh0LCBjb250ZXh0QXR0cmlidXRlcyk7Ci0gICAgaWYgKGNvbnRl
eHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgaWYgKGNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQp
IHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBXUEUgY29udGV4dDog
JXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogCiAgICAgYXV0byogdGFyZ2V0ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVl
bl90YXJnZXRfY3JlYXRlKCk7CiAgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVl
bl90YXJnZXRfaW5pdGlhbGl6ZSh0YXJnZXQsIGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4o
cGxhdGZvcm1EaXNwbGF5KS5iYWNrZW5kKCkpOwogICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgd2lu
ZG93ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfZ2V0X25hdGl2
ZV93aW5kb3codGFyZ2V0KTsKICAgICBpZiAoIXdpbmRvdykgeworICAgICAgICBXVEZMb2dBbHdh
eXMoIkNhbm5vdCBjcmVhdGUgRUdMIFdQRSBjb250ZXh0OiAlc1xuIiwgbGFzdEVycm9yU3RyaW5n
KCkpOwogICAgICAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9k
ZXN0cm95KHRhcmdldCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEVH
TFN1cmZhY2Ugc3VyZmFjZSA9IGVnbENyZWF0ZVdpbmRvd1N1cmZhY2UoZGlzcGxheSwgY29uZmln
LCBzdGF0aWNfY2FzdDxFR0xOYXRpdmVXaW5kb3dUeXBlPih3aW5kb3cpLCBudWxscHRyKTsKICAg
ICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgeworICAgICAgICBXVEZMb2dBbHdheXMo
IkNhbm5vdCBjcmVhdGUgRUdMIFdQRSB3aW5kb3cgc3VyZmFjZTogJXNcbiIsIGxhc3RFcnJvclN0
cmluZygpKTsKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQoZGlzcGxheSwgY29udGV4dCk7CiAg
ICAgICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
dGFyZ2V0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCmlu
ZGV4IDhjMzQ5YzFkNWI5MjUwYzQ1YzliMWY2ZTZlNjI1ZTQwOWM3NDQwYmUuLjJiNWZlMzJlZDEz
NzFjYzc2MDEyODY5YjhiYmQ5MjI4MzE3N2JlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBo
b3N0RmQpCiAKICAgICBtX2VnbERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KHdwZV9yZW5kZXJlcl9i
YWNrZW5kX2VnbF9nZXRfbmF0aXZlX2Rpc3BsYXkobV9iYWNrZW5kKSk7CiAgICAgaWYgKG1fZWds
RGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIlBsYXRm
b3JtRGlzcGxheVdQRTogY291bGQgbm90IGNyZWF0ZSB0aGUgRUdMIGRpc3BsYXkuIik7CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1EaXNwbGF5V1BFOiBjb3VsZCBub3QgY3JlYXRlIHRo
ZSBFR0wgZGlzcGxheTogJXMuIiwgR0xDb250ZXh0RUdMOjpsYXN0RXJyb3JTdHJpbmcoKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325382</attachid>
            <date>2017-10-30 15:12:19 -0700</date>
            <delta_ts>2017-10-31 05:00:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178937-20171031001218.patch</filename>
            <type>text/plain</type>
            <size>14634</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg3NGVjYjhlMTc3MTNm
ODc2ZjZhZGVhNzM2MDZjNzQ2YTIwNjIzMC4uYjNhMjk1NTJjNGMwZjRmMmVkODE3MDhkNzAzZDQx
ZjkzOGE4NWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEwLTMwICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0g
QWRkIHNvbWUgZXJyb3IgcmVwb3J0aW5nIGR1cmluZyBFR0wgZGlzcGxheS9jb250ZXh0IGNyZWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmNv
bmRpdGlvbmFsbHkgbG9nIGVycm9ycyB1c2luZyBXVEZMb2dBbHdheXMgZHVyaW5nIEVHTCBjb250
ZXh0IGNyZWF0aW9uLiBUaGlzCisgICAgICAgIHByb3ZpZGVzIGEgc21hbGwgZGVncmVlIG9mIGhl
bHAgZm9yIHRyb3VibGVzaG9vdGluZywgYW5kIHdoaWxlIGVnbEdldEVycm9yKCkgb25seQorICAg
ICAgICByZXR1cm5zIG51bWVyaWMgZXJyb3IgY29kZXMsIGl0J3MgYmV0dGVyIHRoYW4gbm90aGlu
Zy4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RUdM
OjplcnJvclN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6Omxhc3RFcnJv
clN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0Nv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RUdMOjpjcmVhdGVQYnVmZmVyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZVN1cmZhY2VsZXNz
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OkdMQ29udGV4dEVHTCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZSk6CisKIDIwMTctMTAtMjcgIE1lZ2FuIEdhcmRuZXIg
IDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3JyZWN0bHkgZGV0ZXJtaW5l
IGFmZmluaXR5IHdoZW4gaW5zZXJ0aW5nIHRleHQgdmlhIEtleWJvYXJkIFN1Z2dlc3Rpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3Bs
YXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmNwcAppbmRleCA1OTg5OGQ2YzljZWI3YTE1ZjBlNDc1YmYxMTg2MTI1ZjBkODMwOTQ2Li41MDU5
ODY2ZjhlZTMxOWQyZmY5ZjY3YTk3NzBiODM5N2Y5ODNiMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTE5Nywx
MyArMTk3LDE1IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXplRUdMRGlzcGxheSgp
CiAKICAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CiAgICAgICAgIG1f
ZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7Ci0gICAgICAg
IGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgIGlmIChtX2VnbERp
c3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fu
bm90IGdldCBkZWZhdWx0IEVHTCBkaXNwbGF5OiAlc1xuIiwgR0xDb250ZXh0RUdMOjpsYXN0RXJy
b3JTdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBFR0xpbnQgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb247CiAgICAgaWYgKGVnbEluaXRpYWxp
emUobV9lZ2xEaXNwbGF5LCAmbWFqb3JWZXJzaW9uLCAmbWlub3JWZXJzaW9uKSA9PSBFR0xfRkFM
U0UpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZhaWxl
ZC4iKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZh
aWxlZDogJXNcbiIsIEdMQ29udGV4dEVHTDo6bGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICB0
ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmlu
ZGV4IDFiYTE3OWI0NjNmNDQyYjEzOThkMGJmZmY1MWE5NGZhOWQzYWViOGMuLjljMzYwODU4ZDhk
MjY1NmRiNDljOTVmZTExZDdkOTExMzdlZTAwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC02Nyw2ICs2Nywz
NyBAQCBzdGF0aWMgY29uc3QgRUdMZW51bSBnRUdMQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNf
QVBJOwogc3RhdGljIGNvbnN0IEVHTGVudW0gZ0VHTEFQSVZlcnNpb24gPSBFR0xfT1BFTkdMX0FQ
STsKICNlbmRpZgogCitjb25zdCBjaGFyKiBHTENvbnRleHRFR0w6OmVycm9yU3RyaW5nKGludCBz
dGF0dXNDb2RlKQoreworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludCkgPj0gc2l6ZW9mKEVH
TGludCksICJFR0xpbnQgbXVzdCBub3QgYmUgd2lkZXIgdGhhbiBpbnQiKTsKKyAgICBzd2l0Y2gg
KHN0YXR1c0NvZGUpIHsKKyNkZWZpbmUgQ0FTRV9SRVRVUk5fU1RSSU5HKG5hbWUpIGNhc2UgbmFt
ZTogcmV0dXJuICNuYW1lCisgICAgICAgIC8vIGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lz
dHJ5L0VHTC9zZGsvZG9jcy9tYW4vaHRtbC9lZ2xHZXRFcnJvci54aHRtbAorICAgICAgICBDQVNF
X1JFVFVSTl9TVFJJTkcoRUdMX1NVQ0NFU1MpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkco
RUdMX05PVF9JTklUSUFMSVpFRCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFE
X0FDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FMTE9DKTsKKyAg
ICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQVRUUklCVVRFKTsKKyAgICAgICAgQ0FT
RV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQ09OVEVYVCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NU
UklORyhFR0xfQkFEX0NPTkZJRyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFE
X0NVUlJFTlRfU1VSRkFDRSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0RJ
U1BMQVkpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9TVVJGQUNFKTsKKyAg
ICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfTUFUQ0gpOworICAgICAgICBDQVNFX1JF
VFVSTl9TVFJJTkcoRUdMX0JBRF9QQVJBTUVURVIpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJ
TkcoRUdMX0JBRF9OQVRJVkVfUElYTUFQKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVH
TF9CQURfTkFUSVZFX1dJTkRPVyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQ09O
VEVYVF9MT1NUKTsKKyN1bmRlZiBDQVNFX1JFVFVSTl9TVFJJTkcKKyAgICBkZWZhdWx0OiByZXR1
cm4gIlVua25vd24gRUdMIGVycm9yIjsKKyAgICB9Cit9CisKK2NvbnN0IGNoYXIqIEdMQ29udGV4
dEVHTDo6bGFzdEVycm9yU3RyaW5nKCkKK3sKKyAgICByZXR1cm4gZXJyb3JTdHJpbmcoZWdsR2V0
RXJyb3IoKSk7Cit9CisKIGJvb2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlzcGxh
eSBkaXNwbGF5LCBFR0xDb25maWcqIGNvbmZpZywgRUdMU3VyZmFjZVR5cGUgc3VyZmFjZVR5cGUp
CiB7CiAgICAgRUdMaW50IGF0dHJpYnV0ZUxpc3RbXSA9IHsKQEAgLTEwNSwxMiArMTM2LDE2IEBA
IHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV2luZG93
Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5CiB7CiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gcGxh
dGZvcm1EaXNwbGF5LmVnbERpc3BsYXkoKTsKICAgICBFR0xDb25maWcgY29uZmlnOwotICAgIGlm
ICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKQorICAgIGlm
ICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKSB7CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IG9idGFpbiBFR0wgd2luZG93IGNvbnRleHQgY29uZmln
dXJhdGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChk
aXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwotICAg
IGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVHTF9O
T19DT05URVhUKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgd2lu
ZG93IGNvbnRleHQ6ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KIAogICAgIEVHTFN1cmZhY2Ugc3VyZmFjZSA9IEVHTF9OT19TVVJGQUNF
OwogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTEyOSw2ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVX
aW5kb3dUeQogICAgIHN1cmZhY2UgPSBlZ2xDcmVhdGVXaW5kb3dTdXJmYWNlKGRpc3BsYXksIGNv
bmZpZywgc3RhdGljX2Nhc3Q8RUdMTmF0aXZlV2luZG93VHlwZT4od2luZG93KSwgbnVsbHB0cik7
CiAjZW5kaWYKICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgeworICAgICAgICBX
VEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIHdpbmRvdyBzdXJmYWNlOiAlc1xuIiwgbGFz
dEVycm9yU3RyaW5nKCkpOwogICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChkaXNwbGF5LCBjb250
ZXh0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTQwLDE2ICsxNzYsMjEg
QEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVQYnVm
ZmVyQ29udGV4dChQbGF0Zm9ybURpc3BsYXkKIHsKICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBw
bGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpOwogICAgIEVHTENvbmZpZyBjb25maWc7Ci0gICAg
aWYgKCFnZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgUGJ1ZmZlclN1cmZhY2UpKQorICAg
IGlmICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFBidWZmZXJTdXJmYWNlKSkgewor
ICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBvYnRhaW4gRUdMIFBidWZmZXIgY29uZmlndXJh
dGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChkaXNw
bGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIGlm
IChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19D
T05URVhUKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgUGJ1ZmZl
ciBjb250ZXh0OiAlc1xuIiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVzW10g
PSB7IEVHTF9XSURUSCwgMSwgRUdMX0hFSUdIVCwgMSwgRUdMX05PTkUgfTsKICAgICBFR0xTdXJm
YWNlIHN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZShkaXNwbGF5LCBjb25maWcsIHBi
dWZmZXJBdHRyaWJ1dGVzKTsKICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgewor
ICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFBidWZmZXIgc3VyZmFjZTog
JXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQoZGlz
cGxheSwgY29udGV4dCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTE2MCwz
MSArMjAxLDQ3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6
Y3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5CiBzdGQ6OnVuaXF1ZV9wdHI8R0xD
b250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVN1cmZhY2VsZXNzQ29udGV4dChQbGF0Zm9y
bURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkKIHsK
ICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpOwot
ICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgIGlmIChkaXNwbGF5ID09IEVH
TF9OT19ESVNQTEFZKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBzdXJm
YWNlbGVzcyBFR0wgY29udGV4dDogaW52YWxpZCBkaXNwbGF5IChsYXN0IGVycm9yOiAlcylcbiIs
IGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAg
ICAgY29uc3QgY2hhciogZXh0ZW5zaW9ucyA9IGVnbFF1ZXJ5U3RyaW5nKGRpc3BsYXksIEVHTF9F
WFRFTlNJT05TKTsKLSAgICBpZiAoIUdMQ29udGV4dDo6aXNFeHRlbnNpb25TdXBwb3J0ZWQoZXh0
ZW5zaW9ucywgIkVHTF9LSFJfc3VyZmFjZWxlc3NfY29udGV4dCIpICYmICFHTENvbnRleHQ6Omlz
RXh0ZW5zaW9uU3VwcG9ydGVkKGV4dGVuc2lvbnMsICJFR0xfS0hSX3N1cmZhY2VsZXNzX29wZW5n
bCIpKQorICAgIGlmICghR0xDb250ZXh0Ojppc0V4dGVuc2lvblN1cHBvcnRlZChleHRlbnNpb25z
LCAiRUdMX0tIUl9zdXJmYWNlbGVzc19jb250ZXh0IikgJiYgIUdMQ29udGV4dDo6aXNFeHRlbnNp
b25TdXBwb3J0ZWQoZXh0ZW5zaW9ucywgIkVHTF9LSFJfc3VyZmFjZWxlc3Nfb3BlbmdsIikpIHsK
KyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBzdXJmYWNlbGVzcyBjb250
ZXh0OiBtaXNzaW5nIEVHTF9LSFJfc3VyZmFjZWxlc3Nfe2NvbnRleHQsb3BlbmdsfSBleHRlbnNp
b24uXG4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29uZmln
IGNvbmZpZzsKLSAgICBpZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBTdXJmYWNl
bGVzcykpCisgICAgaWYgKCFnZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgU3VyZmFjZWxl
c3MpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IG9idGFpbiBFR0wgc3VyZmFjZWxl
c3MgY29uZmlndXJhdGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRl
Q29udGV4dChkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0
ZXMpOwotICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0
ID09IEVHTF9OT19DT05URVhUKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0
ZSBFR0wgc3VyZmFjZWxlc3MgY29udGV4dDogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0
cjxHTENvbnRleHRFR0w+KG5ldyBHTENvbnRleHRFR0wocGxhdGZvcm1EaXNwbGF5LCBjb250ZXh0
LCBFR0xfTk9fU1VSRkFDRSwgU3VyZmFjZWxlc3MpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEdM
Q29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVDb250ZXh0KEdMTmF0aXZlV2luZG93VHlw
ZSB3aW5kb3csIFBsYXRmb3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5KQogewotICAgIGlmIChw
bGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpID09IEVHTF9OT19ESVNQTEFZKQorICAgIGlmIChw
bGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAg
IFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgY29udGV4dDogaW52YWxpZCBkaXNwbGF5
IChsYXN0IGVycm9yOiAlcylcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQogCi0gICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKKyAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZB
TFNFKSB7CisjaWYgVVNFKE9QRU5HTF9FU18yKQorICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5v
dCBjcmVhdGUgRUdMIGNvbnRleHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEVTIEFQSSAoJXMpXG4i
LCBsYXN0RXJyb3JTdHJpbmcoKSk7CisjZWxzZQorICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5v
dCBjcmVhdGUgRUdMIGNvbnRleHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEFQSSAoJXMpXG4iLCBs
YXN0RXJyb3JTdHJpbmcoKSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogCiAgICAgRUdMQ29udGV4dCBlZ2xTaGFyaW5nQ29udGV4dCA9IHBsYXRmb3JtRGlzcGxheS5z
aGFyaW5nR0xDb250ZXh0KCkgPyBzdGF0aWNfY2FzdDxHTENvbnRleHRFR0wqPihwbGF0Zm9ybURp
c3BsYXkuc2hhcmluZ0dMQ29udGV4dCgpKS0+bV9jb250ZXh0IDogRUdMX05PX0NPTlRFWFQ7CiAg
ICAgYXV0byBjb250ZXh0ID0gd2luZG93ID8gY3JlYXRlV2luZG93Q29udGV4dCh3aW5kb3csIHBs
YXRmb3JtRGlzcGxheSwgZWdsU2hhcmluZ0NvbnRleHQpIDogbnVsbHB0cjsKQEAgLTIxMiwxMSAr
MjY5LDE5IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3Jl
YXRlQ29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUgd2luCiAKIHN0ZDo6dW5pcXVlX3B0cjxHTENv
bnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZvcm1EaXNw
bGF5JiBwbGF0Zm9ybURpc3BsYXkpCiB7Ci0gICAgaWYgKHBsYXRmb3JtRGlzcGxheS5lZ2xEaXNw
bGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS5lZ2xEaXNw
bGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3Qg
Y3JlYXRlIEVHTCBzaGFyaW5nIGNvbnRleHQ6IGludmFsaWQgZGlzcGxheSAobGFzdCBlcnJvcjog
JXMpIiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
CiAKLSAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZBTFNFKQorICAg
IGlmIChlZ2xCaW5kQVBJKGdFR0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKKyNpZiBVU0Uo
T1BFTkdMX0VTXzIpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgc2hh
cmluZyBjb250ZXh0OiBlcnJvciBiaW5kaW5nIE9wZW5HTCBFUyBBUEkgKCVzKVxuIiwgbGFzdEVy
cm9yU3RyaW5nKCkpOworI2Vsc2UKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRl
IEVHTCBzaGFyaW5nIGNvbnRleHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEFQSSAoJXMpXG4iLCBs
YXN0RXJyb3JTdHJpbmcoKSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQogCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CkBAIC0yNDcsNiArMzEyLDggQEAgR0xDb250
ZXh0RUdMOjpHTENvbnRleHRFR0woUGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5LCBFR0xDb250ZXh0
IGNvbnRleHQsIEVHTFN1cmYKIHsKICAgICBBU1NFUlQodHlwZSAhPSBQaXhtYXBTdXJmYWNlKTsK
ICAgICBBU1NFUlQodHlwZSA9PSBTdXJmYWNlbGVzcyB8fCBzdXJmYWNlICE9IEVHTF9OT19TVVJG
QUNFKTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX2Rpc3BsYXkuZWdsRGlzcGxheSgpICE9IEVHTF9O
T19ESVNQTEFZKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0ICE9IEVHTF9OT19DT05URVhU
KTsKIH0KIAogR0xDb250ZXh0RUdMOjp+R0xDb250ZXh0RUdMKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAppbmRleCBiM2NlN2Y1
ZGRmOGFjMDk0MTlkMTY0YmQzYTg5NTkxOTA2NjI0OWE5Li5lODEwYWM3Y2ZjZjAxMWJiYTFiMTc0
M2VjZjNhMDkwMWQ3ZmE5MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlQ29udGV4dChHTE5h
dGl2ZVdpbmRvd1R5cGUsIFBsYXRmb3JtRGlzcGxheSYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkm
KTsKIAorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29kZSk7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxhc3RFcnJvclN0cmluZygpOworCiAgICAgdmlydHVh
bCB+R0xDb250ZXh0RUdMKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCmluZGV4IDE4NGMz
ZTNmNDE5NDdiNzhhMGZhNTljNzg2MDJkOTAxZmEwMjYxNWQuLjU3YTE4Y2UwMmFjOTI4YTIzOTYx
NWQ0Nzk2OWIxZmM2MGEwZGNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCkBAIC01Miw4ICs1MiwxMCBA
QCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdQRUNv
bnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbAogewogICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IHBs
YXRmb3JtRGlzcGxheS5lZ2xEaXNwbGF5KCk7CiAgICAgRUdMQ29uZmlnIGNvbmZpZzsKLSAgICBp
ZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlKSkKKyAgICBp
ZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlKSkgeworICAg
ICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBvYnRhaW4gRUdMIFdQRSBjb250ZXh0IGNvbmZpZ3Vy
YXRpb246ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNbXSA9
IHsKICNpZiBVU0UoT1BFTkdMX0VTXzIpCkBAIC02MywxOSArNjUsMjMgQEAgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3Jt
RGlzcGxheSYgcGwKICAgICB9OwogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRl
Q29udGV4dChkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBjb250ZXh0QXR0cmlidXRl
cyk7Ci0gICAgaWYgKGNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgaWYgKGNvbnRleHQg
PT0gRUdMX05PX0NPTlRFWFQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRl
IEVHTCBXUEUgY29udGV4dDogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgYXV0byogdGFyZ2V0ID0gd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfY3JlYXRlKCk7CiAgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfaW5pdGlhbGl6ZSh0YXJnZXQsIGRvd25jYXN0PFBs
YXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5iYWNrZW5kKCkpOwogICAgIEVHTE5h
dGl2ZVdpbmRvd1R5cGUgd2luZG93ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVl
bl90YXJnZXRfZ2V0X25hdGl2ZV93aW5kb3codGFyZ2V0KTsKICAgICBpZiAoIXdpbmRvdykgewor
ICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFdQRSBjb250ZXh0OiAlc1xu
IiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
b2Zmc2NyZWVuX3RhcmdldF9kZXN0cm95KHRhcmdldCk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAogICAgIEVHTFN1cmZhY2Ugc3VyZmFjZSA9IGVnbENyZWF0ZVdpbmRvd1N1cmZh
Y2UoZGlzcGxheSwgY29uZmlnLCBzdGF0aWNfY2FzdDxFR0xOYXRpdmVXaW5kb3dUeXBlPih3aW5k
b3cpLCBudWxscHRyKTsKICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgeworICAg
ICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFdQRSB3aW5kb3cgc3VyZmFjZTog
JXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQoZGlz
cGxheSwgY29udGV4dCk7CiAgICAgICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3Jl
ZW5fdGFyZ2V0X2Rlc3Ryb3kodGFyZ2V0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNw
bGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9y
bURpc3BsYXlXUEUuY3BwCmluZGV4IDhjMzQ5YzFkNWI5MjUwYzQ1YzliMWY2ZTZlNjI1ZTQwOWM3
NDQwYmUuLjJiNWZlMzJlZDEzNzFjYzc2MDEyODY5YjhiYmQ5MjI4MzE3N2JlNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlX
UEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9y
bURpc3BsYXlXUEUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5V1BF
Ojppbml0aWFsaXplKGludCBob3N0RmQpCiAKICAgICBtX2VnbERpc3BsYXkgPSBlZ2xHZXREaXNw
bGF5KHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9nZXRfbmF0aXZlX2Rpc3BsYXkobV9iYWNrZW5k
KSk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewotICAgICAgICBX
VEZMb2dBbHdheXMoIlBsYXRmb3JtRGlzcGxheVdQRTogY291bGQgbm90IGNyZWF0ZSB0aGUgRUdM
IGRpc3BsYXkuIik7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1EaXNwbGF5V1BFOiBj
b3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxheTogJXMuIiwgR0xDb250ZXh0RUdMOjpsYXN0
RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325432</attachid>
            <date>2017-10-31 05:00:53 -0700</date>
            <delta_ts>2017-11-02 11:56:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178937-20171031140051.patch</filename>
            <type>text/plain</type>
            <size>14808</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU4ZDcyYjc5NTk1NTQy
NTliMjdjY2EzN2UxOGU5YWM0MjQwM2MwZC4uYjFjOTRkNjZhZWFiZTQ5ZWYzY2QzY2EyOTdkNTU2
NjY4MzNhYThhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTEwLTMwICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0g
QWRkIHNvbWUgZXJyb3IgcmVwb3J0aW5nIGR1cmluZyBFR0wgZGlzcGxheS9jb250ZXh0IGNyZWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmNv
bmRpdGlvbmFsbHkgbG9nIGVycm9ycyB1c2luZyBXVEZMb2dBbHdheXMgZHVyaW5nIEVHTCBjb250
ZXh0IGNyZWF0aW9uLiBUaGlzCisgICAgICAgIHByb3ZpZGVzIGEgc21hbGwgZGVncmVlIG9mIGhl
bHAgZm9yIHRyb3VibGVzaG9vdGluZywgYW5kIHdoaWxlIGVnbEdldEVycm9yKCkgb25seQorICAg
ICAgICByZXR1cm5zIG51bWVyaWMgZXJyb3IgY29kZXMsIGl0J3MgYmV0dGVyIHRoYW4gbm90aGlu
Zy4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RUdM
OjplcnJvclN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6Omxhc3RFcnJv
clN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0Nv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RUdMOjpjcmVhdGVQYnVmZmVyQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZVN1cmZhY2VsZXNz
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRFR0w6OkdMQ29udGV4dEVHTCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZSk6CisKIDIwMTctMTAtMzAgIEZ1amlpIEhpcm9ub3Jp
ICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgVXNlIExhenlOZXZlckRlc3Ry
b3llZCBpbnN0ZWFkIG9mIERFRklORV9HTE9CQUwgZm9yIFhNTE5hbWVzLCBIVE1MTmFtZXMsIE1h
dGhNTE5hbWVzIGFuZCBTVkdOYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNTk4OThkNmM5Y2ViN2ExNWYwZTQ3
NWJmMTE4NjEyNWYwZDgzMDk0Ni4uNjMxNGM0Mjg5NjFhZjIwOGIyMjlhNjUzZmZjZjQ2MDIzMTA5
MWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAjZWxzZQogI2luY2x1ZGUgPEVHTC9l
Z2wuaD4KICNlbmRpZgorI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjZW5kaWYKQEAgLTE5
NywxMyArMTk4LDE1IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXplRUdMRGlzcGxh
eSgpCiAKICAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CiAgICAgICAg
IG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRfRElTUExBWSk7Ci0gICAg
ICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgIGlmIChtX2Vn
bERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygi
Q2Fubm90IGdldCBkZWZhdWx0IEVHTCBkaXNwbGF5OiAlc1xuIiwgR0xDb250ZXh0RUdMOjpsYXN0
RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAK
ICAgICBFR0xpbnQgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb247CiAgICAgaWYgKGVnbEluaXRp
YWxpemUobV9lZ2xEaXNwbGF5LCAmbWFqb3JWZXJzaW9uLCAmbWlub3JWZXJzaW9uKSA9PSBFR0xf
RkFMU0UpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZh
aWxlZC4iKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9u
IGZhaWxlZDogJXNcbiIsIEdMQ29udGV4dEVHTDo6bGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAg
ICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3Bw
CmluZGV4IDFiYTE3OWI0NjNmNDQyYjEzOThkMGJmZmY1MWE5NGZhOWQzYWViOGMuLjljMzYwODU4
ZDhkMjY1NmRiNDljOTVmZTExZDdkOTExMzdlZTAwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC02Nyw2ICs2
NywzNyBAQCBzdGF0aWMgY29uc3QgRUdMZW51bSBnRUdMQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xf
RVNfQVBJOwogc3RhdGljIGNvbnN0IEVHTGVudW0gZ0VHTEFQSVZlcnNpb24gPSBFR0xfT1BFTkdM
X0FQSTsKICNlbmRpZgogCitjb25zdCBjaGFyKiBHTENvbnRleHRFR0w6OmVycm9yU3RyaW5nKGlu
dCBzdGF0dXNDb2RlKQoreworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludCkgPj0gc2l6ZW9m
KEVHTGludCksICJFR0xpbnQgbXVzdCBub3QgYmUgd2lkZXIgdGhhbiBpbnQiKTsKKyAgICBzd2l0
Y2ggKHN0YXR1c0NvZGUpIHsKKyNkZWZpbmUgQ0FTRV9SRVRVUk5fU1RSSU5HKG5hbWUpIGNhc2Ug
bmFtZTogcmV0dXJuICNuYW1lCisgICAgICAgIC8vIGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3Jl
Z2lzdHJ5L0VHTC9zZGsvZG9jcy9tYW4vaHRtbC9lZ2xHZXRFcnJvci54aHRtbAorICAgICAgICBD
QVNFX1JFVFVSTl9TVFJJTkcoRUdMX1NVQ0NFU1MpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJ
TkcoRUdMX05PVF9JTklUSUFMSVpFRCk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xf
QkFEX0FDQ0VTUyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFEX0FMTE9DKTsK
KyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQVRUUklCVVRFKTsKKyAgICAgICAg
Q0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfQ09OVEVYVCk7CisgICAgICAgIENBU0VfUkVUVVJO
X1NUUklORyhFR0xfQkFEX0NPTkZJRyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xf
QkFEX0NVUlJFTlRfU1VSRkFDRSk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xfQkFE
X0RJU1BMQVkpOworICAgICAgICBDQVNFX1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9TVVJGQUNFKTsK
KyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5HKEVHTF9CQURfTUFUQ0gpOworICAgICAgICBDQVNF
X1JFVFVSTl9TVFJJTkcoRUdMX0JBRF9QQVJBTUVURVIpOworICAgICAgICBDQVNFX1JFVFVSTl9T
VFJJTkcoRUdMX0JBRF9OQVRJVkVfUElYTUFQKTsKKyAgICAgICAgQ0FTRV9SRVRVUk5fU1RSSU5H
KEVHTF9CQURfTkFUSVZFX1dJTkRPVyk7CisgICAgICAgIENBU0VfUkVUVVJOX1NUUklORyhFR0xf
Q09OVEVYVF9MT1NUKTsKKyN1bmRlZiBDQVNFX1JFVFVSTl9TVFJJTkcKKyAgICBkZWZhdWx0OiBy
ZXR1cm4gIlVua25vd24gRUdMIGVycm9yIjsKKyAgICB9Cit9CisKK2NvbnN0IGNoYXIqIEdMQ29u
dGV4dEVHTDo6bGFzdEVycm9yU3RyaW5nKCkKK3sKKyAgICByZXR1cm4gZXJyb3JTdHJpbmcoZWds
R2V0RXJyb3IoKSk7Cit9CisKIGJvb2wgR0xDb250ZXh0RUdMOjpnZXRFR0xDb25maWcoRUdMRGlz
cGxheSBkaXNwbGF5LCBFR0xDb25maWcqIGNvbmZpZywgRUdMU3VyZmFjZVR5cGUgc3VyZmFjZVR5
cGUpCiB7CiAgICAgRUdMaW50IGF0dHJpYnV0ZUxpc3RbXSA9IHsKQEAgLTEwNSwxMiArMTM2LDE2
IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV2lu
ZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5CiB7CiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0g
cGxhdGZvcm1EaXNwbGF5LmVnbERpc3BsYXkoKTsKICAgICBFR0xDb25maWcgY29uZmlnOwotICAg
IGlmICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKQorICAg
IGlmICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFdpbmRvd1N1cmZhY2UpKSB7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IG9idGFpbiBFR0wgd2luZG93IGNvbnRleHQgY29u
ZmlndXJhdGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4
dChkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwot
ICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVH
TF9OT19DT05URVhUKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wg
d2luZG93IGNvbnRleHQ6ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KIAogICAgIEVHTFN1cmZhY2Ugc3VyZmFjZSA9IEVHTF9OT19TVVJG
QUNFOwogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTEyOSw2ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRp
dmVXaW5kb3dUeQogICAgIHN1cmZhY2UgPSBlZ2xDcmVhdGVXaW5kb3dTdXJmYWNlKGRpc3BsYXks
IGNvbmZpZywgc3RhdGljX2Nhc3Q8RUdMTmF0aXZlV2luZG93VHlwZT4od2luZG93KSwgbnVsbHB0
cik7CiAjZW5kaWYKICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgeworICAgICAg
ICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIHdpbmRvdyBzdXJmYWNlOiAlc1xuIiwg
bGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChkaXNwbGF5LCBj
b250ZXh0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTQwLDE2ICsxNzYs
MjEgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVQ
YnVmZmVyQ29udGV4dChQbGF0Zm9ybURpc3BsYXkKIHsKICAgICBFR0xEaXNwbGF5IGRpc3BsYXkg
PSBwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpOwogICAgIEVHTENvbmZpZyBjb25maWc7Ci0g
ICAgaWYgKCFnZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgUGJ1ZmZlclN1cmZhY2UpKQor
ICAgIGlmICghZ2V0RUdMQ29uZmlnKGRpc3BsYXksICZjb25maWcsIFBidWZmZXJTdXJmYWNlKSkg
eworICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBvYnRhaW4gRUdMIFBidWZmZXIgY29uZmln
dXJhdGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChk
aXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJpYnV0ZXMpOwotICAg
IGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250ZXh0ID09IEVHTF9O
T19DT05URVhUKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgUGJ1
ZmZlciBjb250ZXh0OiAlc1xuIiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgaW50IHBidWZmZXJBdHRyaWJ1dGVz
W10gPSB7IEVHTF9XSURUSCwgMSwgRUdMX0hFSUdIVCwgMSwgRUdMX05PTkUgfTsKICAgICBFR0xT
dXJmYWNlIHN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZShkaXNwbGF5LCBjb25maWcs
IHBidWZmZXJBdHRyaWJ1dGVzKTsKICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkg
eworICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFBidWZmZXIgc3VyZmFj
ZTogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQo
ZGlzcGxheSwgY29udGV4dCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTE2
MCwzMSArMjAxLDQ3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVH
TDo6Y3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5CiBzdGQ6OnVuaXF1ZV9wdHI8
R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVN1cmZhY2VsZXNzQ29udGV4dChQbGF0
Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCkK
IHsKICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgp
OwotICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgIGlmIChkaXNwbGF5ID09
IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBz
dXJmYWNlbGVzcyBFR0wgY29udGV4dDogaW52YWxpZCBkaXNwbGF5IChsYXN0IGVycm9yOiAlcylc
biIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQog
CiAgICAgY29uc3QgY2hhciogZXh0ZW5zaW9ucyA9IGVnbFF1ZXJ5U3RyaW5nKGRpc3BsYXksIEVH
TF9FWFRFTlNJT05TKTsKLSAgICBpZiAoIUdMQ29udGV4dDo6aXNFeHRlbnNpb25TdXBwb3J0ZWQo
ZXh0ZW5zaW9ucywgIkVHTF9LSFJfc3VyZmFjZWxlc3NfY29udGV4dCIpICYmICFHTENvbnRleHQ6
OmlzRXh0ZW5zaW9uU3VwcG9ydGVkKGV4dGVuc2lvbnMsICJFR0xfS0hSX3N1cmZhY2VsZXNzX29w
ZW5nbCIpKQorICAgIGlmICghR0xDb250ZXh0Ojppc0V4dGVuc2lvblN1cHBvcnRlZChleHRlbnNp
b25zLCAiRUdMX0tIUl9zdXJmYWNlbGVzc19jb250ZXh0IikgJiYgIUdMQ29udGV4dDo6aXNFeHRl
bnNpb25TdXBwb3J0ZWQoZXh0ZW5zaW9ucywgIkVHTF9LSFJfc3VyZmFjZWxlc3Nfb3BlbmdsIikp
IHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3JlYXRlIEVHTCBzdXJmYWNlbGVzcyBj
b250ZXh0OiBtaXNzaW5nIEVHTF9LSFJfc3VyZmFjZWxlc3Nfe2NvbnRleHQsb3BlbmdsfSBleHRl
bnNpb24uXG4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29u
ZmlnIGNvbmZpZzsKLSAgICBpZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBTdXJm
YWNlbGVzcykpCisgICAgaWYgKCFnZXRFR0xDb25maWcoZGlzcGxheSwgJmNvbmZpZywgU3VyZmFj
ZWxlc3MpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IG9idGFpbiBFR0wgc3VyZmFj
ZWxlc3MgY29uZmlndXJhdGlvbjogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3Jl
YXRlQ29udGV4dChkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBnQ29udGV4dEF0dHJp
YnV0ZXMpOwotICAgIGlmIChjb250ZXh0ID09IEVHTF9OT19DT05URVhUKQorICAgIGlmIChjb250
ZXh0ID09IEVHTF9OT19DT05URVhUKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNy
ZWF0ZSBFR0wgc3VyZmFjZWxlc3MgY29udGV4dDogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHRFR0w+KG5ldyBHTENvbnRleHRFR0wocGxhdGZvcm1EaXNwbGF5LCBjb250
ZXh0LCBFR0xfTk9fU1VSRkFDRSwgU3VyZmFjZWxlc3MpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVDb250ZXh0KEdMTmF0aXZlV2luZG93
VHlwZSB3aW5kb3csIFBsYXRmb3JtRGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5KQogewotICAgIGlm
IChwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpID09IEVHTF9OT19ESVNQTEFZKQorICAgIGlm
IChwbGF0Zm9ybURpc3BsYXkuZWdsRGlzcGxheSgpID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wgY29udGV4dDogaW52YWxpZCBkaXNw
bGF5IChsYXN0IGVycm9yOiAlcylcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24p
ID09IEVHTF9GQUxTRSkKKyAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdM
X0ZBTFNFKSB7CisjaWYgVVNFKE9QRU5HTF9FU18yKQorICAgICAgICBXVEZMb2dBbHdheXMoIkNh
bm5vdCBjcmVhdGUgRUdMIGNvbnRleHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEVTIEFQSSAoJXMp
XG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CisjZWxzZQorICAgICAgICBXVEZMb2dBbHdheXMoIkNh
bm5vdCBjcmVhdGUgRUdMIGNvbnRleHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEFQSSAoJXMpXG4i
LCBsYXN0RXJyb3JTdHJpbmcoKSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQogCiAgICAgRUdMQ29udGV4dCBlZ2xTaGFyaW5nQ29udGV4dCA9IHBsYXRmb3JtRGlzcGxh
eS5zaGFyaW5nR0xDb250ZXh0KCkgPyBzdGF0aWNfY2FzdDxHTENvbnRleHRFR0wqPihwbGF0Zm9y
bURpc3BsYXkuc2hhcmluZ0dMQ29udGV4dCgpKS0+bV9jb250ZXh0IDogRUdMX05PX0NPTlRFWFQ7
CiAgICAgYXV0byBjb250ZXh0ID0gd2luZG93ID8gY3JlYXRlV2luZG93Q29udGV4dCh3aW5kb3cs
IHBsYXRmb3JtRGlzcGxheSwgZWdsU2hhcmluZ0NvbnRleHQpIDogbnVsbHB0cjsKQEAgLTIxMiwx
MSArMjY5LDE5IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6
Y3JlYXRlQ29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUgd2luCiAKIHN0ZDo6dW5pcXVlX3B0cjxH
TENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoUGxhdGZvcm1E
aXNwbGF5JiBwbGF0Zm9ybURpc3BsYXkpCiB7Ci0gICAgaWYgKHBsYXRmb3JtRGlzcGxheS5lZ2xE
aXNwbGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS5lZ2xE
aXNwbGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5u
b3QgY3JlYXRlIEVHTCBzaGFyaW5nIGNvbnRleHQ6IGludmFsaWQgZGlzcGxheSAobGFzdCBlcnJv
cjogJXMpIiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CiAKLSAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZBTFNFKQor
ICAgIGlmIChlZ2xCaW5kQVBJKGdFR0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKKyNpZiBV
U0UoT1BFTkdMX0VTXzIpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2Fubm90IGNyZWF0ZSBFR0wg
c2hhcmluZyBjb250ZXh0OiBlcnJvciBiaW5kaW5nIE9wZW5HTCBFUyBBUEkgKCVzKVxuIiwgbGFz
dEVycm9yU3RyaW5nKCkpOworI2Vsc2UKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3Jl
YXRlIEVHTCBzaGFyaW5nIGNvbnRleHQ6IGVycm9yIGJpbmRpbmcgT3BlbkdMIEFQSSAoJXMpXG4i
LCBsYXN0RXJyb3JTdHJpbmcoKSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQogCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRm
b3JtRGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CkBAIC0yNDcsNiArMzEyLDggQEAgR0xD
b250ZXh0RUdMOjpHTENvbnRleHRFR0woUGxhdGZvcm1EaXNwbGF5JiBkaXNwbGF5LCBFR0xDb250
ZXh0IGNvbnRleHQsIEVHTFN1cmYKIHsKICAgICBBU1NFUlQodHlwZSAhPSBQaXhtYXBTdXJmYWNl
KTsKICAgICBBU1NFUlQodHlwZSA9PSBTdXJmYWNlbGVzcyB8fCBzdXJmYWNlICE9IEVHTF9OT19T
VVJGQUNFKTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX2Rpc3BsYXkuZWdsRGlzcGxheSgpICE9IEVH
TF9OT19ESVNQTEFZKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjb250ZXh0ICE9IEVHTF9OT19DT05U
RVhUKTsKIH0KIAogR0xDb250ZXh0RUdMOjp+R0xDb250ZXh0RUdMKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAppbmRleCBiM2Nl
N2Y1ZGRmOGFjMDk0MTlkMTY0YmQzYTg5NTkxOTA2NjI0OWE5Li5lODEwYWM3Y2ZjZjAxMWJiYTFi
MTc0M2VjZjNhMDkwMWQ3ZmE5MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlQ29udGV4dChH
TE5hdGl2ZVdpbmRvd1R5cGUsIFBsYXRmb3JtRGlzcGxheSYpOwogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3Bs
YXkmKTsKIAorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBlcnJvclN0cmluZyhpbnQgc3RhdHVzQ29k
ZSk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxhc3RFcnJvclN0cmluZygpOworCiAgICAgdmly
dHVhbCB+R0xDb250ZXh0RUdMKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCmluZGV4IDE4
NGMzZTNmNDE5NDdiNzhhMGZhNTljNzg2MDJkOTAxZmEwMjYxNWQuLjU3YTE4Y2UwMmFjOTI4YTIz
OTYxNWQ0Nzk2OWIxZmM2MGEwZGNhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCkBAIC01Miw4ICs1Miwx
MCBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRFR0w6OmNyZWF0ZVdQ
RUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbAogewogICAgIEVHTERpc3BsYXkgZGlzcGxheSA9
IHBsYXRmb3JtRGlzcGxheS5lZ2xEaXNwbGF5KCk7CiAgICAgRUdMQ29uZmlnIGNvbmZpZzsKLSAg
ICBpZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlKSkKKyAg
ICBpZiAoIWdldEVHTENvbmZpZyhkaXNwbGF5LCAmY29uZmlnLCBXaW5kb3dTdXJmYWNlKSkgewor
ICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBvYnRhaW4gRUdMIFdQRSBjb250ZXh0IGNvbmZp
Z3VyYXRpb246ICVzXG4iLCBsYXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNb
XSA9IHsKICNpZiBVU0UoT1BFTkdMX0VTXzIpCkBAIC02MywxOSArNjUsMjMgQEAgc3RkOjp1bmlx
dWVfcHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRm
b3JtRGlzcGxheSYgcGwKICAgICB9OwogCiAgICAgRUdMQ29udGV4dCBjb250ZXh0ID0gZWdsQ3Jl
YXRlQ29udGV4dChkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBjb250ZXh0QXR0cmli
dXRlcyk7Ci0gICAgaWYgKGNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgaWYgKGNvbnRl
eHQgPT0gRUdMX05PX0NPTlRFWFQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDYW5ub3QgY3Jl
YXRlIEVHTCBXUEUgY29udGV4dDogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgYXV0byogdGFyZ2V0ID0gd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfY3JlYXRlKCk7CiAgICAgd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfaW5pdGlhbGl6ZSh0YXJnZXQsIGRvd25jYXN0
PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5iYWNrZW5kKCkpOwogICAgIEVH
TE5hdGl2ZVdpbmRvd1R5cGUgd2luZG93ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNj
cmVlbl90YXJnZXRfZ2V0X25hdGl2ZV93aW5kb3codGFyZ2V0KTsKICAgICBpZiAoIXdpbmRvdykg
eworICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFdQRSBjb250ZXh0OiAl
c1xuIiwgbGFzdEVycm9yU3RyaW5nKCkpOwogICAgICAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfb2Zmc2NyZWVuX3RhcmdldF9kZXN0cm95KHRhcmdldCk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAogICAgIEVHTFN1cmZhY2Ugc3VyZmFjZSA9IGVnbENyZWF0ZVdpbmRvd1N1
cmZhY2UoZGlzcGxheSwgY29uZmlnLCBzdGF0aWNfY2FzdDxFR0xOYXRpdmVXaW5kb3dUeXBlPih3
aW5kb3cpLCBudWxscHRyKTsKICAgICBpZiAoc3VyZmFjZSA9PSBFR0xfTk9fU1VSRkFDRSkgewor
ICAgICAgICBXVEZMb2dBbHdheXMoIkNhbm5vdCBjcmVhdGUgRUdMIFdQRSB3aW5kb3cgc3VyZmFj
ZTogJXNcbiIsIGxhc3RFcnJvclN0cmluZygpKTsKICAgICAgICAgZWdsRGVzdHJveUNvbnRleHQo
ZGlzcGxheSwgY29udGV4dCk7CiAgICAgICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZz
Y3JlZW5fdGFyZ2V0X2Rlc3Ryb3kodGFyZ2V0KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1E
aXNwbGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0
Zm9ybURpc3BsYXlXUEUuY3BwCmluZGV4IDhjMzQ5YzFkNWI5MjUwYzQ1YzliMWY2ZTZlNjI1ZTQw
OWM3NDQwYmUuLjJiNWZlMzJlZDEzNzFjYzc2MDEyODY5YjhiYmQ5MjI4MzE3N2JlNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3Bs
YXlXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0
Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCiAKICAgICBtX2VnbERpc3BsYXkgPSBlZ2xHZXRE
aXNwbGF5KHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9nZXRfbmF0aXZlX2Rpc3BsYXkobV9iYWNr
ZW5kKSk7CiAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewotICAgICAg
ICBXVEZMb2dBbHdheXMoIlBsYXRmb3JtRGlzcGxheVdQRTogY291bGQgbm90IGNyZWF0ZSB0aGUg
RUdMIGRpc3BsYXkuIik7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUGxhdGZvcm1EaXNwbGF5V1BF
OiBjb3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxheTogJXMuIiwgR0xDb250ZXh0RUdMOjps
YXN0RXJyb3JTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>