<?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>14211</bug_id>
          
          <creation_ts>2007-06-18 00:00:12 -0700</creation_ts>
          <short_desc>Move the BarInfo object out of the JS bindings</short_desc>
          <delta_ts>2007-06-18 17:20:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>14192</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>7220</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-18 00:00:12 -0700</bug_when>
    <thetext>Patch forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7221</commentid>
    <comment_count>1</comment_count>
      <attachid>15097</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-18 00:08:28 -0700</bug_when>
    <thetext>Created attachment 15097
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7222</commentid>
    <comment_count>2</comment_count>
      <attachid>15097</attachid>
    <who name="">mitz</who>
    <bug_when>2007-06-18 00:16:02 -0700</bug_when>
    <thetext>Comment on attachment 15097
patch

What&apos;s this for?

+DOMWindow::~DOMWindow()
+{
+}
+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7224</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-18 00:53:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 15097 [edit])
&gt; What&apos;s this for?
&gt; 
&gt; +DOMWindow::~DOMWindow()
&gt; +{
&gt; +}
&gt; +

GCC complains with out it.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7159</commentid>
    <comment_count>4</comment_count>
      <attachid>15097</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-06-18 11:19:35 -0700</bug_when>
    <thetext>Comment on attachment 15097
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7160</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-06-18 11:20:19 -0700</bug_when>
    <thetext>Please write a layout test that performs basic access of these properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7118</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-18 17:20:57 -0700</bug_when>
    <thetext>Landed in r23573.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15097</attachid>
            <date>2007-06-18 00:08:28 -0700</date>
            <delta_ts>2007-06-18 11:19:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoBarInfo.diff</filename>
            <type>text/plain</type>
            <size>33713</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzU2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMDctMDYtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMTEKKyAgICAgICAg
TW92ZSB0aGUgQmFySW5mbyBvYmplY3Qgb3V0IG9mIHRoZSBKUyBiaW5kaW5ncworCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAg
KiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5j
cHA6CisgICAgICAgIChLSlM6OldpbmRvd1ByaXZhdGU6OldpbmRvd1ByaXZhdGUpOgorICAgICAg
ICAoS0pTOjpXaW5kb3c6Om1hcmspOgorICAgICAgICAoS0pTOjpXaW5kb3c6OmdldFZhbHVlUHJv
cGVydHkpOgorICAgICAgICAoS0pTOjpXaW5kb3c6OmNsZWFySGVscGVyT2JqZWN0UHJvcGVydGll
cyk6CisgICAgICAgIChLSlM6OldpbmRvdzo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfd2luZG93Lmg6CisgICAgICAgIChLSlM6OldpbmRvdzo6KToKKyAgICAg
ICAgKiBwYWdlL0JhckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhckluZm86
OkJhckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QmFySW5mbzo6ZGlzY29ubmVjdEZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkJhckluZm86OnZpc2libGUpOgorICAgICAgICAqIHBhZ2UvQmFy
SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJhckluZm86Oik6CisgICAgICAgICog
cGFnZS9CYXJJbmZvLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bG9jYXRpb25iYXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjptZW51YmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cGVyc29uYWxiYXIpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxiYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6c3RhdHVzYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6dG9vbGJhcik6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMDctMDYtMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBXaW4zMiBidWlsZCBmaXguCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMzU2MCkK
KysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjk5LDYg
KzI5OSw3IEBAIGFsbCA6IFwKICAgICBEb2NUeXBlU3RyaW5ncy5jcHAgXAogICAgIEhUTUxFbnRp
dHlOYW1lcy5jIFwKICAgICBKU0F0dHIuaCBcCisgICAgSlNCYXJJbmZvLmggXAogICAgIEpTQ0RB
VEFTZWN0aW9uLmggXAogICAgIEpTQ1NTQ2hhcnNldFJ1bGUuaCBcCiAgICAgSlNDU1NGb250RmFj
ZVJ1bGUuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDIzNTYwKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwko
d29ya2luZyBjb3B5KQpAQCAtMjU2LDYgKzI1Niw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAg
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MVGl0bGVFbGVtZW50
LmlkbCBcCiAgICAgaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCisgICAgcGFnZS9CYXJJbmZv
LmlkbCBcCiAgICAgcGFnZS9ET01XaW5kb3cuaWRsIFwKICAgICB4bWwvRE9NUGFyc2VyLmlkbCBc
CiAgICAgeG1sL1hNTFNlcmlhbGl6ZXIuaWRsCkBAIC01NTcsNiArNTU4LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL1RleHRE
b2N1bWVudC5jcHAgXAogICAgIGxvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmNwcCBcCisgICAg
cGFnZS9CYXJJbmZvLmNwcCBcCiAgICAgcGFnZS9DaHJvbWUuY3BwIFwKICAgICBwYWdlL0NvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRE9NV2luZG93LmNwcCBcCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDIzNTYwKQorKysgV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzQ3
LDYgKzM0NywxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTQmFySW5mby5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNCYXJJbmZvLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNDYW52YXNHcmFkaWVudC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjMzOCw2ICsy
MzQ2LDE0IEBACiAJCQlOYW1lPSJwYWdlIgogCQkJPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcQmFySW5mby5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcQmFySW5mby5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXENocm9tZS5jcHAiCiAJCQkJPgogCQkJ
PC9GaWxlPgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIzNTYwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI3MzQsNiArMjczNCwxMSBAQAogCQlCQzA2RURFNDBC
RkQ2RDBEMDA4NTZFOUQgLyogSlNIVE1MVGFibGVDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVERTIwQkZENkQwRDAwODU2RTlE
IC8qIEpTSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCAqLzsgfTsKIAkJQkMwNkVFMDQwQkZENzFBQTAw
ODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RUUwMjBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1M
VGFibGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQkMwNkVFMDUwQkZENzFBQTAwODU2RTlEIC8qIEpT
SFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwNkVFMDMwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5o
ICovOyB9OworCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0MUNE
MDA5RTIzNDkgLyogQmFySW5mby5jcHAgKi87IH07CisJCUJDMTI0RUU4MEMyNjQxQ0QwMDlFMjM0
OSAvKiBCYXJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5oICovOyB9OworCQlCQzEy
NEVFOTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUU2MEMyNjQxQ0QwMDlFMjM0OSAvKiBC
YXJJbmZvLmlkbCAqLzsgfTsKKwkJQkMxMjRFRkYwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5m
by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEy
NEVGRDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJJbmZvLmNwcCAqLzsgfTsKKwkJQkMxMjRGMDAw
QzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRkUwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5m
by5oICovOyB9OwogCQlCQzE3Rjk2NjBCNjRFQkI4MDA0QTY1Q0IgLyogSlNIVE1MU2VsZWN0RWxl
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzE3Rjk2NTBCNjRFQkI4MDA0QTY1Q0IgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3Rv
bS5jcHAgKi87IH07CiAJCUJDMThDNUQwMEIyQTg4NkYwMDE4NDYxRCAvKiBUZXh0QnJlYWtJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
OEM1Q0UwQjJBODg2RjAwMTg0NjFEIC8qIFRleHRCcmVha0l0ZXJhdG9yLmggKi87IH07CiAJCUJD
MThDNUQxMEIyQTg4NkYwMDE4NDYxRCAvKiBUZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE4QzVDRjBCMkE4ODZG
MDAxODQ2MUQgLyogVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwICovOyB9OwpAQCAtNjAyNyw2ICs2
MDMyLDExIEBACiAJCUJDMDZGMjRBMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xTdHlsZVNoZWV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFN0
eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUJDMDZGMjRCMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhTTFRQcm9jZXNzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9j
ZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKKwkJQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhckluZm8uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyog
QmFySW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFySW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzEyNEVFNjBDMjY0MUNEMDA5RTIzNDkgLyog
QmFySW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJhckluZm8uaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzEyNEVGRDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJJ
bmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JhckluZm8u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzEyNEVGRTBDMjY0NDdBMDA5RTIz
NDkgLyogSlNCYXJJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jh
ckluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxN0Y5NjUwQjY0RUJCODAw
NEE2NUNCIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzE4QzVDRTBCMkE4ODZGMDAxODQ2MUQgLyogVGV4
dEJyZWFrSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRC
cmVha0l0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMThDNUNGMEIy
QTg4NkYwMDE4NDYxRCAvKiBUZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ3MCw2ICs2NDgwLDggQEAKIAkJMTRERkIzM0YwQTdE
Rjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkMxMjRFRkQwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFy
SW5mby5jcHAgKi8sCisJCQkJQkMxMjRFRkUwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5mby5o
ICovLAogCQkJCTY1REYzMUQ4MDlEMUMxMjIwMDBCRTMyNSAvKiBKU0F0dHIuY3BwICovLAogCQkJ
CTY1REYzMUQ5MDlEMUMxMjMwMDBCRTMyNSAvKiBKU0F0dHIuaCAqLywKIAkJCQk2NURGMzIzMzA5
RDFERTY1MDAwQkUzMjUgLyogSlNDYW52YXNHcmFkaWVudC5jcHAgKi8sCkBAIC03MTk4LDE5ICs3
MjEwLDI2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5M0MwOUE4MjBCMDY0RjA1MDA1QUJENEQg
LyogbWFjICovLAogCQkJCTg1MzhGMDAwMEFENzE3NzAwMDZBODFEMSAvKiBBYnN0cmFjdFZpZXcu
aWRsICovLAorCQkJCUJDMTI0RUU0MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmNwcCAqLywK
KwkJCQlCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5oICovLAorCQkJCUJDMTI0
RUU2MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmlkbCAqLywKIAkJCQkxNEQ4MjM4QTBBRjky
REY2MDAwNEYwNTcgLyogQ2hyb21lLmNwcCAqLywKIAkJCQkxNEQ4MjM1MDBBRjkyQTc5MDAwNEYw
NTcgLyogQ2hyb21lLmggKi8sCisJCQkJMTREODI0MDYwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9t
ZUNsaWVudC5oICovLAogCQkJCTA2NUFENEYyMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVu
dUNsaWVudC5oICovLAogCQkJCTA2NUFENEYzMEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTA2NUFENEY0MEIwQzJFREEwMDVBMkIxRCAvKiBDb250
ZXh0TWVudUNvbnRyb2xsZXIuaCAqLywKLQkJCQkxNEQ4MjQwNjBBRjkzQUVCMDAwNEYwNTcgLyog
Q2hyb21lQ2xpZW50LmggKi8sCiAJCQkJMTQwM0I5OTYwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdp
bmRvdy5jcHAgKi8sCiAJCQkJMTQwM0I5OTUwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5o
ICovLAogCQkJCTE0MDNCOTBDMDlFQjEyNDUwMDc5N0M3RiAvKiBET01XaW5kb3cuaWRsICovLAot
CQkJCTkzQzA5QTUyMEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKKwkJCQlB
NzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLywKKwkJCQlBN0NBNTk2
MjBCMjdDMUYyMDBGQTAyMUQgLyogRHJhZ0NsaWVudC5oICovLAorCQkJCUE3Q0E1OTVDMEIyN0JE
OUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5jcHAgKi8sCisJCQkJQTdDQTU5NUIwQjI3QkQ5
RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggKi8sCiAJCQkJOTNDMDlBODAwQjA2NEYwMDAw
NUFCRDREIC8qIEV2ZW50SGFuZGxlci5jcHAgKi8sCi0JCQkJMTQ5OTNCRTQwQjJGMkIxQzAwNTA0
OTdGIC8qIEZvY3VzQ29udHJvbGxlci5oICovLAorCQkJCTkzQzA5QTUyMEIwNjREQjMwMDVBQkQ0
RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKIAkJCQkxNDk5M0JFMzBCMkYyQjFDMDA1MDQ5N0YgLyog
Rm9jdXNDb250cm9sbGVyLmNwcCAqLywKKwkJCQkxNDk5M0JFNDBCMkYyQjFDMDA1MDQ5N0YgLyog
Rm9jdXNDb250cm9sbGVyLmggKi8sCiAJCQkJMDYyMjg3ODMwQjREQjMyMjAwMEMzNERGIC8qIEZv
Y3VzRGlyZWN0aW9uLmggKi8sCiAJCQkJNjVCRjAyMjkwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1l
LmNwcCAqLywKIAkJCQk2NUJGMDIyQTA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCAqLywKQEAg
LTcyMjUsMTIgKzcyNDQsOCBAQAogCQkJCTY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdl
LmNwcCAqLywKIAkJCQk2NUEyMTQ2NzA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5oICovLAogCQkJ
CTY1RDFDMUM5MDk5MzJCMjIwMDBDQjMyNCAvKiBQbHVnaW4uaCAqLywKLQkJCQlGNTg3ODYzQTAy
REUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKLQkJCQlBN0NBNTk1QjBCMjdCRDlFMDBG
QTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuaCAqLywKLQkJCQlBN0NBNTk1QzBCMjdCRDlFMDBGQTAy
MUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAotCQkJCUE3Q0E1OTYyMEIyN0MxRjIwMEZBMDIx
RCAvKiBEcmFnQ2xpZW50LmggKi8sCi0JCQkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERy
YWdBY3Rpb25zLmggKi8sCiAJCQkJMTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdz
LmNwcCAqLywKKwkJCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gcGFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0x
MTU1OSw2ICsxMTU3NCw4IEBACiAJCQkJQkM2REM3QTEwQzFBNEJGQTAwNEUyMDE3IC8qIEpTSFRN
TEFsbENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRkUyRjEyMEMxQjU4MzgwMDIw
MjM1RiAvKiBKU1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDM2OEU4MEMyMjZFMzIwMDVF
RkI1RiAvKiBSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzEyNEVFODBDMjY0MUNEMDA5RTIz
NDkgLyogQmFySW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUy
MzQ5IC8qIEpTQmFySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMTY3Miw2ICsxMTY4OSw3IEBA
CiAJCQkJQkM0OTFCNEYwQzAyM0UyRDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVudC5pZGwg
aW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5D
dXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYg
Lyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAorCQkJCUJDMTI0RUU5MEMyNjQx
Q0QwMDlFMjM0OSAvKiBCYXJJbmZvLmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMjk4Myw2ICsx
MzAwMSw4IEBACiAJCQkJQkNDQkFEM0IwQzE4QkZGODAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rp
b25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDQkFENDAwQzE4QzE0MjAwQ0U4OTBG
IC8qIEpTSFRNTENvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGRTJGMTEwQzFC
NTgzNzAwMjAyMzVGIC8qIEpTUmVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzEyNEVFNzBD
MjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzEyNEVG
RjBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAyMzU2MCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDEyICs4Nyw2
IEBAIHN0cnVjdCBXaW5kb3dQcml2YXRlIHsKICAgICAgICAgLCBmcmFtZXMoMCkKICAgICAgICAg
LCBsb2MoMCkKICAgICAgICAgLCBtX3NlbGVjdGlvbigwKQotICAgICAgICAsIG1fbG9jYXRpb25i
YXIoMCkKLSAgICAgICAgLCBtX21lbnViYXIoMCkKLSAgICAgICAgLCBtX3BlcnNvbmFsYmFyKDAp
Ci0gICAgICAgICwgbV9zY3JvbGxiYXJzKDApCi0gICAgICAgICwgbV9zdGF0dXNiYXIoMCkKLSAg
ICAgICAgLCBtX3Rvb2xiYXIoMCkKICAgICAgICAgLCBtX2V2dCgwKQogICAgICAgICAsIG1fcmV0
dXJuVmFsdWVTbG90KDApCiAgICAgewpAQCAtMTA3LDEyICsxMDEsNiBAQCBzdHJ1Y3QgV2luZG93
UHJpdmF0ZSB7CiAgICAgbXV0YWJsZSBGcmFtZUFycmF5KiBmcmFtZXM7CiAgICAgbXV0YWJsZSBM
b2NhdGlvbiogbG9jOwogICAgIG11dGFibGUgU2VsZWN0aW9uKiBtX3NlbGVjdGlvbjsKLSAgICBt
dXRhYmxlIEJhckluZm8qIG1fbG9jYXRpb25iYXI7Ci0gICAgbXV0YWJsZSBCYXJJbmZvKiBtX21l
bnViYXI7Ci0gICAgbXV0YWJsZSBCYXJJbmZvKiBtX3BlcnNvbmFsYmFyOwotICAgIG11dGFibGUg
QmFySW5mbyogbV9zY3JvbGxiYXJzOwotICAgIG11dGFibGUgQmFySW5mbyogbV9zdGF0dXNiYXI7
Ci0gICAgbXV0YWJsZSBCYXJJbmZvKiBtX3Rvb2xiYXI7CiAgICAgV2ViQ29yZTo6RXZlbnQgKm1f
ZXZ0OwogICAgIEpTVmFsdWUgKiptX3JldHVyblZhbHVlU2xvdDsKICAgICB0eXBlZGVmIEhhc2hN
YXA8aW50LCBET01XaW5kb3dUaW1lcio+IFRpbWVvdXRzTWFwOwpAQCAtMjc5LDExICsyNjcsOSBA
QCBjb25zdCBDbGFzc0luZm8gV2luZG93OjppbmZvID0geyAiV2luZG93CiAgIGlubmVyV2lkdGgg
ICAgV2luZG93OjpJbm5lcldpZHRoICAgICAgRG9udERlbGV0ZXxSZWFkT25seQogICBsZW5ndGgg
ICAgICAgIFdpbmRvdzo6TGVuZ3RoICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgbG9j
YXRpb24gICAgICBXaW5kb3c6OkxvY2F0aW9uXyAgICAgICBEb250RGVsZXRlCi0gIGxvY2F0aW9u
YmFyICAgV2luZG93OjpMb2NhdGlvbmJhciAgICAgRG9udERlbGV0ZQogICBuYW1lICAgICAgICAg
IFdpbmRvdzo6TmFtZSAgICAgICAgICAgIERvbnREZWxldGUKICAgbmF2aWdhdG9yICAgICBXaW5k
b3c6Ok5hdmlnYXRvcl8gICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGNsaWVudEluZm9ybWF0
aW9uICAgICBXaW5kb3c6OkNsaWVudEluZm9ybWF0aW9uICAgICAgIERvbnREZWxldGV8UmVhZE9u
bHkKLSAgbWVudWJhciAgICAgICBXaW5kb3c6Ok1lbnViYXIgICAgICAgICBEb250RGVsZXRlfFJl
YWRPbmx5CiAgIG9mZnNjcmVlbkJ1ZmZlcmluZyAgICBXaW5kb3c6Ok9mZnNjcmVlbkJ1ZmZlcmlu
ZyAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgb3BlbmVyICAgICAgICBXaW5kb3c6Ok9wZW5l
ciAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIG91dGVySGVpZ2h0ICAgV2luZG93OjpP
dXRlckhlaWdodCAgICAgRG9udERlbGV0ZXxSZWFkT25seQpAQCAtMjkxLDE0ICsyNzcsMTAgQEAg
Y29uc3QgQ2xhc3NJbmZvIFdpbmRvdzo6aW5mbyA9IHsgIldpbmRvdwogICBwYWdlWE9mZnNldCAg
IFdpbmRvdzo6UGFnZVhPZmZzZXQgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgcGFnZVlPZmZz
ZXQgICBXaW5kb3c6OlBhZ2VZT2Zmc2V0ICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIHBhcmVu
dCAgICAgICAgV2luZG93OjpQYXJlbnQgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBw
ZXJzb25hbGJhciAgIFdpbmRvdzo6UGVyc29uYWxiYXIgICAgIERvbnREZWxldGV8UmVhZE9ubHkK
ICAgc2NyZWVuWCAgICAgICBXaW5kb3c6OlNjcmVlblggICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5CiAgIHNjcmVlblkgICAgICAgV2luZG93OjpTY3JlZW5ZICAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQogICBzY3JlZW5MZWZ0ICAgIFdpbmRvdzo6U2NyZWVuTGVmdCAgICAgIERvbnREZWxl
dGV8UmVhZE9ubHkKICAgc2NyZWVuVG9wICAgICBXaW5kb3c6OlNjcmVlblRvcCAgICAgICBEb250
RGVsZXRlfFJlYWRPbmx5Ci0gIHNjcm9sbGJhcnMgICAgV2luZG93OjpTY3JvbGxiYXJzICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICBzdGF0dXNiYXIgICAgIFdpbmRvdzo6U3RhdHVzYmFyICAg
ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgdG9vbGJhciAgICAgICBXaW5kb3c6OlRvb2xiYXIg
ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIHNjcm9sbCAgICAgICAgV2luZG93OjpTY3Jv
bGwgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAyCiAgIHNjcm9sbEJ5ICAgICAgV2luZG93
OjpTY3JvbGxCeSAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAyCiAgIHNjcm9sbFRvICAgICAg
V2luZG93OjpTY3JvbGxUbyAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAyCkBAIC00NTIsNDgg
KzQzNCw2IEBAIGJvb2wgV2luZG93OjpmaW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nLCAKICAgICBy
ZXR1cm4gbV9mcmFtZS0+ZmluZFN0cmluZyhzdHJpbmcsICFiYWNrd2FyZHMsIGNhc2VTZW5zaXRp
dmUsIHdyYXAsIGZhbHNlKTsKIH0KIAotQmFySW5mbyAqV2luZG93Ojpsb2NhdGlvbmJhcihFeGVj
U3RhdGUgKmV4ZWMpIGNvbnN0Ci17Ci0gIGlmICghZC0+bV9sb2NhdGlvbmJhcikKLSAgICBkLT5t
X2xvY2F0aW9uYmFyID0gbmV3IEJhckluZm8oZXhlYywgbV9mcmFtZSwgQmFySW5mbzo6TG9jYXRp
b25iYXIpOwotICByZXR1cm4gZC0+bV9sb2NhdGlvbmJhcjsKLX0KLQotQmFySW5mbyAqV2luZG93
OjptZW51YmFyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QKLXsKLSAgaWYgKCFkLT5tX21lbnViYXIp
Ci0gICAgZC0+bV9tZW51YmFyID0gbmV3IEJhckluZm8oZXhlYywgbV9mcmFtZSwgQmFySW5mbzo6
TWVudWJhcik7Ci0gIHJldHVybiBkLT5tX21lbnViYXI7Ci19Ci0KLUJhckluZm8gKldpbmRvdzo6
cGVyc29uYWxiYXIoRXhlY1N0YXRlICpleGVjKSBjb25zdAotewotICBpZiAoIWQtPm1fcGVyc29u
YWxiYXIpCi0gICAgZC0+bV9wZXJzb25hbGJhciA9IG5ldyBCYXJJbmZvKGV4ZWMsIG1fZnJhbWUs
IEJhckluZm86OlBlcnNvbmFsYmFyKTsKLSAgcmV0dXJuIGQtPm1fcGVyc29uYWxiYXI7Ci19Ci0K
LUJhckluZm8gKldpbmRvdzo6c3RhdHVzYmFyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QKLXsKLSAg
aWYgKCFkLT5tX3N0YXR1c2JhcikKLSAgICBkLT5tX3N0YXR1c2JhciA9IG5ldyBCYXJJbmZvKGV4
ZWMsIG1fZnJhbWUsIEJhckluZm86OlN0YXR1c2Jhcik7Ci0gIHJldHVybiBkLT5tX3N0YXR1c2Jh
cjsKLX0KLQotQmFySW5mbyAqV2luZG93Ojp0b29sYmFyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QK
LXsKLSAgaWYgKCFkLT5tX3Rvb2xiYXIpCi0gICAgZC0+bV90b29sYmFyID0gbmV3IEJhckluZm8o
ZXhlYywgbV9mcmFtZSwgQmFySW5mbzo6VG9vbGJhcik7Ci0gIHJldHVybiBkLT5tX3Rvb2xiYXI7
Ci19Ci0KLUJhckluZm8gKldpbmRvdzo6c2Nyb2xsYmFycyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0
Ci17Ci0gIGlmICghZC0+bV9zY3JvbGxiYXJzKQotICAgIGQtPm1fc2Nyb2xsYmFycyA9IG5ldyBC
YXJJbmZvKGV4ZWMsIG1fZnJhbWUsIEJhckluZm86OlNjcm9sbGJhcnMpOwotICByZXR1cm4gZC0+
bV9zY3JvbGxiYXJzOwotfQotCiAvLyByZWZlcmVuY2Ugb3VyIHNwZWNpYWwgb2JqZWN0cyBkdXJp
bmcgZ2FyYmFnZSBjb2xsZWN0aW9uCiB2b2lkIFdpbmRvdzo6bWFyaygpCiB7CkBAIC01MDgsMTgg
KzQ0OCw2IEBAIHZvaWQgV2luZG93OjptYXJrKCkKICAgICBkLT5sb2MtPm1hcmsoKTsKICAgaWYg
KGQtPm1fc2VsZWN0aW9uICYmICFkLT5tX3NlbGVjdGlvbi0+bWFya2VkKCkpCiAgICAgZC0+bV9z
ZWxlY3Rpb24tPm1hcmsoKTsKLSAgaWYgKGQtPm1fbG9jYXRpb25iYXIgJiYgIWQtPm1fbG9jYXRp
b25iYXItPm1hcmtlZCgpKQotICAgIGQtPm1fbG9jYXRpb25iYXItPm1hcmsoKTsKLSAgaWYgKGQt
Pm1fbWVudWJhciAmJiAhZC0+bV9tZW51YmFyLT5tYXJrZWQoKSkKLSAgICBkLT5tX21lbnViYXIt
Pm1hcmsoKTsKLSAgaWYgKGQtPm1fcGVyc29uYWxiYXIgJiYgIWQtPm1fcGVyc29uYWxiYXItPm1h
cmtlZCgpKQotICAgIGQtPm1fcGVyc29uYWxiYXItPm1hcmsoKTsKLSAgaWYgKGQtPm1fc2Nyb2xs
YmFycyAmJiAhZC0+bV9zY3JvbGxiYXJzLT5tYXJrZWQoKSkKLSAgICBkLT5tX3Njcm9sbGJhcnMt
Pm1hcmsoKTsKLSAgaWYgKGQtPm1fc3RhdHVzYmFyICYmICFkLT5tX3N0YXR1c2Jhci0+bWFya2Vk
KCkpCi0gICAgZC0+bV9zdGF0dXNiYXItPm1hcmsoKTsKLSAgaWYgKGQtPm1fdG9vbGJhciAmJiAh
ZC0+bV90b29sYmFyLT5tYXJrZWQoKSkKLSAgICBkLT5tX3Rvb2xiYXItPm1hcmsoKTsKIH0KIAog
c3RhdGljIGJvb2wgYWxsb3dQb3BVcChFeGVjU3RhdGUgKmV4ZWMsIFdpbmRvdyAqd2luZG93KQpA
QCAtNzc5LDEwICs3MDcsNiBAQCBKU1ZhbHVlICpXaW5kb3c6OmdldFZhbHVlUHJvcGVydHkoRXhl
Y1N0CiAgICAgICBjb25zdF9jYXN0PFdpbmRvdyAqPih0aGlzKS0+cHV0RGlyZWN0KCJjbGllbnRJ
bmZvcm1hdGlvbiIsIG4sIERvbnREZWxldGV8UmVhZE9ubHkpOwogICAgICAgcmV0dXJuIG47CiAg
ICAgfQotICAgIGNhc2UgTG9jYXRpb25iYXI6Ci0gICAgICByZXR1cm4gbG9jYXRpb25iYXIoZXhl
Yyk7Ci0gICAgY2FzZSBNZW51YmFyOgotICAgICAgcmV0dXJuIG1lbnViYXIoZXhlYyk7CiAgICAg
Y2FzZSBPZmZzY3JlZW5CdWZmZXJpbmc6CiAgICAgICByZXR1cm4ganNCb29sZWFuKHRydWUpOwog
ICAgIGNhc2UgT3BlbmVyOgpAQCAtODA1LDggKzcyOSw2IEBAIEpTVmFsdWUgKldpbmRvdzo6Z2V0
VmFsdWVQcm9wZXJ0eShFeGVjU3QKICAgICAgIHJldHVybiBqc051bWJlcihtX2ZyYW1lLT52aWV3
KCktPmNvbnRlbnRzWSgpKTsKICAgICBjYXNlIFBhcmVudDoKICAgICAgIHJldHVybiByZXRyaWV2
ZShtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpID8gbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA6
IG1fZnJhbWUpOwotICAgIGNhc2UgUGVyc29uYWxiYXI6Ci0gICAgICByZXR1cm4gcGVyc29uYWxi
YXIoZXhlYyk7CiAgICAgY2FzZSBTY3JlZW5MZWZ0OgogICAgIGNhc2UgU2NyZWVuWDoKICAgICAg
IHJldHVybiBqc051bWJlcihtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT53aW5kb3dSZWN0KCku
eCgpKTsKQEAgLTgyMywxMiArNzQ1LDYgQEAgSlNWYWx1ZSAqV2luZG93OjpnZXRWYWx1ZVByb3Bl
cnR5KEV4ZWNTdAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgIHVwZGF0ZUxh
eW91dCgpOwogICAgICAgcmV0dXJuIGpzTnVtYmVyKG1fZnJhbWUtPnZpZXcoKS0+Y29udGVudHNZ
KCkpOwotICAgIGNhc2UgU2Nyb2xsYmFyczoKLSAgICAgIHJldHVybiBzY3JvbGxiYXJzKGV4ZWMp
OwotICAgIGNhc2UgU3RhdHVzYmFyOgotICAgICAgcmV0dXJuIHN0YXR1c2JhcihleGVjKTsKLSAg
ICBjYXNlIFRvb2xiYXI6Ci0gICAgICByZXR1cm4gdG9vbGJhcihleGVjKTsKICAgICBjYXNlIFNl
bGY6CiAgICAgY2FzZSBXaW5kb3dfOgogICAgICAgcmV0dXJuIHJldHJpZXZlKG1fZnJhbWUpOwpA
QCAtMTQwMywxMiArMTMxOSw2IEBAIHZvaWQgV2luZG93OjpjbGVhckhlbHBlck9iamVjdFByb3Bl
cnRpZXMKICAgZC0+ZnJhbWVzID0gMDsKICAgZC0+bG9jID0gMDsKICAgZC0+bV9zZWxlY3Rpb24g
PSAwOwotICBkLT5tX2xvY2F0aW9uYmFyID0gMDsKLSAgZC0+bV9tZW51YmFyID0gMDsKLSAgZC0+
bV9wZXJzb25hbGJhciA9IDA7Ci0gIGQtPm1fc2Nyb2xsYmFycyA9IDA7Ci0gIGQtPm1fc3RhdHVz
YmFyID0gMDsKLSAgZC0+bV90b29sYmFyID0gMDsKICAgZC0+bV9ldnQgPSAwOwogfQogCkBAIC0y
MDQzLDE4ICsxOTUzLDYgQEAgdm9pZCBXaW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgICAg
IGQtPmxvYy0+bV9mcmFtZSA9IDA7CiAgICAgaWYgKGQtPm1fc2VsZWN0aW9uKQogICAgICAgICBk
LT5tX3NlbGVjdGlvbi0+bV9mcmFtZSA9IDA7Ci0gICAgaWYgKGQtPm1fbG9jYXRpb25iYXIpCi0g
ICAgICAgIGQtPm1fbG9jYXRpb25iYXItPm1fZnJhbWUgPSAwOwotICAgIGlmIChkLT5tX21lbnVi
YXIpCi0gICAgICAgIGQtPm1fbWVudWJhci0+bV9mcmFtZSA9IDA7Ci0gICAgaWYgKGQtPm1fcGVy
c29uYWxiYXIpCi0gICAgICAgIGQtPm1fcGVyc29uYWxiYXItPm1fZnJhbWUgPSAwOwotICAgIGlm
IChkLT5tX3N0YXR1c2JhcikKLSAgICAgICAgZC0+bV9zdGF0dXNiYXItPm1fZnJhbWUgPSAwOwot
ICAgIGlmIChkLT5tX3Rvb2xiYXIpCi0gICAgICAgIGQtPm1fdG9vbGJhci0+bV9mcmFtZSA9IDA7
Ci0gICAgaWYgKGQtPm1fc2Nyb2xsYmFycykKLSAgICAgICAgZC0+bV9zY3JvbGxiYXJzLT5tX2Zy
YW1lID0gMDsKICAgICBpZiAoZC0+ZnJhbWVzKQogICAgICAgICBkLT5mcmFtZXMtPmRpc2Nvbm5l
Y3RGcmFtZSgpOwogICAgIGlmIChkLT5oaXN0b3J5KQpAQCAtMjQ4MCw1MCArMjM3OCw2IEBAIEpT
VmFsdWUgKlNlbGVjdGlvbkZ1bmM6OmNhbGxBc0Z1bmN0aW9uKEUKICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIH0KIAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBCYXJJbmZvIE9iamVjdCAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLQotY29uc3QgQ2xhc3NJbmZvIEJhckluZm86OmluZm8gPSB7
ICJCYXJJbmZvIiwgMCwgJkJhckluZm9UYWJsZSwgMCB9OwotLyoKLUBiZWdpbiBCYXJJbmZvVGFi
bGUgMQotICB2aXNpYmxlICAgICAgICAgICAgICAgIEJhckluZm86OlZpc2libGUgICAgICAgICAg
ICAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi0qLwotQmFySW5mbzo6QmFy
SW5mbyhFeGVjU3RhdGUgKmV4ZWMsIEZyYW1lICpmLCBUeXBlIGJhclR5cGUpIAotICA6IG1fZnJh
bWUoZikKLSAgLCBtX3R5cGUoYmFyVHlwZSkKLXsKLSAgc2V0UHJvdG90eXBlKGV4ZWMtPmxleGlj
YWxJbnRlcnByZXRlcigpLT5idWlsdGluT2JqZWN0UHJvdG90eXBlKCkpOwotfQotCi1KU1ZhbHVl
ICpCYXJJbmZvOjpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuKSBj
b25zdAotewotICAgIEFTU0VSVCh0b2tlbiA9PSBWaXNpYmxlKTsKLSAgICBzd2l0Y2ggKG1fdHlw
ZSkgewotICAgIGNhc2UgTG9jYXRpb25iYXI6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4obV9m
cmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+dG9vbGJhcnNWaXNpYmxlKCkpOwotICAgIGNhc2UgVG9v
bGJhcjoKLSAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgp
LT50b29sYmFyc1Zpc2libGUoKSk7Ci0gICAgY2FzZSBQZXJzb25hbGJhcjoKLSAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT50b29sYmFyc1Zpc2libGUo
KSk7Ci0gICAgY2FzZSBNZW51YmFyOiAKLSAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihtX2ZyYW1l
LT5wYWdlKCktPmNocm9tZSgpLT5tZW51YmFyVmlzaWJsZSgpKTsKLSAgICBjYXNlIFNjcm9sbGJh
cnM6IAotICAgICAgICByZXR1cm4ganNCb29sZWFuKG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkt
PnNjcm9sbGJhcnNWaXNpYmxlKCkpOwotICAgIGNhc2UgU3RhdHVzYmFyOgotICAgICAgICByZXR1
cm4ganNCb29sZWFuKG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnN0YXR1c2JhclZpc2libGUo
KSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihmYWxzZSk7Ci0gICAg
fQotfQotCi1ib29sIEJhckluZm86OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewot
ICBpZiAoIW1fZnJhbWUpCi0gICAgcmV0dXJuIGZhbHNlOwotICAKLSAgcmV0dXJuIGdldFN0YXRp
Y1ZhbHVlU2xvdDxCYXJJbmZvLCBKU09iamVjdD4oZXhlYywgJkJhckluZm9UYWJsZSwgdGhpcywg
cHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBIaXN0b3J5
IE9iamVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogY29uc3QgQ2xhc3NJbmZvIEhpc3Rv
cnk6OmluZm8gPSB7ICJIaXN0b3J5IiwgMCwgJkhpc3RvcnlUYWJsZSwgMCB9OwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9qcy9ranNfd2luZG93LmgJKHJldmlzaW9uIDIzNTYwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfd2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgS0pTIHsKIAotICAgIGNsYXNzIEJhckluZm87CiAg
ICAgY2xhc3MgRnJhbWVBcnJheTsKICAgICBjbGFzcyBIaXN0b3J5OwogICAgIGNsYXNzIEpTRXZl
bnRMaXN0ZW5lcjsKQEAgLTEzMywxMiArMTMyLDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgTG9j
YXRpb24gKmxvY2F0aW9uKCkgY29uc3Q7CiAgICAgU2VsZWN0aW9uICpzZWxlY3Rpb24oKSBjb25z
dDsKICAgICBib29sIGZpbmQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgYm9vbCwgYm9vbCwgYm9v
bCwgYm9vbCwgYm9vbCwgYm9vbCkgY29uc3Q7Ci0gICAgQmFySW5mbyAqbG9jYXRpb25iYXIoRXhl
Y1N0YXRlKikgY29uc3Q7Ci0gICAgQmFySW5mbyAqbWVudWJhcihFeGVjU3RhdGUqKSBjb25zdDsK
LSAgICBCYXJJbmZvICpwZXJzb25hbGJhcihFeGVjU3RhdGUqKSBjb25zdDsKLSAgICBCYXJJbmZv
ICpzY3JvbGxiYXJzKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgIEJhckluZm8gKnN0YXR1c2JhcihF
eGVjU3RhdGUqKSBjb25zdDsKLSAgICBCYXJJbmZvICp0b29sYmFyKEV4ZWNTdGF0ZSopIGNvbnN0
OwogCiAgICAgLy8gRmluZHMgYSB3cmFwcGVyIG9mIGEgSlMgRXZlbnRMaXN0ZW5lciwgcmV0dXJu
cyAwIGlmIG5vIGV4aXN0aW5nIG9uZS4KICAgICBKU0V2ZW50TGlzdGVuZXIqIGZpbmRKU0V2ZW50
TGlzdGVuZXIoSlNWYWx1ZSosIGJvb2wgaHRtbCA9IGZhbHNlKTsKQEAgLTE3MSw5ICsxNjQsOSBA
QCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
KCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0KICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGlu
Zm87CiAgICAgZW51bSB7IEFUb0IsIEJUb0EsIENsb3NlZCwgQ3J5cHRvLCBEZWZhdWx0U3RhdHVz
LCBTdGF0dXMsIERPTUV4Y2VwdGlvbiwgRnJhbWVzLCBIaXN0b3J5XywgRXZlbnRfLCBJbm5lckhl
aWdodCwKLSAgICAgICAgICAgSW5uZXJXaWR0aCwgTGVuZ3RoLCBMb2NhdGlvbl8sIExvY2F0aW9u
YmFyLCBOYW1lLCBOYXZpZ2F0b3JfLCBDbGllbnRJbmZvcm1hdGlvbiwKLSAgICAgICAgICAgTWVu
dWJhciwgT2Zmc2NyZWVuQnVmZmVyaW5nLCBPcGVuZXIsIE91dGVySGVpZ2h0LCBPdXRlcldpZHRo
LCBQYWdlWE9mZnNldCwgUGFnZVlPZmZzZXQsCi0gICAgICAgICAgIFBhcmVudCwgUGVyc29uYWxi
YXIsIFNjcmVlblgsIFNjcmVlblksIFNjcm9sbGJhcnMsIFNjcm9sbCwgU2Nyb2xsQnksCisgICAg
ICAgICAgIElubmVyV2lkdGgsIExlbmd0aCwgTG9jYXRpb25fLCBOYW1lLCBOYXZpZ2F0b3JfLCBD
bGllbnRJbmZvcm1hdGlvbiwKKyAgICAgICAgICAgT2Zmc2NyZWVuQnVmZmVyaW5nLCBPcGVuZXIs
IE91dGVySGVpZ2h0LCBPdXRlcldpZHRoLCBQYWdlWE9mZnNldCwgUGFnZVlPZmZzZXQsCisgICAg
ICAgICAgIFBhcmVudCwgU2NyZWVuWCwgU2NyZWVuWSwgU2Nyb2xsLCBTY3JvbGxCeSwKICAgICAg
ICAgICAgU2NyZWVuVG9wLCBTY3JlZW5MZWZ0LAogICAgICAgICAgICBTY3JvbGxUbywgU2Nyb2xs
WCwgU2Nyb2xsWSwgTW92ZUJ5LCBNb3ZlVG8sIFJlc2l6ZUJ5LCBSZXNpemVUbywgU2VsZiwgV2lu
ZG93XywgVG9wLCBTY3JlZW5fLAogICAgICAgICAgICBJbWFnZSwgT3B0aW9uLCBBbGVydCwgQ29u
ZmlybSwgUHJvbXB0LCBPcGVuLCBQcmludCwgU2V0VGltZW91dCwgQ2xlYXJUaW1lb3V0LApAQCAt
MTg0LDcgKzE3Nyw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICAgICBPbmZvY3VzLCBPbmtl
eWRvd24sIE9ua2V5cHJlc3MsIE9ua2V5dXAsIE9ubG9hZCwgT25tb3VzZWRvd24sIE9ubW91c2Vt
b3ZlLAogICAgICAgICAgICBPbm1vdXNlb3V0LCBPbm1vdXNlb3ZlciwgT25tb3VzZXVwLCBPbldp
bmRvd01vdXNlV2hlZWwsIE9ucmVzZXQsIE9ucmVzaXplLCBPbnNjcm9sbCwgT25zZWFyY2gsCiAg
ICAgICAgICAgIE9uc2VsZWN0LCBPbnN1Ym1pdCwgT251bmxvYWQsIE9uYmVmb3JldW5sb2FkLAot
ICAgICAgICAgICBTdGF0dXNiYXIsIFRvb2xiYXIsIEZyYW1lRWxlbWVudCwgU2hvd01vZGFsRGlh
bG9nLCBGaW5kLCBTdG9wIH07CisgICAgICAgICAgIEZyYW1lRWxlbWVudCwgU2hvd01vZGFsRGlh
bG9nLCBGaW5kLCBTdG9wIH07CiAKICAgcHJpdmF0ZToKICAgICBKU1ZhbHVlKiBnZXRMaXN0ZW5l
cihFeGVjU3RhdGUqLCBjb25zdCBXZWJDb3JlOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkgY29u
c3Q7CkBAIC0yNTYsMjIgKzI0OSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIFdlYkNvcmU6OkZy
YW1lKiBtX2ZyYW1lOwogICB9OwogCi0gIGNsYXNzIEJhckluZm8gOiBwdWJsaWMgRE9NT2JqZWN0
IHsKLSAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICBKU1ZhbHVlICpn
ZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICBl
bnVtIHsgVmlzaWJsZSB9OwotICAgIGVudW0gVHlwZSB7IExvY2F0aW9uYmFyLCBNZW51YmFyLCBQ
ZXJzb25hbGJhciwgU2Nyb2xsYmFycywgU3RhdHVzYmFyLCBUb29sYmFyIH07Ci0gICAgV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQotICAgIHZpcnR1YWwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQotICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKLSAgcHJpdmF0ZToKLSAgICBmcmllbmQgY2xh
c3MgV2luZG93OwotICAgIEJhckluZm8oRXhlY1N0YXRlKiwgV2ViQ29yZTo6RnJhbWUqLCBUeXBl
KTsKLSAgICBXZWJDb3JlOjpGcmFtZSogbV9mcmFtZTsKLSAgICBUeXBlIG1fdHlwZTsKLSAgfTsK
LQogfSAvLyBuYW1lc3BhY2UKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9w
YWdlL0JhckluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9CYXJJbmZvLmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGFnZS9CYXJJbmZvLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJC
YXJJbmZvLmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitCYXJJbmZvOjpCYXJJbmZv
KEZyYW1lKiBmcmFtZSwgVHlwZSB0eXBlKQorICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAsIG1f
dHlwZSh0eXBlKQoreworfQorCit2b2lkIEJhckluZm86OmRpc2Nvbm5lY3RGcmFtZSgpCit7Cisg
ICAgbV9mcmFtZSA9IDA7Cit9CisKK2Jvb2wgQmFySW5mbzo6dmlzaWJsZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKG1f
dHlwZSkgeworICAgICAgICBjYXNlIExvY2F0aW9uYmFyOgorICAgICAgICAgICAgcmV0dXJuIG1f
ZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnRvb2xiYXJzVmlzaWJsZSgpOworICAgICAgICBjYXNl
IFRvb2xiYXI6CisgICAgICAgICAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+
dG9vbGJhcnNWaXNpYmxlKCk7CisgICAgICAgIGNhc2UgUGVyc29uYWxiYXI6CisgICAgICAgICAg
ICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+dG9vbGJhcnNWaXNpYmxlKCk7Cisg
ICAgICAgIGNhc2UgTWVudWJhcjogCisgICAgICAgICAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgp
LT5jaHJvbWUoKS0+bWVudWJhclZpc2libGUoKTsKKyAgICAgICAgY2FzZSBTY3JvbGxiYXJzOiAK
KyAgICAgICAgICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zY3JvbGxiYXJz
VmlzaWJsZSgpOworICAgICAgICBjYXNlIFN0YXR1c2JhcjoKKyAgICAgICAgICAgIHJldHVybiBt
X2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zdGF0dXNiYXJWaXNpYmxlKCk7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BhZ2UvQmFySW5mby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9CYXJJbmZvLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BhZ2UvQmFy
SW5mby5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJh
ckluZm9faAorI2RlZmluZSBCYXJJbmZvX2gKKworI2luY2x1ZGUgIlNoYXJlZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBGcmFtZTsKKworICAgIGNsYXNzIEJhckluZm8g
OiBwdWJsaWMgU2hhcmVkPEJhckluZm8+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGVudW0gVHlw
ZSB7IExvY2F0aW9uYmFyLCBNZW51YmFyLCBQZXJzb25hbGJhciwgU2Nyb2xsYmFycywgU3RhdHVz
YmFyLCBUb29sYmFyIH07CisgICAgCisgICAgICAgIEJhckluZm8oRnJhbWUqLCBUeXBlKTsKKyAg
ICAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKKworICAgICAgICBib29sIHZpc2libGUoKSBj
b25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZyYW1lKiBtX2ZyYW1lOworICAgICAgICBU
eXBlIG1fdHlwZTsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBCYXJJbmZvX2gKSW5kZXg6IFdlYkNvcmUvcGFnZS9CYXJJbmZvLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvQmFySW5mby5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BhZ2Uv
QmFySW5mby5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBCYXJJbmZvIHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gdmlzaWJsZTsKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAkocmV2aXNpb24gMjM1NjApCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsMTYgKzI2LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCiAKLSNpbmNsdWRlICJjc3NzdHlsZXNlbGVjdG9yLmgiCi0jaW5jbHVk
ZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQmFySW5mby5oIgogI2luY2x1ZGUgIkNTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCisjaW5jbHVkZSAi
Q2hyb21lLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJTY3JlZW4uaCIKKyNpbmNsdWRlICJjc3NzdHlsZXNlbGVjdG9yLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsNiArNDUsMTAgQEAgRE9NV2luZG93OjpE
T01XaW5kb3coRnJhbWUqIGYpCiB7CiB9CiAKK0RPTVdpbmRvdzo6fkRPTVdpbmRvdygpCit7Cit9
CisKIEZyYW1lKiBET01XaW5kb3c6OmZyYW1lKCkKIHsKICAgICByZXR1cm4gbV9mcmFtZTsKQEAg
LTUyLDYgKzU3LDYwIEBAIEZyYW1lKiBET01XaW5kb3c6OmZyYW1lKCkKIHZvaWQgRE9NV2luZG93
OjpkaXNjb25uZWN0RnJhbWUoKQogewogICAgIG1fZnJhbWUgPSAwOworICAgIGlmIChtX2xvY2F0
aW9uYmFyKQorICAgICAgICBtX2xvY2F0aW9uYmFyLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICBp
ZiAobV9tZW51YmFyKQorICAgICAgICBtX21lbnViYXItPmRpc2Nvbm5lY3RGcmFtZSgpOworICAg
IGlmIChtX3BlcnNvbmFsYmFyKQorICAgICAgICBtX3BlcnNvbmFsYmFyLT5kaXNjb25uZWN0RnJh
bWUoKTsKKyAgICBpZiAobV9zY3JvbGxiYXJzKQorICAgICAgICBtX3Njcm9sbGJhcnMtPmRpc2Nv
bm5lY3RGcmFtZSgpOworICAgIGlmIChtX3N0YXR1c2JhcikKKyAgICAgICAgbV9zdGF0dXNiYXIt
PmRpc2Nvbm5lY3RGcmFtZSgpOworICAgIGlmIChtX3Rvb2xiYXIpCisgICAgICAgIG1fdG9vbGJh
ci0+ZGlzY29ubmVjdEZyYW1lKCk7Cit9CisKK0JhckluZm8qIERPTVdpbmRvdzo6bG9jYXRpb25i
YXIoKSBjb25zdAoreworICAgIGlmICghbV9sb2NhdGlvbmJhcikKKyAgICAgICAgbV9sb2NhdGlv
bmJhciA9IG5ldyBCYXJJbmZvKG1fZnJhbWUsIEJhckluZm86OkxvY2F0aW9uYmFyKTsKKyAgICBy
ZXR1cm4gbV9sb2NhdGlvbmJhci5nZXQoKTsKK30KKworQmFySW5mbyogRE9NV2luZG93OjptZW51
YmFyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fbWVudWJhcikKKyAgICAgICAgbV9tZW51YmFyID0g
bmV3IEJhckluZm8obV9mcmFtZSwgQmFySW5mbzo6TWVudWJhcik7CisgICAgcmV0dXJuIG1fbWVu
dWJhci5nZXQoKTsKK30KKworQmFySW5mbyogRE9NV2luZG93OjpwZXJzb25hbGJhcigpIGNvbnN0
Cit7CisgICAgaWYgKCFtX3BlcnNvbmFsYmFyKQorICAgICAgICBtX3BlcnNvbmFsYmFyID0gbmV3
IEJhckluZm8obV9mcmFtZSwgQmFySW5mbzo6UGVyc29uYWxiYXIpOworICAgIHJldHVybiBtX3Bl
cnNvbmFsYmFyLmdldCgpOworfQorCitCYXJJbmZvKiBET01XaW5kb3c6OnNjcm9sbGJhcnMoKSBj
b25zdAoreworICAgIGlmICghbV9zY3JvbGxiYXJzKQorICAgICAgICBtX3Njcm9sbGJhcnMgPSBu
ZXcgQmFySW5mbyhtX2ZyYW1lLCBCYXJJbmZvOjpTY3JvbGxiYXJzKTsKKyAgICByZXR1cm4gbV9z
Y3JvbGxiYXJzLmdldCgpOworfQorCitCYXJJbmZvKiBET01XaW5kb3c6OnN0YXR1c2JhcigpIGNv
bnN0Cit7CisgICAgaWYgKCFtX3N0YXR1c2JhcikKKyAgICAgICAgbV9zdGF0dXNiYXIgPSBuZXcg
QmFySW5mbyhtX2ZyYW1lLCBCYXJJbmZvOjpTdGF0dXNiYXIpOworICAgIHJldHVybiBtX3N0YXR1
c2Jhci5nZXQoKTsKK30KKworQmFySW5mbyogRE9NV2luZG93Ojp0b29sYmFyKCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fdG9vbGJhcikKKyAgICAgICAgbV90b29sYmFyID0gbmV3IEJhckluZm8obV9m
cmFtZSwgQmFySW5mbzo6VG9vbGJhcik7CisgICAgcmV0dXJuIG1fdG9vbGJhci5nZXQoKTsKIH0K
IAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdApJbmRleDogV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAko
cmV2aXNpb24gMjM1NjApCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDkgKzI3LDEyIEBACiAjZGVmaW5lIERPTVdpbmRvd19oCiAKICNpbmNsdWRlICJT
aGFyZWQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisK
KyAgICBjbGFzcyBCYXJJbmZvOwogICAgIGNsYXNzIENTU1J1bGVMaXN0OwogICAgIGNsYXNzIENT
U1N0eWxlRGVjbGFyYXRpb247CiAgICAgY2xhc3MgRG9jdW1lbnQ7CkBAIC00MCw5ICs0MywyMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRE9NV2luZG93IDogcHVibGljIFNoYXJl
ZDxET01XaW5kb3c+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIERPTVdpbmRvdyhGcmFtZSopOwor
ICAgICAgICB2aXJ0dWFsIH5ET01XaW5kb3coKTsKKwogICAgICAgICBGcmFtZSogZnJhbWUoKTsK
ICAgICAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsKIAorICAgICAgICAvLyBET00gTGV2ZWwg
MAorICAgICAgICBCYXJJbmZvKiBsb2NhdGlvbmJhcigpIGNvbnN0OworICAgICAgICBCYXJJbmZv
KiBtZW51YmFyKCkgY29uc3Q7CisgICAgICAgIEJhckluZm8qIHBlcnNvbmFsYmFyKCkgY29uc3Q7
CisgICAgICAgIEJhckluZm8qIHNjcm9sbGJhcnMoKSBjb25zdDsKKyAgICAgICAgQmFySW5mbyog
c3RhdHVzYmFyKCkgY29uc3Q7CisgICAgICAgIEJhckluZm8qIHRvb2xiYXIoKSBjb25zdDsKKwor
CiAgICAgICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0VmlldyBJbnRlcmZhY2UKICAgICAgICAg
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAgICAgICAgIApAQCAtNTUsNiArNjksMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICBGcmFt
ZSogbV9mcmFtZTsKKyAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9sb2NhdGlvbmJh
cjsKKyAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9tZW51YmFyOworICAgICAgICBt
dXRhYmxlIFJlZlB0cjxCYXJJbmZvPiBtX3BlcnNvbmFsYmFyOworICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxCYXJJbmZvPiBtX3Njcm9sbGJhcnM7CisgICAgICAgIG11dGFibGUgUmVmUHRyPEJhcklu
Zm8+IG1fc3RhdHVzYmFyOworICAgICAgICBtdXRhYmxlIFJlZlB0cjxCYXJJbmZvPiBtX3Rvb2xi
YXI7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJ
KHJldmlzaW9uIDIzNTYwKQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDE0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgIC8vIFlvdSBjYW4n
dCBjYWNoZSB0aGUgV2luZG93IG9iamVjdCBpbiB0aGUgZ2xvYmFsIG9iamVjdCBiZWNhdXNlIGl0
ICppcyogdGhlIGdsb2JhbCBvYmplY3QuCiAgICAgLy8gRm9yIHRoZSBzYW1lIHJlYXNvbiwgdGhl
cmUncyBubyBuZWVkIHRvLgogICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6V2luZG93
LCBEb05vdENhY2hlLCBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwgQ3VzdG9tR2V0T3duUHJvcGVy
dHlTbG90XSBET01XaW5kb3cgeworICAgICAgICAvLyBET00gTGV2ZWwgMAorICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgQmFySW5mbyBsb2NhdGlvbmJhcjsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEJhckluZm8gbWVudWJhcjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEJhcklu
Zm8gcGVyc29uYWxiYXI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBCYXJJbmZvIHNjcm9s
bGJhcnM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBCYXJJbmZvIHN0YXR1c2JhcjsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEJhckluZm8gdG9vbGJhcjsKKwogICAgICAgICAvLyBE
T00gTGV2ZWwgMiBBYnN0cmFjdFZpZXcgSW50ZXJmYWNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBEb2N1bWVudCBkb2N1bWVudDsKIAo=
</data>
<flag name="review"
          id="6221"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>