<?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>51313</bug_id>
          
          <creation_ts>2010-12-19 17:15:56 -0800</creation_ts>
          <short_desc>[Qt] Baseline qt_minimal configuration</short_desc>
          <delta_ts>2011-01-10 18:51:25 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
    
    <cc>smagnuso</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324252</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-12-19 17:15:56 -0800</bug_when>
    <thetext>I&apos;d like to propose to introduce a single-switch build configuration to turn on all the _supported_ QT_NO_FEATURE flags for QtWebKit. This would be similar to the existing &quot;minimal&quot; WebKit configuration (could be called qt_minimal). I would also propose to turn this flag on on the minimal QtWebKit buildbot. Justifications:

1./ It seems that there is interest in the community to make these configurations work (e.g. r69110, r72394, bug 38324, etc.) 
2./ It seems we break these build configurations all the time as no bot is testing them (e.g. bug 51221)
3./ We do not have (yet) have buildbots for some of the embedded ports (e.g. Symbian) and as a gap filler it would be beneficial to use the bot building on Linux in the same configuration as Qt is configured in those embedded systems (e.g. by setting Qt_NO_PRINTER, etc.) This would prevent issues like this one - bug 51204.

Patch will follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324255</commentid>
    <comment_count>1</comment_count>
      <attachid>76965</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-12-19 17:49:49 -0800</bug_when>
    <thetext>Created attachment 76965
proposed patch

I left the following configurations out from the baseline as these configurations did not resulted in a functional build (QtTestBrowser usually crashed at startup). I will file a separate bugs/patchess (e.g 51221) to try to fix these (or perhaps remove them and declare them unsupported).

 - QT_NO_ACTION, 
 - QT_NO_CONTEXTMENU
 - QT_NO_DATESTRING&quot; (autotest framework seems to have a dependency on this)
 - QT_NO_DRAGANDDROP
 - QT_NO_LIBRARY
 - QT_NO_PROPERTIES
 - QT_NO_SETTINGS
 - QT_NO_WHEELEVENT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324259</commentid>
    <comment_count>2</comment_count>
      <attachid>76967</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-12-19 18:17:21 -0800</bug_when>
    <thetext>Created attachment 76967
same as previous, but replace += to *= in WebKit.pri</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324260</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2010-12-19 18:23:17 -0800</bug_when>
    <thetext>I really like the idea of having that tested on a bot. It would make it easier not to break those configurations by accident.

Is QtTestBrowser usable in this qt_minimal configuration?

Maybe you could also create an official qconfig with which it is possible to compile Qt with WebKit? This minimal Qt would be used for testing by us and could be used by users asking for minimal QtWebKit footprint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324272</commentid>
    <comment_count>4</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-12-19 19:36:42 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Is QtTestBrowser usable in this qt_minimal configuration?

Yes.

&gt; Maybe you could also create an official qconfig with which it is possible to compile Qt with WebKit? This minimal Qt would be used for testing by us and could be used by users asking for minimal QtWebKit footprint.

Let&apos;s establish that configuration in WebKit and than perhaps we can push it &quot;down&quot; to Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325557</commentid>
    <comment_count>5</comment_count>
      <attachid>76967</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-12-22 10:31:39 -0800</bug_when>
    <thetext>Comment on attachment 76967
same as previous, but replace += to *= in WebKit.pri

View in context: https://bugs.webkit.org/attachment.cgi?id=76967&amp;action=review

Great patch, thanks for it. ;) Please fix typos and QT_NO_BEARERMANAGEMENT before landing.
(I tested the patch, QtTestBrowser works fine.)

&gt; ChangeLog:9
&gt; +        * WebKit.pri: List the supported QT_NO_FUTURE flags
&gt; +        under qt_minial configuration.

s/QT_NO_FUTURE/QT_NO_FEATURE
s/minial/minimal

&gt; Tools/QtTestBrowser/launcherwindow.h:79
&gt; +class QPropertyAnimation;
&gt; +

Why do we need it?

&gt; WebKit.pri:118
&gt; +    DEFINES *= QT_NO_BEARERMANAGEMENT

To use QT_NO_BEARERMANAGEMENT we need one more little patch. Including of 
moc_NetworkStateNotifierPrivate.cpp should be inside the ENABLE(BEARER) guard:

diff --git a/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp b/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
index 959e74a..f3e7023 100644
--- a/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
+++ b/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
@@ -91,6 +91,6 @@ void NetworkStateNotifier::setNetworkAccessAllowed(bool isAllowed)

 } // namespace WebCore

-#endif
-
 #include &quot;moc_NetworkStateNotifierPrivate.cpp&quot;
+
+#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325565</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-12-22 10:40:55 -0800</bug_when>
    <thetext>I&apos;m going to build a qt_minimal with same QT_NO_FEATURES options, and make 
the QtWebKit minimal buildbot use this minimal Qt and build QtWebKit with
additional CONFIG+=qt_minimal flag. It will guarantee that folks won&apos;t break
this supported qt_minimal build by accident. 

Additionally we are planning to start running QtWebKit unittests (run-qtwebkit-tests) on the minimal bot too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325573</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-12-22 10:48:35 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt;  - QT_NO_DATESTRING&quot; (autotest framework seems to have a dependency on this)
It seems it is a bug in Qt 4.7.1, because toString methods should be
guarded by #ifndef QT_NO_DATESTRING in qtest.h. I&apos;ll file a bug in Qt 
bug tracker about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332074</commentid>
    <comment_count>8</comment_count>
      <attachid>78477</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-01-10 17:36:34 -0800</bug_when>
    <thetext>Created attachment 78477
Patch with proposed minor changes for cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332117</commentid>
    <comment_count>9</comment_count>
      <attachid>78477</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-10 18:51:20 -0800</bug_when>
    <thetext>Comment on attachment 78477
Patch with proposed minor changes for cq

Clearing flags on attachment: 78477

Committed r75467: &lt;http://trac.webkit.org/changeset/75467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332118</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-10 18:51:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76965</attachid>
            <date>2010-12-19 17:49:49 -0800</date>
            <delta_ts>2010-12-19 18:17:21 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>51313.patch</filename>
            <type>text/plain</type>
            <size>22138</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMWVhOWU2Li40MmJiYjUw
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQmFz
ZWxpbmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgICogV2ViS2l0LnByaTogTGlz
dCB0aGUgc3VwcG9ydGVkIFFUX05PX0ZVVFVSRSBmbGFncworICAgICAgICB1bmRlciBxdF9taW5p
YWwgY29uZmlndXJhdGlvbi4KKwogMjAxMC0xMi0xNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYWJhYmNlLi5lYzk2Y2E3
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTAtMTItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NA
bm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtRdF0gQmFzZWxpbmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
dW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOiBBZGQK
KyAgICAgICAgUVRfTk9fVU5ET1NUQUNLIGd1YXJkLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nl
ci9sYXVuY2hlcndpbmRvdy5jcHA6CisgICAgICAgIChMYXVuY2hlcldpbmRvdzo6Y3JlYXRlQ2hy
b21lKTogQWRkIFFUX05PX1NIT1JUQ1VUIGFuZCBRVF9OT19QUklOVEVSCisgICAgICAgIGd1YXJk
cy4KKyAgICAgICAgKExhdW5jaGVyV2luZG93OjphcHBseVpvb20pOiBBZGQgUVRfTk9fQU5JTUFU
SU9OIGd1YXJkLgorICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OnNjcmVlbnNob3QpOiBBZGQgUVRf
Tk9fRklMRURJQUxPRyBndWFyZC4KKyAgICAgICAgKExhdW5jaGVyV2luZG93OjpzZWxlY3RFbGVt
ZW50cyk6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKyAgICAgICAgKExhdW5jaGVyV2lu
ZG93OjpzaG93VXNlckFnZW50RGlhbG9nKTogQWRkIFFUX05PX0NPTUJPQk9YIGd1YXJkLgorCisg
ICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oOgorICAgICAgICAqIFF0VGVz
dEJyb3dzZXIvbG9jYXRpb25lZGl0LmNwcDogQWRkIFFUX05PX0lOUFVURElBTE9HIGd1YXJkLgor
ICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0Lmg6IERpdHRvLgorCisgICAgICAg
ICogUXRUZXN0QnJvd3Nlci9tYWlud2luZG93LmNwcDoKKyAgICAgICAgKE1haW5XaW5kb3c6OmJ1
aWxkVUkpOiBBZGQgUVRfTk9fSU5QVVRESUFMT0csIFFUX05PX1NIT1JUQ1VUIGFuZAorICAgICAg
ICBRVF9OT19VTkRPU1RBQ0sgZ3VhcmRzLgorICAgICAgICAoTWFpbldpbmRvdzo6c2V0QWRkcmVz
c1VybCk6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKyAgICAgICAgKE1haW5XaW5kb3c6
OmNoYW5nZUxvY2F0aW9uKTogRGl0dG8uCisgICAgICAgIChNYWluV2luZG93OjpvcGVuRmlsZSk6
IEFkZCBRVF9OT19GSUxFRElBTE9HIGd1YXJkLgorICAgICAgICAoTWFpbldpbmRvdzo6b3Blbkxv
Y2F0aW9uKTogQWRkIFFUX05PX0lOUFVURElBTE9HIGd1YXJkLgorCisgICAgICAgICogUXRUZXN0
QnJvd3Nlci93ZWJwYWdlLmNwcDoKKyAgICAgICAgKFdlYlBhZ2U6Om9wZW5VcmxJbkRlZmF1bHRC
cm93c2VyKTogQWRkIFFUX05PX0RFU0tUT1BTRVJWSUNFUyBndWFyZC4KKyAgICAgICAgKFdlYlBh
Z2U6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOiBBZGQgUVRfTk9fTElORUVESVQgZ3VhcmQuCisK
KyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwOgorICAgICAgICAoV2ViVmlld0dy
YXBoaWNzQmFzZWQ6OmFuaW1hdGVkRmxpcCk6IEFkZCBRVF9OT19BTklNQVRJT04gZ3VhcmQuCisg
ICAgICAgIChXZWJWaWV3R3JhcGhpY3NCYXNlZDo6YW5pbWF0ZWRZRmxpcCk6IERpdHRvLgorCiAy
MDEwLTEyLTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBRdCBidWlsZGZpeCBhZnRlciByNzQzMDEuCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDkzNWEzMDcuLjVmY2M2MDIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC01NDAs
NyArNTQwLDkgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJl
Zm9yZVRlc3RpbmcoKQogICAgIGNsb3NlUmVtYWluaW5nV2luZG93cygpOwogCiAgICAgbV9wYWdl
LT5yZXNldFNldHRpbmdzKCk7CisjaWZuZGVmIFFUX05PX1VORE9TVEFDSwogICAgIG1fcGFnZS0+
dW5kb1N0YWNrKCktPmNsZWFyKCk7CisjZW5kaWYKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5z
ZXRab29tRmFjdG9yKDEuMCk7CiAgICAgY2xlYXJIaXN0b3J5KG1fcGFnZSk7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmNsZWFyRnJhbWVOYW1lKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAgYi9Ub29s
cy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAppbmRleCAxYTRkMjhmLi44YTRiODg0
IDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAorKysg
Yi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcApAQCAtMTYzLDYgKzE2Myw3
IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OmFwcGx5UHJlZnMoKQogCiB2b2lkIExhdW5jaGVyV2lu
ZG93OjpjcmVhdGVDaHJvbWUoKQogeworI2lmbmRlZiBRVF9OT19TSE9SVENVVAogICAgIFFNZW51
KiBmaWxlTWVudSA9IG1lbnVCYXIoKS0+YWRkTWVudSgiJkZpbGUiKTsKICAgICBmaWxlTWVudS0+
YWRkQWN0aW9uKCJOZXcgV2luZG93IiwgdGhpcywgU0xPVChuZXdXaW5kb3coKSksIFFLZXlTZXF1
ZW5jZTo6TmV3KTsKICAgICBmaWxlTWVudS0+YWRkQWN0aW9uKHRyKCJPcGVuIEZpbGUuLi4iKSwg
dGhpcywgU0xPVChvcGVuRmlsZSgpKSwgUUtleVNlcXVlbmNlOjpPcGVuKTsKQEAgLTE3MCw3ICsx
NzEsOSBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpjcmVhdGVDaHJvbWUoKQogICAgIGZpbGVNZW51
LT5hZGRBY3Rpb24oIkNsb3NlIFdpbmRvdyIsIHRoaXMsIFNMT1QoY2xvc2UoKSksIFFLZXlTZXF1
ZW5jZTo6Q2xvc2UpOwogICAgIGZpbGVNZW51LT5hZGRTZXBhcmF0b3IoKTsKICAgICBmaWxlTWVu
dS0+YWRkQWN0aW9uKCJUYWtlIFNjcmVlbiBTaG90Li4uIiwgdGhpcywgU0xPVChzY3JlZW5zaG90
KCkpKTsKKyNpZm5kZWYgUVRfTk9fUFJJTlRFUgogICAgIGZpbGVNZW51LT5hZGRBY3Rpb24odHIo
IlByaW50Li4uIiksIHRoaXMsIFNMT1QocHJpbnQoKSksIFFLZXlTZXF1ZW5jZTo6UHJpbnQpOwor
I2VuZGlmCiAgICAgZmlsZU1lbnUtPmFkZFNlcGFyYXRvcigpOwogICAgIGZpbGVNZW51LT5hZGRB
Y3Rpb24oIlF1aXQiLCBRQXBwbGljYXRpb246Omluc3RhbmNlKCksIFNMT1QoY2xvc2VBbGxXaW5k
b3dzKCkpLCBRS2V5U2VxdWVuY2UoUXQ6OkNUUkwgfCBRdDo6S2V5X1EpKTsKIApAQCAtMzY4LDYg
KzM3MSw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OmNyZWF0ZUNocm9tZSgpCiAgICAgc2hvd0ZQ
Uy0+c2V0RW5hYmxlZChpc0dyYXBoaWNzQmFzZWQoKSk7CiAgICAgc2hvd0ZQUy0+Y29ubmVjdCh0
b2dnbGVHcmFwaGljc1ZpZXcsIFNJR05BTCh0b2dnbGVkKGJvb2wpKSwgU0xPVChzZXRFbmFibGVk
KGJvb2wpKSk7CiAgICAgc2hvd0ZQUy0+c2V0Q2hlY2tlZChtX3dpbmRvd09wdGlvbnMuc2hvd0Zy
YW1lUmF0ZSk7CisjZW5kaWYKIH0KIAogYm9vbCBMYXVuY2hlcldpbmRvdzo6aXNHcmFwaGljc0Jh
c2VkKCkgY29uc3QKQEAgLTU0Nyw2ICs1NTEsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93Ojp6b29t
QW5pbWF0aW9uRmluaXNoZWQoKQogCiB2b2lkIExhdW5jaGVyV2luZG93OjphcHBseVpvb20oKQog
eworI2lmbmRlZiBRVF9OT19BTklNQVRJT04KICAgICBpZiAoaXNHcmFwaGljc0Jhc2VkKCkgJiYg
cGFnZSgpLT5zZXR0aW5ncygpLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6VGlsZWRCYWNr
aW5nU3RvcmVFbmFibGVkKSkgewogICAgICAgICBRR3JhcGhpY3NXZWJWaWV3KiB2aWV3ID0gc3Rh
dGljX2Nhc3Q8V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3ZpZXcpLT5ncmFwaGljc1dlYlZpZXco
KTsKICAgICAgICAgdmlldy0+c2V0VGlsZWRCYWNraW5nU3RvcmVGcm96ZW4odHJ1ZSk7CkBAIC01
NjQsNiArNTY5LDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6YXBwbHlab29tKCkKICAgICAgICAg
bV96b29tQW5pbWF0aW9uLT5zdGFydCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlm
CiAgICAgcGFnZSgpLT5tYWluRnJhbWUoKS0+c2V0Wm9vbUZhY3RvcihxcmVhbChtX2N1cnJlbnRa
b29tKSAvIDEwMC4wKTsKIH0KIApAQCAtNjIwLDEyICs2MjYsMTQgQEAgdm9pZCBMYXVuY2hlcldp
bmRvdzo6c2NyZWVuc2hvdCgpCiAgICAgbGFiZWwtPnNob3coKTsKICNlbmRpZgogCisjaWZuZGVm
IFFUX05PX0ZJTEVESUFMT0cKICAgICBRU3RyaW5nIGZpbGVOYW1lID0gUUZpbGVEaWFsb2c6Omdl
dFNhdmVGaWxlTmFtZShsYWJlbCwgIlNjcmVlbnNob3QiKTsKICAgICBpZiAoIWZpbGVOYW1lLmlz
RW1wdHkoKSkgewogICAgICAgICBwaXhtYXAuc2F2ZShmaWxlTmFtZSwgInBuZyIpOwogICAgICAg
ICBpZiAobGFiZWwpCiAgICAgICAgICAgICBsYWJlbC0+c2V0V2luZG93VGl0bGUoUVN0cmluZygi
U2NyZWVuc2hvdCAtIFNhdmVkIGF0ICUxIikuYXJnKGZpbGVOYW1lKSk7CiAgICAgfQorI2VuZGlm
CiAKICNpZiBkZWZpbmVkKFFUX0NPTkZJR1VSRURfV0lUSF9PUEVOR0wpCiAgICAgdG9nZ2xlUUdM
V2lkZ2V0Vmlld3BvcnQobV93aW5kb3dPcHRpb25zLnVzZVFHTFdpZGdldFZpZXdwb3J0KTsKQEAg
LTY1Nyw2ICs2NjUsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpkdW1wSHRtbCgpCiAKIHZvaWQg
TGF1bmNoZXJXaW5kb3c6OnNlbGVjdEVsZW1lbnRzKCkKIHsKKyNpZm5kZWYgUVRfTk9fSU5QVVRE
SUFMT0cKICAgICBib29sIG9rOwogICAgIFFTdHJpbmcgc3RyID0gUUlucHV0RGlhbG9nOjpnZXRU
ZXh0KHRoaXMsICJTZWxlY3QgZWxlbWVudHMiLCAiQ2hvb3NlIGVsZW1lbnRzIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRTGluZUVkaXQ6Ok5vcm1hbCwgImEiLCAm
b2spOwpAQCAtNjY5LDYgKzY3OCw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OnNlbGVjdEVsZW1l
bnRzKCkKICAgICAgICAgc3RhdHVzQmFyKCktPnNob3dNZXNzYWdlKFFTdHJpbmcoIiUxIGVsZW1l
bnQocykgc2VsZWN0ZWQiKS5hcmcocmVzdWx0LmNvdW50KCkpLCA1MDAwKTsKICNlbmRpZgogICAg
IH0KKyNlbmRpZgogfQogCiB2b2lkIExhdW5jaGVyV2luZG93OjpzZXRUb3VjaE1vY2tpbmcoYm9v
bCBvbikKQEAgLTgyMSw2ICs4MzEsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpzaG93VXNlckFn
ZW50RGlhbG9nKCkKICAgICBRVkJveExheW91dCogbGF5b3V0ID0gbmV3IFFWQm94TGF5b3V0KGRp
YWxvZyk7CiAgICAgZGlhbG9nLT5zZXRMYXlvdXQobGF5b3V0KTsKIAorI2lmbmRlZiBRVF9OT19D
T01CT0JPWAogICAgIFFDb21ib0JveCogY29tYm8gPSBuZXcgUUNvbWJvQm94KGRpYWxvZyk7CiAg
ICAgY29tYm8tPnNldFNpemVBZGp1c3RQb2xpY3koUUNvbWJvQm94OjpBZGp1c3RUb01pbmltdW1D
b250ZW50c0xlbmd0aCk7CiAgICAgY29tYm8tPnNldEVkaXRhYmxlKHRydWUpOwpAQCAtODI5LDYg
Kzg0MCw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OnNob3dVc2VyQWdlbnREaWFsb2coKQogCiAg
ICAgaW50IGluZGV4ID0gY29tYm8tPmZpbmRUZXh0KHBhZ2UoKS0+dXNlckFnZW50Rm9yVXJsKFFV
cmwoKSkpOwogICAgIGNvbWJvLT5zZXRDdXJyZW50SW5kZXgoaW5kZXgpOworI2VuZGlmCiAKICAg
ICBRRGlhbG9nQnV0dG9uQm94KiBidXR0b25Cb3ggPSBuZXcgUURpYWxvZ0J1dHRvbkJveChRRGlh
bG9nQnV0dG9uQm94OjpPawogICAgICAgICAgICAgfCBRRGlhbG9nQnV0dG9uQm94OjpDYW5jZWws
IFF0OjpIb3Jpem9udGFsLCBkaWFsb2cpOwpAQCAtODM2LDExICs4NDgsMTMgQEAgdm9pZCBMYXVu
Y2hlcldpbmRvdzo6c2hvd1VzZXJBZ2VudERpYWxvZygpCiAgICAgY29ubmVjdChidXR0b25Cb3gs
IFNJR05BTChyZWplY3RlZCgpKSwgZGlhbG9nLCBTTE9UKHJlamVjdCgpKSk7CiAgICAgbGF5b3V0
LT5hZGRXaWRnZXQoYnV0dG9uQm94KTsKIAorI2lmbmRlZiBRVF9OT19DT01CT0JPWAogICAgIGlm
IChkaWFsb2ctPmV4ZWMoKSAmJiAhY29tYm8tPmN1cnJlbnRUZXh0KCkuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIHBhZ2UoKS0+c2V0VXNlckFnZW50KGNvbWJvLT5jdXJyZW50VGV4dCgpKTsKICAgICAg
ICAgaWYgKCFpdGVtcy5jb250YWlucyhjb21iby0+Y3VycmVudFRleHQoKSkpCiAgICAgICAgICAg
ICBzZXR0aW5ncy5zZXRWYWx1ZSgiQ3VzdG9tVXNlckFnZW50IiwgY29tYm8tPmN1cnJlbnRUZXh0
KCkpOwogICAgIH0KKyNlbmRpZgogCiAgICAgZGVsZXRlIGRpYWxvZzsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaCBiL1Rvb2xzL1F0VGVzdEJyb3dz
ZXIvbGF1bmNoZXJ3aW5kb3cuaAppbmRleCBlMzVlN2ZkLi5mMzlmYWVmIDEwMDY0NAotLS0gYS9U
b29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmgKKysrIGIvVG9vbHMvUXRUZXN0QnJv
d3Nlci9sYXVuY2hlcndpbmRvdy5oCkBAIC03NSw2ICs3NSw4IEBACiAjdW5kZWYgS2V5UHJlc3MK
ICNlbmRpZgogCitjbGFzcyBRUHJvcGVydHlBbmltYXRpb247CisKIGNsYXNzIFdpbmRvd09wdGlv
bnMgewogcHVibGljOgogICAgIFdpbmRvd09wdGlvbnMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRU
ZXN0QnJvd3Nlci9sb2NhdGlvbmVkaXQuY3BwIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlv
bmVkaXQuY3BwCmluZGV4IGE5N2YxNDguLjg1YmQyMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVz
dEJyb3dzZXIvbG9jYXRpb25lZGl0LmNwcAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xvY2F0
aW9uZWRpdC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgImxvY2F0aW9uZWRpdC5o
IgogCisjaWZuZGVmIFFUX05PX0lOUFVURElBTE9HCisKIExvY2F0aW9uRWRpdDo6TG9jYXRpb25F
ZGl0KFFXaWRnZXQqIHBhcmVudCkKICAgICA6IFFMaW5lRWRpdChwYXJlbnQpCiAgICAgLCBtX3By
b2dyZXNzKDApCkBAIC03OCwzICs4MCw1IEBAIHZvaWQgTG9jYXRpb25FZGl0Ojpmb2N1c0luRXZl
bnQoUUZvY3VzRXZlbnQqIGV2KQogICAgIFFUaW1lcjo6c2luZ2xlU2hvdCgwLCB0aGlzLCBTTE9U
KHNlbGVjdEFsbCgpKSk7CiAjZW5kaWYKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9R
dFRlc3RCcm93c2VyL2xvY2F0aW9uZWRpdC5oIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlv
bmVkaXQuaAppbmRleCBlODI5MjBjLi43NTI0OTdlIDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RC
cm93c2VyL2xvY2F0aW9uZWRpdC5oCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRpb25l
ZGl0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZm5kZWYgbG9jYXRpb25lZGl0X2gKICNkZWZpbmUg
bG9jYXRpb25lZGl0X2gKIAorI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwogI2luY2x1ZGUgPFF0
R3VpPgogCiBjbGFzcyBMb2NhdGlvbkVkaXQgOiBwdWJsaWMgUUxpbmVFZGl0IHsKQEAgLTUyLDMg
KzUzLDQgQEAgcHJpdmF0ZToKIH07CiAKICNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9RdFRlc3RCcm93c2VyL21haW53aW5kb3cuY3BwIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWlu
d2luZG93LmNwcAppbmRleCBmMzYxZmE4Li4zYTk3MzExIDEwMDY0NAotLS0gYS9Ub29scy9RdFRl
c3RCcm93c2VyL21haW53aW5kb3cuY3BwCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndp
bmRvdy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBNYWluV2luZG93OjpidWlsZFVJKCkKICAg
ICBtX3Rvb2xCYXItPmFkZEFjdGlvbihyZWxvYWRBY3Rpb24pOwogICAgIG1fdG9vbEJhci0+YWRk
QWN0aW9uKHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdlOjpTdG9wKSk7CiAKKyNpZm5kZWYgUVRfTk9f
SU5QVVRESUFMT0cKICAgICB1cmxFZGl0ID0gbmV3IExvY2F0aW9uRWRpdChtX3Rvb2xCYXIpOwog
ICAgIHVybEVkaXQtPnNldFNpemVQb2xpY3koUVNpemVQb2xpY3k6OkV4cGFuZGluZywgdXJsRWRp
dC0+c2l6ZVBvbGljeSgpLnZlcnRpY2FsUG9saWN5KCkpOwogICAgIGNvbm5lY3QodXJsRWRpdCwg
U0lHTkFMKHJldHVyblByZXNzZWQoKSksIFNMT1QoY2hhbmdlTG9jYXRpb24oKSkpOwpAQCAtNzks
MTkgKzgwLDI0IEBAIHZvaWQgTWFpbldpbmRvdzo6YnVpbGRVSSgpCiAgICAgbV90b29sQmFyLT5h
ZGRXaWRnZXQodXJsRWRpdCk7CiAjZW5kaWYKIAotICAgIGNvbm5lY3QocGFnZSgpLT5tYWluRnJh
bWUoKSwgU0lHTkFMKHRpdGxlQ2hhbmdlZChjb25zdCBRU3RyaW5nJikpLAotICAgICAgICAgICAg
dGhpcywgU0xPVChzZXRXaW5kb3dUaXRsZShjb25zdCBRU3RyaW5nJikpKTsKICAgICBjb25uZWN0
KHBhZ2UoKS0+bWFpbkZyYW1lKCksIFNJR05BTCh1cmxDaGFuZ2VkKFFVcmwpKSwgdGhpcywgU0xP
VChzZXRBZGRyZXNzVXJsKFFVcmwpKSk7CiAgICAgY29ubmVjdChwYWdlKCksIFNJR05BTChsb2Fk
UHJvZ3Jlc3MoaW50KSksIHVybEVkaXQsIFNMT1Qoc2V0UHJvZ3Jlc3MoaW50KSkpOworI2VuZGlm
CisKKyAgICBjb25uZWN0KHBhZ2UoKS0+bWFpbkZyYW1lKCksIFNJR05BTCh0aXRsZUNoYW5nZWQo
Y29uc3QgUVN0cmluZyYpKSwKKyAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKHNldFdpbmRvd1Rp
dGxlKGNvbnN0IFFTdHJpbmcmKSkpOwogICAgIGNvbm5lY3QocGFnZSgpLCBTSUdOQUwod2luZG93
Q2xvc2VSZXF1ZXN0ZWQoKSksIHRoaXMsIFNMT1QoY2xvc2UoKSkpOwogCisjaWZuZGVmIFFUX05P
X1NIT1JUQ1VUCiAgICAgLy8gc2hvcnQtY3V0cwogICAgIHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdl
OjpCYWNrKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlOjpCYWNrKTsKICAgICBwYWdlKCktPmFj
dGlvbihRV2ViUGFnZTo6U3RvcCktPnNldFNob3J0Y3V0KFF0OjpLZXlfRXNjYXBlKTsKICAgICBw
YWdlKCktPmFjdGlvbihRV2ViUGFnZTo6Rm9yd2FyZCktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5j
ZTo6Rm9yd2FyZCk7CiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlJlbG9hZCktPnNldFNo
b3J0Y3V0KFFLZXlTZXF1ZW5jZTo6UmVmcmVzaCk7CisjaWZuZGVmIFFUX05PX1VORE9TVEFDSwog
ICAgIHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdlOjpVbmRvKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVl
bmNlOjpVbmRvKTsKICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6UmVkbyktPnNldFNob3J0
Y3V0KFFLZXlTZXF1ZW5jZTo6UmVkbyk7CisjZW5kaWYKICAgICBwYWdlKCktPmFjdGlvbihRV2Vi
UGFnZTo6Q3V0KS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlOjpDdXQpOwogICAgIHBhZ2UoKS0+
YWN0aW9uKFFXZWJQYWdlOjpDb3B5KS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlOjpDb3B5KTsK
ICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6UGFzdGUpLT5zZXRTaG9ydGN1dChRS2V5U2Vx
dWVuY2U6OlBhc3RlKTsKQEAgLTk5LDYgKzEwNSw3IEBAIHZvaWQgTWFpbldpbmRvdzo6YnVpbGRV
SSgpCiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlRvZ2dsZUJvbGQpLT5zZXRTaG9ydGN1
dChRS2V5U2VxdWVuY2UoUXQ6OkNUUkwgfCBRdDo6S2V5X0IpKTsKICAgICBwYWdlKCktPmFjdGlv
bihRV2ViUGFnZTo6VG9nZ2xlSXRhbGljKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlKFF0OjpD
VFJMIHwgUXQ6OktleV9JKSk7CiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlRvZ2dsZVVu
ZGVybGluZSktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZShRdDo6Q1RSTCB8IFF0OjpLZXlfVSkp
OworI2VuZGlmCiB9CiAKIHZvaWQgTWFpbldpbmRvdzo6c2V0UGFnZShXZWJQYWdlKiBwYWdlKQpA
QCAtMTI0LDggKzEzMSwxMCBAQCB2b2lkIE1haW5XaW5kb3c6OnNldEFkZHJlc3NVcmwoY29uc3Qg
UVVybCYgdXJsKQogCiB2b2lkIE1haW5XaW5kb3c6OnNldEFkZHJlc3NVcmwoY29uc3QgUVN0cmlu
ZyYgdXJsKQogeworI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwogICAgIGlmICghdXJsLmNvbnRh
aW5zKCJhYm91dDoiKSkKICAgICAgICAgdXJsRWRpdC0+c2V0VGV4dCh1cmwpOworI2VuZGlmCiB9
CiAKIHZvaWQgTWFpbldpbmRvdzo6YWRkQ29tcGxldGVyRW50cnkoY29uc3QgUVVybCYgdXJsKQpA
QCAtMTYzLDYgKzE3Miw3IEBAIHZvaWQgTWFpbldpbmRvdzo6bG9hZChjb25zdCBRVXJsJiB1cmwp
CiAKIHZvaWQgTWFpbldpbmRvdzo6Y2hhbmdlTG9jYXRpb24oKQogeworI2lmbmRlZiBRVF9OT19J
TlBVVERJQUxPRwogICAgIFFTdHJpbmcgc3RyaW5nID0gdXJsRWRpdC0+dGV4dCgpOwogICAgIFFV
cmwgbWFpbkZyYW1lVVJMID0gcGFnZSgpLT5tYWluRnJhbWUoKS0+dXJsKCk7CiAKQEAgLTE3Miwx
MCArMTgyLDEyIEBAIHZvaWQgTWFpbldpbmRvdzo6Y2hhbmdlTG9jYXRpb24oKQogICAgIH0KIAog
ICAgIGxvYWQoc3RyaW5nKTsKKyNlbmRpZgogfQogCiB2b2lkIE1haW5XaW5kb3c6Om9wZW5GaWxl
KCkKIHsKKyNpZm5kZWYgUVRfTk9fRklMRURJQUxPRwogICAgIHN0YXRpYyBjb25zdCBRU3RyaW5n
IGZpbHRlcigiSFRNTCBGaWxlcyAoKi5odG0gKi5odG1sKTs7VGV4dCBGaWxlcyAoKi50eHQpOztJ
bWFnZSBGaWxlcyAoKi5naWYgKi5qcGcgKi5wbmcpOztBbGwgRmlsZXMgKCopIik7CiAKICAgICBR
RmlsZURpYWxvZyBmaWxlRGlhbG9nKHRoaXMsIHRyKCJPcGVuIiksIFFTdHJpbmcoKSwgZmlsdGVy
KTsKQEAgLTE4OCwxMCArMjAwLDEzIEBAIHZvaWQgTWFpbldpbmRvdzo6b3BlbkZpbGUoKQogICAg
ICAgICBpZiAoIXNlbGVjdGVkRmlsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBsb2FkKFFVcmw6
OmZyb21Mb2NhbEZpbGUoc2VsZWN0ZWRGaWxlKSk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQg
TWFpbldpbmRvdzo6b3BlbkxvY2F0aW9uKCkKIHsKKyNpZm5kZWYgUVRfTk9fSU5QVVRESUFMT0cK
ICAgICB1cmxFZGl0LT5zZWxlY3RBbGwoKTsKICAgICB1cmxFZGl0LT5zZXRGb2N1cygpOworI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwIGIvVG9v
bHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAppbmRleCAxNWY2ZGIwLi5mYTY0YjExIDEwMDY0
NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCisrKyBiL1Rvb2xzL1F0VGVz
dEJyb3dzZXIvd2VicGFnZS5jcHAKQEAgLTEwNiwxMCArMTA2LDEyIEBAIGJvb2wgV2ViUGFnZTo6
YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUU5ldHdvcmtS
ZXF1ZXN0JiByCiAKIHZvaWQgV2ViUGFnZTo6b3BlblVybEluRGVmYXVsdEJyb3dzZXIoY29uc3Qg
UVVybCYgdXJsKQogeworI2lmbmRlZiBRVF9OT19ERVNLVE9QU0VSVklDRVMKICAgICBpZiAoUUFj
dGlvbiogYWN0aW9uID0gcW9iamVjdF9jYXN0PFFBY3Rpb24qPihzZW5kZXIoKSkpCiAgICAgICAg
IFFEZXNrdG9wU2VydmljZXM6Om9wZW5VcmwoYWN0aW9uLT5kYXRhKCkudG9VcmwoKSk7CiAgICAg
ZWxzZQogICAgICAgICBRRGVza3RvcFNlcnZpY2VzOjpvcGVuVXJsKHVybCk7CisjZW5kaWYKIH0K
IAogUVN0cmluZyBXZWJQYWdlOjp1c2VyQWdlbnRGb3JVcmwoY29uc3QgUVVybCYgdXJsKSBjb25z
dApAQCAtMTYyLDYgKzE2NCw3IEBAIHZvaWQgV2ViUGFnZTo6YXV0aGVudGljYXRpb25SZXF1aXJl
ZChRTmV0d29ya1JlcGx5KiByZXBseSwgUUF1dGhlbnRpY2F0b3IqIGF1dGhlCiAgICAgbWVzc2Fn
ZUxhYmVsLT5zZXRUZXh0KG1lc3NhZ2VTdHIuYXJnKHJlcGx5LT51cmwoKS50b1N0cmluZygpKSk7
CiAgICAgbGF5b3V0LT5hZGRXaWRnZXQobWVzc2FnZUxhYmVsLCAwLCAxKTsKIAorI2lmbmRlZiBR
VF9OT19MSU5FRURJVAogICAgIFFMYWJlbCogdXNlckxhYmVsID0gbmV3IFFMYWJlbCgiVXNlcm5h
bWU6IiwgZGlhbG9nKTsKICAgICBsYXlvdXQtPmFkZFdpZGdldCh1c2VyTGFiZWwsIDEsIDApOwog
ICAgIFFMaW5lRWRpdCogdXNlcklucHV0ID0gbmV3IFFMaW5lRWRpdChkaWFsb2cpOwpAQCAtMTcy
LDYgKzE3NSw3IEBAIHZvaWQgV2ViUGFnZTo6YXV0aGVudGljYXRpb25SZXF1aXJlZChRTmV0d29y
a1JlcGx5KiByZXBseSwgUUF1dGhlbnRpY2F0b3IqIGF1dGhlCiAgICAgUUxpbmVFZGl0KiBwYXNz
SW5wdXQgPSBuZXcgUUxpbmVFZGl0KGRpYWxvZyk7CiAgICAgcGFzc0lucHV0LT5zZXRFY2hvTW9k
ZShRTGluZUVkaXQ6OlBhc3N3b3JkKTsKICAgICBsYXlvdXQtPmFkZFdpZGdldChwYXNzSW5wdXQs
IDIsIDEpOworI2VuZGlmCiAKICAgICBRRGlhbG9nQnV0dG9uQm94KiBidXR0b25Cb3ggPSBuZXcg
UURpYWxvZ0J1dHRvbkJveChRRGlhbG9nQnV0dG9uQm94OjpPawogICAgICAgICAgICAgfCBRRGlh
bG9nQnV0dG9uQm94OjpDYW5jZWwsIFF0OjpIb3Jpem9udGFsLCBkaWFsb2cpOwpAQCAtMTgwLDgg
KzE4NCwxMCBAQCB2b2lkIFdlYlBhZ2U6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtS
ZXBseSogcmVwbHksIFFBdXRoZW50aWNhdG9yKiBhdXRoZQogICAgIGxheW91dC0+YWRkV2lkZ2V0
KGJ1dHRvbkJveCwgMywgMSk7CiAKICAgICBpZiAoZGlhbG9nLT5leGVjKCkgPT0gUURpYWxvZzo6
QWNjZXB0ZWQpIHsKKyNpZm5kZWYgUVRfTk9fTElORUVESVQKICAgICAgICAgYXV0aGVudGljYXRv
ci0+c2V0VXNlcih1c2VySW5wdXQtPnRleHQoKSk7CiAgICAgICAgIGF1dGhlbnRpY2F0b3ItPnNl
dFBhc3N3b3JkKHBhc3NJbnB1dC0+dGV4dCgpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGRlbGV0
ZSBkaWFsb2c7CmRpZmYgLS1naXQgYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwIGIv
VG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3LmNwcAppbmRleCAyYTU0MWZiLi44ZTMzNjIwIDEw
MDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwCisrKyBiL1Rvb2xzL1F0
VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAKQEAgLTE2OSw2ICsxNjksNyBAQCB2b2lkIFdlYlZpZXdH
cmFwaGljc0Jhc2VkOjp1cGRhdGVGcmFtZVJhdGUoKQogCiB2b2lkIFdlYlZpZXdHcmFwaGljc0Jh
c2VkOjphbmltYXRlZEZsaXAoKQogeworI2lmbmRlZiBRVF9OT19BTklNQVRJT04KICAgICBRU2l6
ZUYgY2VudGVyID0gZ3JhcGhpY3NXZWJWaWV3KCktPmJvdW5kaW5nUmVjdCgpLnNpemUoKSAvIDI7
CiAgICAgUVBvaW50RiBjZW50ZXJQb2ludCA9IFFQb2ludEYoY2VudGVyLndpZHRoKCksIGNlbnRl
ci5oZWlnaHQoKSk7CiAgICAgZ3JhcGhpY3NXZWJWaWV3KCktPnNldFRyYW5zZm9ybU9yaWdpblBv
aW50KGNlbnRlclBvaW50KTsKQEAgLTE4MiwxMCArMTgzLDEyIEBAIHZvaWQgV2ViVmlld0dyYXBo
aWNzQmFzZWQ6OmFuaW1hdGVkRmxpcCgpCiAgICAgYW5pbWF0aW9uLT5zZXRFbmRWYWx1ZShyb3Rh
dGlvbiArIDE4MCAtIChyb3RhdGlvbiAlIDE4MCkpOwogCiAgICAgYW5pbWF0aW9uLT5zdGFydChR
QWJzdHJhY3RBbmltYXRpb246OkRlbGV0ZVdoZW5TdG9wcGVkKTsKKyNlbmRpZgogfQogCiB2b2lk
IFdlYlZpZXdHcmFwaGljc0Jhc2VkOjphbmltYXRlZFlGbGlwKCkKIHsKKyNpZm5kZWYgUVRfTk9f
QU5JTUFUSU9OCiAgICAgaWYgKCFtX21hY2hpbmUpIHsKICAgICAgICAgbV9tYWNoaW5lID0gbmV3
IFFTdGF0ZU1hY2hpbmUodGhpcyk7CiAKQEAgLTIxNyw2ICsyMjAsNyBAQCB2b2lkIFdlYlZpZXdH
cmFwaGljc0Jhc2VkOjphbmltYXRlZFlGbGlwKCkKICAgICB9CiAKICAgICBtX21hY2hpbmUtPnN0
YXJ0KCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJWaWV3R3JhcGhpY3NCYXNlZDo6cGFpbnRFdmVu
dChRUGFpbnRFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiZWFmOTYuLmZlNjJhMWUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTAtMTItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQmFzZWxp
bmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGVy
ZSBpcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6IEZpeCB0aGUgbG9jYXRpb24gb2YgdGhlCisgICAgICAg
IFFUX05PX0FOSU1BVElPTiBndWFyZC4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1doZWVsRXZl
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OmFwcGx5RGVs
dGEpOiBGaXggdGhlIGxvY2F0aW9uIG9mIHRoZQorICAgICAgICBRVF9OT19XSEVFTEVWRU5UIGd1
YXJkLgorCiAyMDEwLTEyLTE5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCmluZGV4IGYzMTg0NGEuLmNmYjkwNTkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5j
cHAKQEAgLTEzNzUsNiArMTM3NSw3IEBAIHN0YXRpYyBpbmxpbmUgcXJlYWwgYXBwbHlUaW1pbmdG
dW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24sIHFyCiAKIC8vIEhl
bHBlciBmdW5jdGlvbnMgdG8gc2FmZWx5IGdldCBhIHZhbHVlIG91dCBvZiBXZWJDb3JlJ3MgQW5p
bWF0aW9uVmFsdWUqLgogCisjaWZuZGVmIFFUX05PX0FOSU1BVElPTgogc3RhdGljIHZvaWQgd2Vi
a2l0QW5pbWF0aW9uVG9RdEFuaW1hdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlKiBhbmlt
YXRpb25WYWx1ZSwgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKIHsK
ICAgICB0cmFuc2Zvcm1PcGVyYXRpb25zID0gVHJhbnNmb3JtT3BlcmF0aW9ucygpOwpAQCAtMTM5
MCw3ICsxMzkxLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0QW5pbWF0aW9uVG9RdEFuaW1hdGlvblZh
bHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlKiBhbmltYXRpb25WYWwKICAgICByZWFsVmFsdWUgPSBh
bmltYXRpb25WYWx1ZSA/IHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPihh
bmltYXRpb25WYWx1ZSktPnZhbHVlKCkgOiAwOwogfQogCi0jaWZuZGVmIFFUX05PX0FOSU1BVElP
TgogLy8gV2UgcHV0IGEgYml0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGluIGEgYmFzZSBjbGFzcyB0
byBhbGxvdyBjYXN0aW5nIGFuZCB0byBzYXZlIHNvbWUgY29kZSBzaXplLgogCiBjbGFzcyBBbmlt
YXRpb25RdEJhc2UgOiBwdWJsaWMgUUFic3RyYWN0QW5pbWF0aW9uIHsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQv
V2hlZWxFdmVudFF0LmNwcAppbmRleCA1N2E3ZWJjLi5hYTYxZDkxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9XaGVlbEV2ZW50UXQuY3BwCkBAIC00OCwxMCArNDgsMTAgQEAgdm9pZCBQbGF0Zm9ybVdoZWVs
RXZlbnQ6OmFwcGx5RGVsdGEoaW50IGRlbHRhLCBRdDo6T3JpZW50YXRpb24gb3JpZW50YXRpb24p
CiAgICAgbV93aGVlbFRpY2tzWCA9IG1fZGVsdGFYOwogICAgIG1fd2hlZWxUaWNrc1kgPSBtX2Rl
bHRhWTsKIAorI2lmbmRlZiBRVF9OT19XSEVFTEVWRU5UCiAgICAgLy8gVXNlIHRoZSBzYW1lIHNp
bmdsZSBzY3JvbGwgc3RlcCBhcyBRVGV4dEVkaXQKICAgICAvLyAoaW4gUVRleHRFZGl0UHJpdmF0
ZTo6aW5pdCBbaCx2XWJhci0+c2V0U2luZ2xlU3RlcCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQg
Y0RlZmF1bHRRdFNjcm9sbFN0ZXAgPSAyMC5mOwotI2lmbmRlZiBRVF9OT19XSEVFTEVWRU5UCiAg
ICAgbV9kZWx0YVggKj0gKGZ1bGxUaWNrKSA/IFFBcHBsaWNhdGlvbjo6d2hlZWxTY3JvbGxMaW5l
cygpICogY0RlZmF1bHRRdFNjcm9sbFN0ZXAgOiAxOwogICAgIG1fZGVsdGFZICo9IChmdWxsVGlj
aykgPyBRQXBwbGljYXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxT
dGVwIDogMTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0LnByaSBiL1dlYktpdC5wcmkKaW5k
ZXggNmIwMWI0OS4uNWI2OTA1NCAxMDA2NDQKLS0tIGEvV2ViS2l0LnByaQorKysgYi9XZWJLaXQu
cHJpCkBAIC0xMTMsMyArMTEzLDMwIEBAIGNvbnRhaW5zKERFRklORVMsIFFUX05PX1VJVE9PTFMp
OiBDT05GSUcgLT0gdWl0b29scwogIyBkaXNhYmxlZCBpbiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rv
b2xzL3ZzcHJvcHMvY29tbW9uLnZzcHJvcHMKIHdpbjMyLW1zdmMqfHdpbmNlKjogUU1BS0VfQ1hY
RkxBR1MgKz0gLXdkNDI5MSAtd2Q0MzQ0IC13ZDQzOTYgLXdkNDUwMyAtd2Q0ODAwIC13ZDQ4MTkg
LXdkNDk5NgogCitDT05GSUcocXRfbWluaW1hbCkgeworICAgIERFRklORVMgKz0gUVRfTk9fQU5J
TUFUSU9OCisgICAgREVGSU5FUyArPSBRVF9OT19CRUFSRVJNQU5BR0VNRU5UCisgICAgREVGSU5F
UyArPSBRVF9OT19DTElQQk9BUkQKKyAgICBERUZJTkVTICs9IFFUX05PX0NPTUJPQk9YCisgICAg
REVGSU5FUyArPSBRVF9OT19DUkFTSEhBTkRMRVIKKyAgICBERUZJTkVTICs9IFFUX05PX0NVUlNP
UgorICAgIERFRklORVMgKz0gUVRfTk9fREVTS1RPUFNFUlZJQ0VTCisgICAgREVGSU5FUyArPSBR
VF9OT19GSUxFRElBTE9HCisgICAgREVGSU5FUyArPSBRVF9OT19HUkFQSElDU0VGRkVDVAorICAg
IERFRklORVMgKz0gUVRfTk9fSU0KKyAgICBERUZJTkVTICs9IFFUX05PX0lOUFVURElBTE9HCisg
ICAgREVGSU5FUyArPSBRVF9OT19MSU5FRURJVAorICAgIERFRklORVMgKz0gUVRfTk9fTUVTU0FH
RUJPWAorICAgIERFRklORVMgKz0gUVRfTk9fT1BFTlNTTAorICAgIERFRklORVMgKz0gUVRfTk9f
UFJJTlRFUgorICAgIERFRklORVMgKz0gUVRfTk9fUVVVSURfU1RSSU5HCisgICAgREVGSU5FUyAr
PSBRVF9OT19TSE9SVENVVAorICAgIERFRklORVMgKz0gUVRfTk9fU1RZTEVfU1RZTEVTSEVFVAor
ICAgIERFRklORVMgKz0gUVRfTk9fU1lTVEVNVFJBWUlDT04KKyAgICBERUZJTkVTICs9IFFUX05P
X1RFTVBPUkFSWUZJTEUKKyAgICBERUZJTkVTICs9IFFUX05PX1RPT0xUSVAKKyAgICBERUZJTkVT
ICs9IFFUX05PX1VJVE9PTFMKKyAgICBERUZJTkVTICs9IFFUX05PX1VORE9DT01NQU5ECisgICAg
REVGSU5FUyArPSBRVF9OT19VTkRPU1RBQ0sKKyAgICBERUZJTkVTICs9IFFUX05PX1hSRU5ERVIK
K30KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CmluZGV4IDA3MzhmNmMuLjg3ZTU5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTEyLTE5ICBM
YXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEJhc2VsaW5lIHF0X21pbmlt
YWwgY29uZmlndXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTEzMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpzaG93KTogQWRkIFFUX05PX0NPTUJP
Qk9YIGd1YXJkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF0RmFsbGJhY2tXZWJQb3B1cDo6cG9wdWxhdGUpOiBB
ZGQgUVRfTk9fVE9PTFRJUCBndWFyZC4KKworICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90c3Rf
cXdlYmZyYW1lLmNwcDogQWRkIFFUX05PX0NPTUJPQk9YIGd1YXJkLgorICAgICAgICAqIHRlc3Rz
L3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CisgICAgICAgIChQbHVnaW5QYWdlOjpjcmVhdGVQ
bHVnaW4pOiBBZGQgUVRfTk9fSU5QVVRESUFMT0cgZ3VhcmQuCisKIDIwMTAtMTItMTcgIEFyaXlh
IEhpZGF5YXQgIDxhcml5YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9u
aW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNwcAppbmRleCA5
YjM0OTU1Li4wYzBmMmQ3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUG9w
dXBNZW51UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVRdC5j
cHAKQEAgLTk3LDYgKzk3LDcgQEAgdm9pZCBQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCgp
CiAKIHZvaWQgUG9wdXBNZW51UXQ6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3
KiB2aWV3LCBpbnQgaW5kZXgpCiB7CisjaWZuZGVmIFFUX05PX0NPTUJPQk9YCiAgICAgaWYgKCFt
X3BvcHVwQ2xpZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTExNyw2ICsxMTgsNyBAQCB2b2lk
IFBvcHVwTWVudVF0OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywg
aW50IGluZGV4KQogICAgICAgICBkZWxldGUgbV9zZWxlY3REYXRhOwogICAgIG1fc2VsZWN0RGF0
YSA9IG5ldyBTZWxlY3REYXRhKG1fcG9wdXBDbGllbnQpOwogICAgIG1fcG9wdXAtPnNob3coKm1f
c2VsZWN0RGF0YSk7CisjZW5kaWYKIH0KIAogdm9pZCBQb3B1cE1lbnVRdDo6ZGlkSGlkZSgpCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNw
cCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2ViUG9wdXAuY3BwCmluZGV4
IDNmNjlhNDcuLmFmYTY0OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
dEZhbGxiYWNrV2ViUG9wdXAuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZh
bGxiYWNrV2ViUG9wdXAuY3BwCkBAIC0yMzIsNyArMjMyLDkgQEAgdm9pZCBRdEZhbGxiYWNrV2Vi
UG9wdXA6OnBvcHVsYXRlKGNvbnN0IFFXZWJTZWxlY3REYXRhJiBkYXRhKQogICAgICAgICBjYXNl
IFFXZWJTZWxlY3REYXRhOjpPcHRpb246CiAgICAgICAgICAgICBtX2NvbWJvLT5pbnNlcnRJdGVt
KGksIGRhdGEuaXRlbVRleHQoaSkpOwogICAgICAgICAgICAgbW9kZWwtPml0ZW0oaSktPnNldEVu
YWJsZWQoZGF0YS5pdGVtSXNFbmFibGVkKGkpKTsKKyNpZm5kZWYgUVRfTk9fVE9PTFRJUAogICAg
ICAgICAgICAgbW9kZWwtPml0ZW0oaSktPnNldFRvb2xUaXAoZGF0YS5pdGVtVG9vbFRpcChpKSk7
CisjZW5kaWYKICAgICAgICAgICAgIGlmIChkYXRhLml0ZW1Jc1NlbGVjdGVkKGkpKQogICAgICAg
ICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAgYi9XZWJLaXQv
cXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IDJhZTg1ZTQuLjZiMGI1
OGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5j
cHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcApAQCAt
NjAzLDcgKzYwMyw3IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBzZXRIdG1sV2l0aEpTQWxl
cnQoKTsKICAgICB2b2lkIGlwdjZIb3N0RW5jb2RpbmcoKTsKICAgICB2b2lkIG1ldGFEYXRhKCk7
Ci0jaWYgIWRlZmluZWQoUV9XU19NQUVNT181KSAmJiAhZGVmaW5lZChRX09TX1NZTUJJQU4pCisj
aWYgIWRlZmluZWQoUV9XU19NQUVNT181KSAmJiAhZGVmaW5lZChRX09TX1NZTUJJQU4pICYmICFk
ZWZpbmVkKFFUX05PX0NPTUJPQk9YKQogICAgIC8vIGFzIG1hZW1vIDUgJiYgc3ltYmlhbiBkbyBu
b3QgdXNlIFFDb21ib0JveGVzIHRvIGltcGxlbWVudCB0aGUgcG9wdXBzCiAgICAgLy8gdGhpcyB0
ZXN0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIGl0LgogICAgIHZvaWQgcG9wdXBGb2N1cygpOwpA
QCAtMjU5MCw3ICsyNTkwLDcgQEAgdm9pZCB0c3RfUVdlYkZyYW1lOjptZXRhRGF0YSgpCiAgICAg
UUNPTVBBUkUobWV0YURhdGEudmFsdWUoIm5vbmV4aXN0YW50IiksIFFTdHJpbmcoKSk7CiB9CiAK
LSNpZiAhZGVmaW5lZChRX1dTX01BRU1PXzUpICYmICFkZWZpbmVkKFFfT1NfU1lNQklBTikKKyNp
ZiAhZGVmaW5lZChRX1dTX01BRU1PXzUpICYmICFkZWZpbmVkKFFfT1NfU1lNQklBTikgJiYgIWRl
ZmluZWQoUVRfTk9fQ09NQk9CT1gpCiB2b2lkIHRzdF9RV2ViRnJhbWU6OnBvcHVwRm9jdXMoKQog
ewogICAgIFFXZWJWaWV3IHZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBh
Z2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwCmluZGV4IDQ2NDVhMDYuLmRiYWE0ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0
cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFn
ZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC01ODEsOCArNTgxLDEwIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgUU9iamVjdCAqcmVzdWx0ID0gMDsKICAgICAgICAgaWYgKGNsYXNzaWQgPT0gInB1c2hidXR0
b24iKQogICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFFQdXNoQnV0dG9uKCk7CisjaWZuZGVmIFFU
X05PX0lOUFVURElBTE9HCiAgICAgICAgIGVsc2UgaWYgKGNsYXNzaWQgPT0gImxpbmVlZGl0IikK
ICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBRTGluZUVkaXQoKTsKKyNlbmRpZgogICAgICAgICBp
ZiAocmVzdWx0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXRPYmplY3ROYW1lKGNsYXNzaWQpOwog
ICAgICAgICBjYWxscy5hcHBlbmQoQ2FsbEluZm8oY2xhc3NpZCwgdXJsLCBwYXJhbU5hbWVzLCBw
YXJhbVZhbHVlcywgcmVzdWx0KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76967</attachid>
            <date>2010-12-19 18:17:21 -0800</date>
            <delta_ts>2011-01-10 17:36:34 -0800</delta_ts>
            <desc>same as previous, but replace += to *= in WebKit.pri</desc>
            <filename>51313.patch</filename>
            <type>text/plain</type>
            <size>22138</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMWVhOWU2Li40MmJiYjUw
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMTItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQmFz
ZWxpbmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgICogV2ViS2l0LnByaTogTGlz
dCB0aGUgc3VwcG9ydGVkIFFUX05PX0ZVVFVSRSBmbGFncworICAgICAgICB1bmRlciBxdF9taW5p
YWwgY29uZmlndXJhdGlvbi4KKwogMjAxMC0xMi0xNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYWJhYmNlLi5lYzk2Y2E3
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDIgQEAKKzIwMTAtMTItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NA
bm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtRdF0gQmFzZWxpbmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
dW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOiBBZGQK
KyAgICAgICAgUVRfTk9fVU5ET1NUQUNLIGd1YXJkLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nl
ci9sYXVuY2hlcndpbmRvdy5jcHA6CisgICAgICAgIChMYXVuY2hlcldpbmRvdzo6Y3JlYXRlQ2hy
b21lKTogQWRkIFFUX05PX1NIT1JUQ1VUIGFuZCBRVF9OT19QUklOVEVSCisgICAgICAgIGd1YXJk
cy4KKyAgICAgICAgKExhdW5jaGVyV2luZG93OjphcHBseVpvb20pOiBBZGQgUVRfTk9fQU5JTUFU
SU9OIGd1YXJkLgorICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OnNjcmVlbnNob3QpOiBBZGQgUVRf
Tk9fRklMRURJQUxPRyBndWFyZC4KKyAgICAgICAgKExhdW5jaGVyV2luZG93OjpzZWxlY3RFbGVt
ZW50cyk6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKyAgICAgICAgKExhdW5jaGVyV2lu
ZG93OjpzaG93VXNlckFnZW50RGlhbG9nKTogQWRkIFFUX05PX0NPTUJPQk9YIGd1YXJkLgorCisg
ICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oOgorICAgICAgICAqIFF0VGVz
dEJyb3dzZXIvbG9jYXRpb25lZGl0LmNwcDogQWRkIFFUX05PX0lOUFVURElBTE9HIGd1YXJkLgor
ICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0Lmg6IERpdHRvLgorCisgICAgICAg
ICogUXRUZXN0QnJvd3Nlci9tYWlud2luZG93LmNwcDoKKyAgICAgICAgKE1haW5XaW5kb3c6OmJ1
aWxkVUkpOiBBZGQgUVRfTk9fSU5QVVRESUFMT0csIFFUX05PX1NIT1JUQ1VUIGFuZAorICAgICAg
ICBRVF9OT19VTkRPU1RBQ0sgZ3VhcmRzLgorICAgICAgICAoTWFpbldpbmRvdzo6c2V0QWRkcmVz
c1VybCk6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKyAgICAgICAgKE1haW5XaW5kb3c6
OmNoYW5nZUxvY2F0aW9uKTogRGl0dG8uCisgICAgICAgIChNYWluV2luZG93OjpvcGVuRmlsZSk6
IEFkZCBRVF9OT19GSUxFRElBTE9HIGd1YXJkLgorICAgICAgICAoTWFpbldpbmRvdzo6b3Blbkxv
Y2F0aW9uKTogQWRkIFFUX05PX0lOUFVURElBTE9HIGd1YXJkLgorCisgICAgICAgICogUXRUZXN0
QnJvd3Nlci93ZWJwYWdlLmNwcDoKKyAgICAgICAgKFdlYlBhZ2U6Om9wZW5VcmxJbkRlZmF1bHRC
cm93c2VyKTogQWRkIFFUX05PX0RFU0tUT1BTRVJWSUNFUyBndWFyZC4KKyAgICAgICAgKFdlYlBh
Z2U6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOiBBZGQgUVRfTk9fTElORUVESVQgZ3VhcmQuCisK
KyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwOgorICAgICAgICAoV2ViVmlld0dy
YXBoaWNzQmFzZWQ6OmFuaW1hdGVkRmxpcCk6IEFkZCBRVF9OT19BTklNQVRJT04gZ3VhcmQuCisg
ICAgICAgIChXZWJWaWV3R3JhcGhpY3NCYXNlZDo6YW5pbWF0ZWRZRmxpcCk6IERpdHRvLgorCiAy
MDEwLTEyLTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBRdCBidWlsZGZpeCBhZnRlciByNzQzMDEuCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDkzNWEzMDcuLjVmY2M2MDIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC01NDAs
NyArNTQwLDkgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJl
Zm9yZVRlc3RpbmcoKQogICAgIGNsb3NlUmVtYWluaW5nV2luZG93cygpOwogCiAgICAgbV9wYWdl
LT5yZXNldFNldHRpbmdzKCk7CisjaWZuZGVmIFFUX05PX1VORE9TVEFDSwogICAgIG1fcGFnZS0+
dW5kb1N0YWNrKCktPmNsZWFyKCk7CisjZW5kaWYKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5z
ZXRab29tRmFjdG9yKDEuMCk7CiAgICAgY2xlYXJIaXN0b3J5KG1fcGFnZSk7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmNsZWFyRnJhbWVOYW1lKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAgYi9Ub29s
cy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAppbmRleCAxYTRkMjhmLi44YTRiODg0
IDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAorKysg
Yi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcApAQCAtMTYzLDYgKzE2Myw3
IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OmFwcGx5UHJlZnMoKQogCiB2b2lkIExhdW5jaGVyV2lu
ZG93OjpjcmVhdGVDaHJvbWUoKQogeworI2lmbmRlZiBRVF9OT19TSE9SVENVVAogICAgIFFNZW51
KiBmaWxlTWVudSA9IG1lbnVCYXIoKS0+YWRkTWVudSgiJkZpbGUiKTsKICAgICBmaWxlTWVudS0+
YWRkQWN0aW9uKCJOZXcgV2luZG93IiwgdGhpcywgU0xPVChuZXdXaW5kb3coKSksIFFLZXlTZXF1
ZW5jZTo6TmV3KTsKICAgICBmaWxlTWVudS0+YWRkQWN0aW9uKHRyKCJPcGVuIEZpbGUuLi4iKSwg
dGhpcywgU0xPVChvcGVuRmlsZSgpKSwgUUtleVNlcXVlbmNlOjpPcGVuKTsKQEAgLTE3MCw3ICsx
NzEsOSBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpjcmVhdGVDaHJvbWUoKQogICAgIGZpbGVNZW51
LT5hZGRBY3Rpb24oIkNsb3NlIFdpbmRvdyIsIHRoaXMsIFNMT1QoY2xvc2UoKSksIFFLZXlTZXF1
ZW5jZTo6Q2xvc2UpOwogICAgIGZpbGVNZW51LT5hZGRTZXBhcmF0b3IoKTsKICAgICBmaWxlTWVu
dS0+YWRkQWN0aW9uKCJUYWtlIFNjcmVlbiBTaG90Li4uIiwgdGhpcywgU0xPVChzY3JlZW5zaG90
KCkpKTsKKyNpZm5kZWYgUVRfTk9fUFJJTlRFUgogICAgIGZpbGVNZW51LT5hZGRBY3Rpb24odHIo
IlByaW50Li4uIiksIHRoaXMsIFNMT1QocHJpbnQoKSksIFFLZXlTZXF1ZW5jZTo6UHJpbnQpOwor
I2VuZGlmCiAgICAgZmlsZU1lbnUtPmFkZFNlcGFyYXRvcigpOwogICAgIGZpbGVNZW51LT5hZGRB
Y3Rpb24oIlF1aXQiLCBRQXBwbGljYXRpb246Omluc3RhbmNlKCksIFNMT1QoY2xvc2VBbGxXaW5k
b3dzKCkpLCBRS2V5U2VxdWVuY2UoUXQ6OkNUUkwgfCBRdDo6S2V5X1EpKTsKIApAQCAtMzY4LDYg
KzM3MSw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OmNyZWF0ZUNocm9tZSgpCiAgICAgc2hvd0ZQ
Uy0+c2V0RW5hYmxlZChpc0dyYXBoaWNzQmFzZWQoKSk7CiAgICAgc2hvd0ZQUy0+Y29ubmVjdCh0
b2dnbGVHcmFwaGljc1ZpZXcsIFNJR05BTCh0b2dnbGVkKGJvb2wpKSwgU0xPVChzZXRFbmFibGVk
KGJvb2wpKSk7CiAgICAgc2hvd0ZQUy0+c2V0Q2hlY2tlZChtX3dpbmRvd09wdGlvbnMuc2hvd0Zy
YW1lUmF0ZSk7CisjZW5kaWYKIH0KIAogYm9vbCBMYXVuY2hlcldpbmRvdzo6aXNHcmFwaGljc0Jh
c2VkKCkgY29uc3QKQEAgLTU0Nyw2ICs1NTEsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93Ojp6b29t
QW5pbWF0aW9uRmluaXNoZWQoKQogCiB2b2lkIExhdW5jaGVyV2luZG93OjphcHBseVpvb20oKQog
eworI2lmbmRlZiBRVF9OT19BTklNQVRJT04KICAgICBpZiAoaXNHcmFwaGljc0Jhc2VkKCkgJiYg
cGFnZSgpLT5zZXR0aW5ncygpLT50ZXN0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6VGlsZWRCYWNr
aW5nU3RvcmVFbmFibGVkKSkgewogICAgICAgICBRR3JhcGhpY3NXZWJWaWV3KiB2aWV3ID0gc3Rh
dGljX2Nhc3Q8V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3ZpZXcpLT5ncmFwaGljc1dlYlZpZXco
KTsKICAgICAgICAgdmlldy0+c2V0VGlsZWRCYWNraW5nU3RvcmVGcm96ZW4odHJ1ZSk7CkBAIC01
NjQsNiArNTY5LDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6YXBwbHlab29tKCkKICAgICAgICAg
bV96b29tQW5pbWF0aW9uLT5zdGFydCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2VuZGlm
CiAgICAgcGFnZSgpLT5tYWluRnJhbWUoKS0+c2V0Wm9vbUZhY3RvcihxcmVhbChtX2N1cnJlbnRa
b29tKSAvIDEwMC4wKTsKIH0KIApAQCAtNjIwLDEyICs2MjYsMTQgQEAgdm9pZCBMYXVuY2hlcldp
bmRvdzo6c2NyZWVuc2hvdCgpCiAgICAgbGFiZWwtPnNob3coKTsKICNlbmRpZgogCisjaWZuZGVm
IFFUX05PX0ZJTEVESUFMT0cKICAgICBRU3RyaW5nIGZpbGVOYW1lID0gUUZpbGVEaWFsb2c6Omdl
dFNhdmVGaWxlTmFtZShsYWJlbCwgIlNjcmVlbnNob3QiKTsKICAgICBpZiAoIWZpbGVOYW1lLmlz
RW1wdHkoKSkgewogICAgICAgICBwaXhtYXAuc2F2ZShmaWxlTmFtZSwgInBuZyIpOwogICAgICAg
ICBpZiAobGFiZWwpCiAgICAgICAgICAgICBsYWJlbC0+c2V0V2luZG93VGl0bGUoUVN0cmluZygi
U2NyZWVuc2hvdCAtIFNhdmVkIGF0ICUxIikuYXJnKGZpbGVOYW1lKSk7CiAgICAgfQorI2VuZGlm
CiAKICNpZiBkZWZpbmVkKFFUX0NPTkZJR1VSRURfV0lUSF9PUEVOR0wpCiAgICAgdG9nZ2xlUUdM
V2lkZ2V0Vmlld3BvcnQobV93aW5kb3dPcHRpb25zLnVzZVFHTFdpZGdldFZpZXdwb3J0KTsKQEAg
LTY1Nyw2ICs2NjUsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpkdW1wSHRtbCgpCiAKIHZvaWQg
TGF1bmNoZXJXaW5kb3c6OnNlbGVjdEVsZW1lbnRzKCkKIHsKKyNpZm5kZWYgUVRfTk9fSU5QVVRE
SUFMT0cKICAgICBib29sIG9rOwogICAgIFFTdHJpbmcgc3RyID0gUUlucHV0RGlhbG9nOjpnZXRU
ZXh0KHRoaXMsICJTZWxlY3QgZWxlbWVudHMiLCAiQ2hvb3NlIGVsZW1lbnRzIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRTGluZUVkaXQ6Ok5vcm1hbCwgImEiLCAm
b2spOwpAQCAtNjY5LDYgKzY3OCw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OnNlbGVjdEVsZW1l
bnRzKCkKICAgICAgICAgc3RhdHVzQmFyKCktPnNob3dNZXNzYWdlKFFTdHJpbmcoIiUxIGVsZW1l
bnQocykgc2VsZWN0ZWQiKS5hcmcocmVzdWx0LmNvdW50KCkpLCA1MDAwKTsKICNlbmRpZgogICAg
IH0KKyNlbmRpZgogfQogCiB2b2lkIExhdW5jaGVyV2luZG93OjpzZXRUb3VjaE1vY2tpbmcoYm9v
bCBvbikKQEAgLTgyMSw2ICs4MzEsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpzaG93VXNlckFn
ZW50RGlhbG9nKCkKICAgICBRVkJveExheW91dCogbGF5b3V0ID0gbmV3IFFWQm94TGF5b3V0KGRp
YWxvZyk7CiAgICAgZGlhbG9nLT5zZXRMYXlvdXQobGF5b3V0KTsKIAorI2lmbmRlZiBRVF9OT19D
T01CT0JPWAogICAgIFFDb21ib0JveCogY29tYm8gPSBuZXcgUUNvbWJvQm94KGRpYWxvZyk7CiAg
ICAgY29tYm8tPnNldFNpemVBZGp1c3RQb2xpY3koUUNvbWJvQm94OjpBZGp1c3RUb01pbmltdW1D
b250ZW50c0xlbmd0aCk7CiAgICAgY29tYm8tPnNldEVkaXRhYmxlKHRydWUpOwpAQCAtODI5LDYg
Kzg0MCw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OnNob3dVc2VyQWdlbnREaWFsb2coKQogCiAg
ICAgaW50IGluZGV4ID0gY29tYm8tPmZpbmRUZXh0KHBhZ2UoKS0+dXNlckFnZW50Rm9yVXJsKFFV
cmwoKSkpOwogICAgIGNvbWJvLT5zZXRDdXJyZW50SW5kZXgoaW5kZXgpOworI2VuZGlmCiAKICAg
ICBRRGlhbG9nQnV0dG9uQm94KiBidXR0b25Cb3ggPSBuZXcgUURpYWxvZ0J1dHRvbkJveChRRGlh
bG9nQnV0dG9uQm94OjpPawogICAgICAgICAgICAgfCBRRGlhbG9nQnV0dG9uQm94OjpDYW5jZWws
IFF0OjpIb3Jpem9udGFsLCBkaWFsb2cpOwpAQCAtODM2LDExICs4NDgsMTMgQEAgdm9pZCBMYXVu
Y2hlcldpbmRvdzo6c2hvd1VzZXJBZ2VudERpYWxvZygpCiAgICAgY29ubmVjdChidXR0b25Cb3gs
IFNJR05BTChyZWplY3RlZCgpKSwgZGlhbG9nLCBTTE9UKHJlamVjdCgpKSk7CiAgICAgbGF5b3V0
LT5hZGRXaWRnZXQoYnV0dG9uQm94KTsKIAorI2lmbmRlZiBRVF9OT19DT01CT0JPWAogICAgIGlm
IChkaWFsb2ctPmV4ZWMoKSAmJiAhY29tYm8tPmN1cnJlbnRUZXh0KCkuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIHBhZ2UoKS0+c2V0VXNlckFnZW50KGNvbWJvLT5jdXJyZW50VGV4dCgpKTsKICAgICAg
ICAgaWYgKCFpdGVtcy5jb250YWlucyhjb21iby0+Y3VycmVudFRleHQoKSkpCiAgICAgICAgICAg
ICBzZXR0aW5ncy5zZXRWYWx1ZSgiQ3VzdG9tVXNlckFnZW50IiwgY29tYm8tPmN1cnJlbnRUZXh0
KCkpOwogICAgIH0KKyNlbmRpZgogCiAgICAgZGVsZXRlIGRpYWxvZzsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaCBiL1Rvb2xzL1F0VGVzdEJyb3dz
ZXIvbGF1bmNoZXJ3aW5kb3cuaAppbmRleCBlMzVlN2ZkLi5mMzlmYWVmIDEwMDY0NAotLS0gYS9U
b29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmgKKysrIGIvVG9vbHMvUXRUZXN0QnJv
d3Nlci9sYXVuY2hlcndpbmRvdy5oCkBAIC03NSw2ICs3NSw4IEBACiAjdW5kZWYgS2V5UHJlc3MK
ICNlbmRpZgogCitjbGFzcyBRUHJvcGVydHlBbmltYXRpb247CisKIGNsYXNzIFdpbmRvd09wdGlv
bnMgewogcHVibGljOgogICAgIFdpbmRvd09wdGlvbnMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRU
ZXN0QnJvd3Nlci9sb2NhdGlvbmVkaXQuY3BwIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlv
bmVkaXQuY3BwCmluZGV4IGE5N2YxNDguLjg1YmQyMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVz
dEJyb3dzZXIvbG9jYXRpb25lZGl0LmNwcAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xvY2F0
aW9uZWRpdC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgImxvY2F0aW9uZWRpdC5o
IgogCisjaWZuZGVmIFFUX05PX0lOUFVURElBTE9HCisKIExvY2F0aW9uRWRpdDo6TG9jYXRpb25F
ZGl0KFFXaWRnZXQqIHBhcmVudCkKICAgICA6IFFMaW5lRWRpdChwYXJlbnQpCiAgICAgLCBtX3By
b2dyZXNzKDApCkBAIC03OCwzICs4MCw1IEBAIHZvaWQgTG9jYXRpb25FZGl0Ojpmb2N1c0luRXZl
bnQoUUZvY3VzRXZlbnQqIGV2KQogICAgIFFUaW1lcjo6c2luZ2xlU2hvdCgwLCB0aGlzLCBTTE9U
KHNlbGVjdEFsbCgpKSk7CiAjZW5kaWYKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9R
dFRlc3RCcm93c2VyL2xvY2F0aW9uZWRpdC5oIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlv
bmVkaXQuaAppbmRleCBlODI5MjBjLi43NTI0OTdlIDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RC
cm93c2VyL2xvY2F0aW9uZWRpdC5oCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRpb25l
ZGl0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZm5kZWYgbG9jYXRpb25lZGl0X2gKICNkZWZpbmUg
bG9jYXRpb25lZGl0X2gKIAorI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwogI2luY2x1ZGUgPFF0
R3VpPgogCiBjbGFzcyBMb2NhdGlvbkVkaXQgOiBwdWJsaWMgUUxpbmVFZGl0IHsKQEAgLTUyLDMg
KzUzLDQgQEAgcHJpdmF0ZToKIH07CiAKICNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9RdFRlc3RCcm93c2VyL21haW53aW5kb3cuY3BwIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWlu
d2luZG93LmNwcAppbmRleCBmMzYxZmE4Li4zYTk3MzExIDEwMDY0NAotLS0gYS9Ub29scy9RdFRl
c3RCcm93c2VyL21haW53aW5kb3cuY3BwCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndp
bmRvdy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBNYWluV2luZG93OjpidWlsZFVJKCkKICAg
ICBtX3Rvb2xCYXItPmFkZEFjdGlvbihyZWxvYWRBY3Rpb24pOwogICAgIG1fdG9vbEJhci0+YWRk
QWN0aW9uKHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdlOjpTdG9wKSk7CiAKKyNpZm5kZWYgUVRfTk9f
SU5QVVRESUFMT0cKICAgICB1cmxFZGl0ID0gbmV3IExvY2F0aW9uRWRpdChtX3Rvb2xCYXIpOwog
ICAgIHVybEVkaXQtPnNldFNpemVQb2xpY3koUVNpemVQb2xpY3k6OkV4cGFuZGluZywgdXJsRWRp
dC0+c2l6ZVBvbGljeSgpLnZlcnRpY2FsUG9saWN5KCkpOwogICAgIGNvbm5lY3QodXJsRWRpdCwg
U0lHTkFMKHJldHVyblByZXNzZWQoKSksIFNMT1QoY2hhbmdlTG9jYXRpb24oKSkpOwpAQCAtNzks
MTkgKzgwLDI0IEBAIHZvaWQgTWFpbldpbmRvdzo6YnVpbGRVSSgpCiAgICAgbV90b29sQmFyLT5h
ZGRXaWRnZXQodXJsRWRpdCk7CiAjZW5kaWYKIAotICAgIGNvbm5lY3QocGFnZSgpLT5tYWluRnJh
bWUoKSwgU0lHTkFMKHRpdGxlQ2hhbmdlZChjb25zdCBRU3RyaW5nJikpLAotICAgICAgICAgICAg
dGhpcywgU0xPVChzZXRXaW5kb3dUaXRsZShjb25zdCBRU3RyaW5nJikpKTsKICAgICBjb25uZWN0
KHBhZ2UoKS0+bWFpbkZyYW1lKCksIFNJR05BTCh1cmxDaGFuZ2VkKFFVcmwpKSwgdGhpcywgU0xP
VChzZXRBZGRyZXNzVXJsKFFVcmwpKSk7CiAgICAgY29ubmVjdChwYWdlKCksIFNJR05BTChsb2Fk
UHJvZ3Jlc3MoaW50KSksIHVybEVkaXQsIFNMT1Qoc2V0UHJvZ3Jlc3MoaW50KSkpOworI2VuZGlm
CisKKyAgICBjb25uZWN0KHBhZ2UoKS0+bWFpbkZyYW1lKCksIFNJR05BTCh0aXRsZUNoYW5nZWQo
Y29uc3QgUVN0cmluZyYpKSwKKyAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKHNldFdpbmRvd1Rp
dGxlKGNvbnN0IFFTdHJpbmcmKSkpOwogICAgIGNvbm5lY3QocGFnZSgpLCBTSUdOQUwod2luZG93
Q2xvc2VSZXF1ZXN0ZWQoKSksIHRoaXMsIFNMT1QoY2xvc2UoKSkpOwogCisjaWZuZGVmIFFUX05P
X1NIT1JUQ1VUCiAgICAgLy8gc2hvcnQtY3V0cwogICAgIHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdl
OjpCYWNrKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlOjpCYWNrKTsKICAgICBwYWdlKCktPmFj
dGlvbihRV2ViUGFnZTo6U3RvcCktPnNldFNob3J0Y3V0KFF0OjpLZXlfRXNjYXBlKTsKICAgICBw
YWdlKCktPmFjdGlvbihRV2ViUGFnZTo6Rm9yd2FyZCktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5j
ZTo6Rm9yd2FyZCk7CiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlJlbG9hZCktPnNldFNo
b3J0Y3V0KFFLZXlTZXF1ZW5jZTo6UmVmcmVzaCk7CisjaWZuZGVmIFFUX05PX1VORE9TVEFDSwog
ICAgIHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdlOjpVbmRvKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVl
bmNlOjpVbmRvKTsKICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6UmVkbyktPnNldFNob3J0
Y3V0KFFLZXlTZXF1ZW5jZTo6UmVkbyk7CisjZW5kaWYKICAgICBwYWdlKCktPmFjdGlvbihRV2Vi
UGFnZTo6Q3V0KS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlOjpDdXQpOwogICAgIHBhZ2UoKS0+
YWN0aW9uKFFXZWJQYWdlOjpDb3B5KS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlOjpDb3B5KTsK
ICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6UGFzdGUpLT5zZXRTaG9ydGN1dChRS2V5U2Vx
dWVuY2U6OlBhc3RlKTsKQEAgLTk5LDYgKzEwNSw3IEBAIHZvaWQgTWFpbldpbmRvdzo6YnVpbGRV
SSgpCiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlRvZ2dsZUJvbGQpLT5zZXRTaG9ydGN1
dChRS2V5U2VxdWVuY2UoUXQ6OkNUUkwgfCBRdDo6S2V5X0IpKTsKICAgICBwYWdlKCktPmFjdGlv
bihRV2ViUGFnZTo6VG9nZ2xlSXRhbGljKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlKFF0OjpD
VFJMIHwgUXQ6OktleV9JKSk7CiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlRvZ2dsZVVu
ZGVybGluZSktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZShRdDo6Q1RSTCB8IFF0OjpLZXlfVSkp
OworI2VuZGlmCiB9CiAKIHZvaWQgTWFpbldpbmRvdzo6c2V0UGFnZShXZWJQYWdlKiBwYWdlKQpA
QCAtMTI0LDggKzEzMSwxMCBAQCB2b2lkIE1haW5XaW5kb3c6OnNldEFkZHJlc3NVcmwoY29uc3Qg
UVVybCYgdXJsKQogCiB2b2lkIE1haW5XaW5kb3c6OnNldEFkZHJlc3NVcmwoY29uc3QgUVN0cmlu
ZyYgdXJsKQogeworI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwogICAgIGlmICghdXJsLmNvbnRh
aW5zKCJhYm91dDoiKSkKICAgICAgICAgdXJsRWRpdC0+c2V0VGV4dCh1cmwpOworI2VuZGlmCiB9
CiAKIHZvaWQgTWFpbldpbmRvdzo6YWRkQ29tcGxldGVyRW50cnkoY29uc3QgUVVybCYgdXJsKQpA
QCAtMTYzLDYgKzE3Miw3IEBAIHZvaWQgTWFpbldpbmRvdzo6bG9hZChjb25zdCBRVXJsJiB1cmwp
CiAKIHZvaWQgTWFpbldpbmRvdzo6Y2hhbmdlTG9jYXRpb24oKQogeworI2lmbmRlZiBRVF9OT19J
TlBVVERJQUxPRwogICAgIFFTdHJpbmcgc3RyaW5nID0gdXJsRWRpdC0+dGV4dCgpOwogICAgIFFV
cmwgbWFpbkZyYW1lVVJMID0gcGFnZSgpLT5tYWluRnJhbWUoKS0+dXJsKCk7CiAKQEAgLTE3Miwx
MCArMTgyLDEyIEBAIHZvaWQgTWFpbldpbmRvdzo6Y2hhbmdlTG9jYXRpb24oKQogICAgIH0KIAog
ICAgIGxvYWQoc3RyaW5nKTsKKyNlbmRpZgogfQogCiB2b2lkIE1haW5XaW5kb3c6Om9wZW5GaWxl
KCkKIHsKKyNpZm5kZWYgUVRfTk9fRklMRURJQUxPRwogICAgIHN0YXRpYyBjb25zdCBRU3RyaW5n
IGZpbHRlcigiSFRNTCBGaWxlcyAoKi5odG0gKi5odG1sKTs7VGV4dCBGaWxlcyAoKi50eHQpOztJ
bWFnZSBGaWxlcyAoKi5naWYgKi5qcGcgKi5wbmcpOztBbGwgRmlsZXMgKCopIik7CiAKICAgICBR
RmlsZURpYWxvZyBmaWxlRGlhbG9nKHRoaXMsIHRyKCJPcGVuIiksIFFTdHJpbmcoKSwgZmlsdGVy
KTsKQEAgLTE4OCwxMCArMjAwLDEzIEBAIHZvaWQgTWFpbldpbmRvdzo6b3BlbkZpbGUoKQogICAg
ICAgICBpZiAoIXNlbGVjdGVkRmlsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBsb2FkKFFVcmw6
OmZyb21Mb2NhbEZpbGUoc2VsZWN0ZWRGaWxlKSk7CiAgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQg
TWFpbldpbmRvdzo6b3BlbkxvY2F0aW9uKCkKIHsKKyNpZm5kZWYgUVRfTk9fSU5QVVRESUFMT0cK
ICAgICB1cmxFZGl0LT5zZWxlY3RBbGwoKTsKICAgICB1cmxFZGl0LT5zZXRGb2N1cygpOworI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwIGIvVG9v
bHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAppbmRleCAxNWY2ZGIwLi5mYTY0YjExIDEwMDY0
NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCisrKyBiL1Rvb2xzL1F0VGVz
dEJyb3dzZXIvd2VicGFnZS5jcHAKQEAgLTEwNiwxMCArMTA2LDEyIEBAIGJvb2wgV2ViUGFnZTo6
YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoUVdlYkZyYW1lKiBmcmFtZSwgY29uc3QgUU5ldHdvcmtS
ZXF1ZXN0JiByCiAKIHZvaWQgV2ViUGFnZTo6b3BlblVybEluRGVmYXVsdEJyb3dzZXIoY29uc3Qg
UVVybCYgdXJsKQogeworI2lmbmRlZiBRVF9OT19ERVNLVE9QU0VSVklDRVMKICAgICBpZiAoUUFj
dGlvbiogYWN0aW9uID0gcW9iamVjdF9jYXN0PFFBY3Rpb24qPihzZW5kZXIoKSkpCiAgICAgICAg
IFFEZXNrdG9wU2VydmljZXM6Om9wZW5VcmwoYWN0aW9uLT5kYXRhKCkudG9VcmwoKSk7CiAgICAg
ZWxzZQogICAgICAgICBRRGVza3RvcFNlcnZpY2VzOjpvcGVuVXJsKHVybCk7CisjZW5kaWYKIH0K
IAogUVN0cmluZyBXZWJQYWdlOjp1c2VyQWdlbnRGb3JVcmwoY29uc3QgUVVybCYgdXJsKSBjb25z
dApAQCAtMTYyLDYgKzE2NCw3IEBAIHZvaWQgV2ViUGFnZTo6YXV0aGVudGljYXRpb25SZXF1aXJl
ZChRTmV0d29ya1JlcGx5KiByZXBseSwgUUF1dGhlbnRpY2F0b3IqIGF1dGhlCiAgICAgbWVzc2Fn
ZUxhYmVsLT5zZXRUZXh0KG1lc3NhZ2VTdHIuYXJnKHJlcGx5LT51cmwoKS50b1N0cmluZygpKSk7
CiAgICAgbGF5b3V0LT5hZGRXaWRnZXQobWVzc2FnZUxhYmVsLCAwLCAxKTsKIAorI2lmbmRlZiBR
VF9OT19MSU5FRURJVAogICAgIFFMYWJlbCogdXNlckxhYmVsID0gbmV3IFFMYWJlbCgiVXNlcm5h
bWU6IiwgZGlhbG9nKTsKICAgICBsYXlvdXQtPmFkZFdpZGdldCh1c2VyTGFiZWwsIDEsIDApOwog
ICAgIFFMaW5lRWRpdCogdXNlcklucHV0ID0gbmV3IFFMaW5lRWRpdChkaWFsb2cpOwpAQCAtMTcy
LDYgKzE3NSw3IEBAIHZvaWQgV2ViUGFnZTo6YXV0aGVudGljYXRpb25SZXF1aXJlZChRTmV0d29y
a1JlcGx5KiByZXBseSwgUUF1dGhlbnRpY2F0b3IqIGF1dGhlCiAgICAgUUxpbmVFZGl0KiBwYXNz
SW5wdXQgPSBuZXcgUUxpbmVFZGl0KGRpYWxvZyk7CiAgICAgcGFzc0lucHV0LT5zZXRFY2hvTW9k
ZShRTGluZUVkaXQ6OlBhc3N3b3JkKTsKICAgICBsYXlvdXQtPmFkZFdpZGdldChwYXNzSW5wdXQs
IDIsIDEpOworI2VuZGlmCiAKICAgICBRRGlhbG9nQnV0dG9uQm94KiBidXR0b25Cb3ggPSBuZXcg
UURpYWxvZ0J1dHRvbkJveChRRGlhbG9nQnV0dG9uQm94OjpPawogICAgICAgICAgICAgfCBRRGlh
bG9nQnV0dG9uQm94OjpDYW5jZWwsIFF0OjpIb3Jpem9udGFsLCBkaWFsb2cpOwpAQCAtMTgwLDgg
KzE4NCwxMCBAQCB2b2lkIFdlYlBhZ2U6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtS
ZXBseSogcmVwbHksIFFBdXRoZW50aWNhdG9yKiBhdXRoZQogICAgIGxheW91dC0+YWRkV2lkZ2V0
KGJ1dHRvbkJveCwgMywgMSk7CiAKICAgICBpZiAoZGlhbG9nLT5leGVjKCkgPT0gUURpYWxvZzo6
QWNjZXB0ZWQpIHsKKyNpZm5kZWYgUVRfTk9fTElORUVESVQKICAgICAgICAgYXV0aGVudGljYXRv
ci0+c2V0VXNlcih1c2VySW5wdXQtPnRleHQoKSk7CiAgICAgICAgIGF1dGhlbnRpY2F0b3ItPnNl
dFBhc3N3b3JkKHBhc3NJbnB1dC0+dGV4dCgpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGRlbGV0
ZSBkaWFsb2c7CmRpZmYgLS1naXQgYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwIGIv
VG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3LmNwcAppbmRleCAyYTU0MWZiLi44ZTMzNjIwIDEw
MDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwCisrKyBiL1Rvb2xzL1F0
VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAKQEAgLTE2OSw2ICsxNjksNyBAQCB2b2lkIFdlYlZpZXdH
cmFwaGljc0Jhc2VkOjp1cGRhdGVGcmFtZVJhdGUoKQogCiB2b2lkIFdlYlZpZXdHcmFwaGljc0Jh
c2VkOjphbmltYXRlZEZsaXAoKQogeworI2lmbmRlZiBRVF9OT19BTklNQVRJT04KICAgICBRU2l6
ZUYgY2VudGVyID0gZ3JhcGhpY3NXZWJWaWV3KCktPmJvdW5kaW5nUmVjdCgpLnNpemUoKSAvIDI7
CiAgICAgUVBvaW50RiBjZW50ZXJQb2ludCA9IFFQb2ludEYoY2VudGVyLndpZHRoKCksIGNlbnRl
ci5oZWlnaHQoKSk7CiAgICAgZ3JhcGhpY3NXZWJWaWV3KCktPnNldFRyYW5zZm9ybU9yaWdpblBv
aW50KGNlbnRlclBvaW50KTsKQEAgLTE4MiwxMCArMTgzLDEyIEBAIHZvaWQgV2ViVmlld0dyYXBo
aWNzQmFzZWQ6OmFuaW1hdGVkRmxpcCgpCiAgICAgYW5pbWF0aW9uLT5zZXRFbmRWYWx1ZShyb3Rh
dGlvbiArIDE4MCAtIChyb3RhdGlvbiAlIDE4MCkpOwogCiAgICAgYW5pbWF0aW9uLT5zdGFydChR
QWJzdHJhY3RBbmltYXRpb246OkRlbGV0ZVdoZW5TdG9wcGVkKTsKKyNlbmRpZgogfQogCiB2b2lk
IFdlYlZpZXdHcmFwaGljc0Jhc2VkOjphbmltYXRlZFlGbGlwKCkKIHsKKyNpZm5kZWYgUVRfTk9f
QU5JTUFUSU9OCiAgICAgaWYgKCFtX21hY2hpbmUpIHsKICAgICAgICAgbV9tYWNoaW5lID0gbmV3
IFFTdGF0ZU1hY2hpbmUodGhpcyk7CiAKQEAgLTIxNyw2ICsyMjAsNyBAQCB2b2lkIFdlYlZpZXdH
cmFwaGljc0Jhc2VkOjphbmltYXRlZFlGbGlwKCkKICAgICB9CiAKICAgICBtX21hY2hpbmUtPnN0
YXJ0KCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJWaWV3R3JhcGhpY3NCYXNlZDo6cGFpbnRFdmVu
dChRUGFpbnRFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiZWFmOTYuLmZlNjJhMWUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTAtMTItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQmFzZWxp
bmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGVy
ZSBpcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6IEZpeCB0aGUgbG9jYXRpb24gb2YgdGhlCisgICAgICAg
IFFUX05PX0FOSU1BVElPTiBndWFyZC4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1doZWVsRXZl
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OmFwcGx5RGVs
dGEpOiBGaXggdGhlIGxvY2F0aW9uIG9mIHRoZQorICAgICAgICBRVF9OT19XSEVFTEVWRU5UIGd1
YXJkLgorCiAyMDEwLTEyLTE5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCmluZGV4IGYzMTg0NGEuLmNmYjkwNTkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5j
cHAKQEAgLTEzNzUsNiArMTM3NSw3IEBAIHN0YXRpYyBpbmxpbmUgcXJlYWwgYXBwbHlUaW1pbmdG
dW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24sIHFyCiAKIC8vIEhl
bHBlciBmdW5jdGlvbnMgdG8gc2FmZWx5IGdldCBhIHZhbHVlIG91dCBvZiBXZWJDb3JlJ3MgQW5p
bWF0aW9uVmFsdWUqLgogCisjaWZuZGVmIFFUX05PX0FOSU1BVElPTgogc3RhdGljIHZvaWQgd2Vi
a2l0QW5pbWF0aW9uVG9RdEFuaW1hdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlKiBhbmlt
YXRpb25WYWx1ZSwgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKIHsK
ICAgICB0cmFuc2Zvcm1PcGVyYXRpb25zID0gVHJhbnNmb3JtT3BlcmF0aW9ucygpOwpAQCAtMTM5
MCw3ICsxMzkxLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0QW5pbWF0aW9uVG9RdEFuaW1hdGlvblZh
bHVlKGNvbnN0IEFuaW1hdGlvblZhbHVlKiBhbmltYXRpb25WYWwKICAgICByZWFsVmFsdWUgPSBh
bmltYXRpb25WYWx1ZSA/IHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPihh
bmltYXRpb25WYWx1ZSktPnZhbHVlKCkgOiAwOwogfQogCi0jaWZuZGVmIFFUX05PX0FOSU1BVElP
TgogLy8gV2UgcHV0IGEgYml0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGluIGEgYmFzZSBjbGFzcyB0
byBhbGxvdyBjYXN0aW5nIGFuZCB0byBzYXZlIHNvbWUgY29kZSBzaXplLgogCiBjbGFzcyBBbmlt
YXRpb25RdEJhc2UgOiBwdWJsaWMgUUFic3RyYWN0QW5pbWF0aW9uIHsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQv
V2hlZWxFdmVudFF0LmNwcAppbmRleCA1N2E3ZWJjLi5hYTYxZDkxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9XaGVlbEV2ZW50UXQuY3BwCkBAIC00OCwxMCArNDgsMTAgQEAgdm9pZCBQbGF0Zm9ybVdoZWVs
RXZlbnQ6OmFwcGx5RGVsdGEoaW50IGRlbHRhLCBRdDo6T3JpZW50YXRpb24gb3JpZW50YXRpb24p
CiAgICAgbV93aGVlbFRpY2tzWCA9IG1fZGVsdGFYOwogICAgIG1fd2hlZWxUaWNrc1kgPSBtX2Rl
bHRhWTsKIAorI2lmbmRlZiBRVF9OT19XSEVFTEVWRU5UCiAgICAgLy8gVXNlIHRoZSBzYW1lIHNp
bmdsZSBzY3JvbGwgc3RlcCBhcyBRVGV4dEVkaXQKICAgICAvLyAoaW4gUVRleHRFZGl0UHJpdmF0
ZTo6aW5pdCBbaCx2XWJhci0+c2V0U2luZ2xlU3RlcCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQg
Y0RlZmF1bHRRdFNjcm9sbFN0ZXAgPSAyMC5mOwotI2lmbmRlZiBRVF9OT19XSEVFTEVWRU5UCiAg
ICAgbV9kZWx0YVggKj0gKGZ1bGxUaWNrKSA/IFFBcHBsaWNhdGlvbjo6d2hlZWxTY3JvbGxMaW5l
cygpICogY0RlZmF1bHRRdFNjcm9sbFN0ZXAgOiAxOwogICAgIG1fZGVsdGFZICo9IChmdWxsVGlj
aykgPyBRQXBwbGljYXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxT
dGVwIDogMTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0LnByaSBiL1dlYktpdC5wcmkKaW5k
ZXggNmIwMWI0OS4uNDBjZDc3MyAxMDA2NDQKLS0tIGEvV2ViS2l0LnByaQorKysgYi9XZWJLaXQu
cHJpCkBAIC0xMTMsMyArMTEzLDMwIEBAIGNvbnRhaW5zKERFRklORVMsIFFUX05PX1VJVE9PTFMp
OiBDT05GSUcgLT0gdWl0b29scwogIyBkaXNhYmxlZCBpbiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rv
b2xzL3ZzcHJvcHMvY29tbW9uLnZzcHJvcHMKIHdpbjMyLW1zdmMqfHdpbmNlKjogUU1BS0VfQ1hY
RkxBR1MgKz0gLXdkNDI5MSAtd2Q0MzQ0IC13ZDQzOTYgLXdkNDUwMyAtd2Q0ODAwIC13ZDQ4MTkg
LXdkNDk5NgogCitDT05GSUcocXRfbWluaW1hbCkgeworICAgIERFRklORVMgKj0gUVRfTk9fQU5J
TUFUSU9OCisgICAgREVGSU5FUyAqPSBRVF9OT19CRUFSRVJNQU5BR0VNRU5UCisgICAgREVGSU5F
UyAqPSBRVF9OT19DTElQQk9BUkQKKyAgICBERUZJTkVTICo9IFFUX05PX0NPTUJPQk9YCisgICAg
REVGSU5FUyAqPSBRVF9OT19DUkFTSEhBTkRMRVIKKyAgICBERUZJTkVTICo9IFFUX05PX0NVUlNP
UgorICAgIERFRklORVMgKj0gUVRfTk9fREVTS1RPUFNFUlZJQ0VTCisgICAgREVGSU5FUyAqPSBR
VF9OT19GSUxFRElBTE9HCisgICAgREVGSU5FUyAqPSBRVF9OT19HUkFQSElDU0VGRkVDVAorICAg
IERFRklORVMgKj0gUVRfTk9fSU0KKyAgICBERUZJTkVTICo9IFFUX05PX0lOUFVURElBTE9HCisg
ICAgREVGSU5FUyAqPSBRVF9OT19MSU5FRURJVAorICAgIERFRklORVMgKj0gUVRfTk9fTUVTU0FH
RUJPWAorICAgIERFRklORVMgKj0gUVRfTk9fT1BFTlNTTAorICAgIERFRklORVMgKj0gUVRfTk9f
UFJJTlRFUgorICAgIERFRklORVMgKj0gUVRfTk9fUVVVSURfU1RSSU5HCisgICAgREVGSU5FUyAq
PSBRVF9OT19TSE9SVENVVAorICAgIERFRklORVMgKj0gUVRfTk9fU1RZTEVfU1RZTEVTSEVFVAor
ICAgIERFRklORVMgKj0gUVRfTk9fU1lTVEVNVFJBWUlDT04KKyAgICBERUZJTkVTICo9IFFUX05P
X1RFTVBPUkFSWUZJTEUKKyAgICBERUZJTkVTICo9IFFUX05PX1RPT0xUSVAKKyAgICBERUZJTkVT
ICo9IFFUX05PX1VJVE9PTFMKKyAgICBERUZJTkVTICo9IFFUX05PX1VORE9DT01NQU5ECisgICAg
REVGSU5FUyAqPSBRVF9OT19VTkRPU1RBQ0sKKyAgICBERUZJTkVTICo9IFFUX05PX1hSRU5ERVIK
K30KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CmluZGV4IDA3MzhmNmMuLjg3ZTU5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTEyLTE5ICBM
YXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEJhc2VsaW5lIHF0X21pbmlt
YWwgY29uZmlndXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTEzMTMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVF0OjpzaG93KTogQWRkIFFUX05PX0NPTUJP
Qk9YIGd1YXJkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF0RmFsbGJhY2tXZWJQb3B1cDo6cG9wdWxhdGUpOiBB
ZGQgUVRfTk9fVE9PTFRJUCBndWFyZC4KKworICAgICAgICAqIHRlc3RzL3F3ZWJmcmFtZS90c3Rf
cXdlYmZyYW1lLmNwcDogQWRkIFFUX05PX0NPTUJPQk9YIGd1YXJkLgorICAgICAgICAqIHRlc3Rz
L3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CisgICAgICAgIChQbHVnaW5QYWdlOjpjcmVhdGVQ
bHVnaW4pOiBBZGQgUVRfTk9fSU5QVVRESUFMT0cgZ3VhcmQuCisKIDIwMTAtMTItMTcgIEFyaXlh
IEhpZGF5YXQgIDxhcml5YUBzZW5jaGEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9u
aW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNwcAppbmRleCA5
YjM0OTU1Li4wYzBmMmQ3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUG9w
dXBNZW51UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVRdC5j
cHAKQEAgLTk3LDYgKzk3LDcgQEAgdm9pZCBQb3B1cE1lbnVRdDo6ZGlzY29ubmVjdENsaWVudCgp
CiAKIHZvaWQgUG9wdXBNZW51UXQ6OnNob3coY29uc3QgSW50UmVjdCYgcmVjdCwgRnJhbWVWaWV3
KiB2aWV3LCBpbnQgaW5kZXgpCiB7CisjaWZuZGVmIFFUX05PX0NPTUJPQk9YCiAgICAgaWYgKCFt
X3BvcHVwQ2xpZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTExNyw2ICsxMTgsNyBAQCB2b2lk
IFBvcHVwTWVudVF0OjpzaG93KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywg
aW50IGluZGV4KQogICAgICAgICBkZWxldGUgbV9zZWxlY3REYXRhOwogICAgIG1fc2VsZWN0RGF0
YSA9IG5ldyBTZWxlY3REYXRhKG1fcG9wdXBDbGllbnQpOwogICAgIG1fcG9wdXAtPnNob3coKm1f
c2VsZWN0RGF0YSk7CisjZW5kaWYKIH0KIAogdm9pZCBQb3B1cE1lbnVRdDo6ZGlkSGlkZSgpCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNw
cCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2ViUG9wdXAuY3BwCmluZGV4
IDNmNjlhNDcuLmFmYTY0OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
dEZhbGxiYWNrV2ViUG9wdXAuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdEZh
bGxiYWNrV2ViUG9wdXAuY3BwCkBAIC0yMzIsNyArMjMyLDkgQEAgdm9pZCBRdEZhbGxiYWNrV2Vi
UG9wdXA6OnBvcHVsYXRlKGNvbnN0IFFXZWJTZWxlY3REYXRhJiBkYXRhKQogICAgICAgICBjYXNl
IFFXZWJTZWxlY3REYXRhOjpPcHRpb246CiAgICAgICAgICAgICBtX2NvbWJvLT5pbnNlcnRJdGVt
KGksIGRhdGEuaXRlbVRleHQoaSkpOwogICAgICAgICAgICAgbW9kZWwtPml0ZW0oaSktPnNldEVu
YWJsZWQoZGF0YS5pdGVtSXNFbmFibGVkKGkpKTsKKyNpZm5kZWYgUVRfTk9fVE9PTFRJUAogICAg
ICAgICAgICAgbW9kZWwtPml0ZW0oaSktPnNldFRvb2xUaXAoZGF0YS5pdGVtVG9vbFRpcChpKSk7
CisjZW5kaWYKICAgICAgICAgICAgIGlmIChkYXRhLml0ZW1Jc1NlbGVjdGVkKGkpKQogICAgICAg
ICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAgYi9XZWJLaXQv
cXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IDJhZTg1ZTQuLjZiMGI1
OGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5j
cHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcApAQCAt
NjAzLDcgKzYwMyw3IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBzZXRIdG1sV2l0aEpTQWxl
cnQoKTsKICAgICB2b2lkIGlwdjZIb3N0RW5jb2RpbmcoKTsKICAgICB2b2lkIG1ldGFEYXRhKCk7
Ci0jaWYgIWRlZmluZWQoUV9XU19NQUVNT181KSAmJiAhZGVmaW5lZChRX09TX1NZTUJJQU4pCisj
aWYgIWRlZmluZWQoUV9XU19NQUVNT181KSAmJiAhZGVmaW5lZChRX09TX1NZTUJJQU4pICYmICFk
ZWZpbmVkKFFUX05PX0NPTUJPQk9YKQogICAgIC8vIGFzIG1hZW1vIDUgJiYgc3ltYmlhbiBkbyBu
b3QgdXNlIFFDb21ib0JveGVzIHRvIGltcGxlbWVudCB0aGUgcG9wdXBzCiAgICAgLy8gdGhpcyB0
ZXN0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgZm9yIGl0LgogICAgIHZvaWQgcG9wdXBGb2N1cygpOwpA
QCAtMjU5MCw3ICsyNTkwLDcgQEAgdm9pZCB0c3RfUVdlYkZyYW1lOjptZXRhRGF0YSgpCiAgICAg
UUNPTVBBUkUobWV0YURhdGEudmFsdWUoIm5vbmV4aXN0YW50IiksIFFTdHJpbmcoKSk7CiB9CiAK
LSNpZiAhZGVmaW5lZChRX1dTX01BRU1PXzUpICYmICFkZWZpbmVkKFFfT1NfU1lNQklBTikKKyNp
ZiAhZGVmaW5lZChRX1dTX01BRU1PXzUpICYmICFkZWZpbmVkKFFfT1NfU1lNQklBTikgJiYgIWRl
ZmluZWQoUVRfTk9fQ09NQk9CT1gpCiB2b2lkIHRzdF9RV2ViRnJhbWU6OnBvcHVwRm9jdXMoKQog
ewogICAgIFFXZWJWaWV3IHZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBh
Z2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwCmluZGV4IDQ2NDVhMDYuLmRiYWE0ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0
cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFn
ZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC01ODEsOCArNTgxLDEwIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgUU9iamVjdCAqcmVzdWx0ID0gMDsKICAgICAgICAgaWYgKGNsYXNzaWQgPT0gInB1c2hidXR0
b24iKQogICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFFQdXNoQnV0dG9uKCk7CisjaWZuZGVmIFFU
X05PX0lOUFVURElBTE9HCiAgICAgICAgIGVsc2UgaWYgKGNsYXNzaWQgPT0gImxpbmVlZGl0IikK
ICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBRTGluZUVkaXQoKTsKKyNlbmRpZgogICAgICAgICBp
ZiAocmVzdWx0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXRPYmplY3ROYW1lKGNsYXNzaWQpOwog
ICAgICAgICBjYWxscy5hcHBlbmQoQ2FsbEluZm8oY2xhc3NpZCwgdXJsLCBwYXJhbU5hbWVzLCBw
YXJhbVZhbHVlcywgcmVzdWx0KSk7Cg==
</data>
<flag name="review"
          id="68002"
          type_id="1"
          status="+"
          setter="ossy"
    />
    <flag name="commit-queue"
          id="68003"
          type_id="3"
          status="-"
          setter="ossy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78477</attachid>
            <date>2011-01-10 17:36:34 -0800</date>
            <delta_ts>2011-01-10 18:51:20 -0800</delta_ts>
            <desc>Patch with proposed minor changes for cq</desc>
            <filename>51313.patch</filename>
            <type>text/plain</type>
            <size>22706</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1MmQ0NjJkLi41NjNhMTM4
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDEtMTAgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KKworICAgICAgICBbUXRd
IEJhc2VsaW5lIHF0X21pbmltYWwgY29uZmlndXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEzMTMKKworICAgICAgICAqIFdlYktpdC5wcmk6
IExpc3QgdGhlIHN1cHBvcnRlZCBRVF9OT19GRUFUVVJFIGZsYWdzCisgICAgICAgIHVuZGVyIHF0
X21pbmltYWwgY29uZmlndXJhdGlvbi4KKwogMjAxMS0wMS0xMCAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGJhODQxNzQuLmE1ZmE5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxMS0wMS0xMCAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgorCisgICAgICAg
IFtRdF0gQmFzZWxpbmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBhcyB0aGVyZSBpcyBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6IEZpeCB0aGUgbG9jYXRpb24gb2Yg
dGhlCisgICAgICAgIFFUX05PX0FOSU1BVElPTiBndWFyZC4KKworICAgICAgICAqIHBsYXRmb3Jt
L3F0L1doZWVsRXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZl
bnQ6OmFwcGx5RGVsdGEpOiBGaXggdGhlIGxvY2F0aW9uIG9mIHRoZQorICAgICAgICBRVF9OT19X
SEVFTEVWRU5UIGd1YXJkLgorCiAyMDExLTAxLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3Bw
CmluZGV4IGYzMTg0NGEuLmNmYjkwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtMTM3NSw2ICsxMzc1
LDcgQEAgc3RhdGljIGlubGluZSBxcmVhbCBhcHBseVRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWlu
Z0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiwgcXIKIAogLy8gSGVscGVyIGZ1bmN0aW9ucyB0byBz
YWZlbHkgZ2V0IGEgdmFsdWUgb3V0IG9mIFdlYkNvcmUncyBBbmltYXRpb25WYWx1ZSouCiAKKyNp
Zm5kZWYgUVRfTk9fQU5JTUFUSU9OCiBzdGF0aWMgdm9pZCB3ZWJraXRBbmltYXRpb25Ub1F0QW5p
bWF0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9uVmFsdWUqIGFuaW1hdGlvblZhbHVlLCBUcmFuc2Zv
cm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zKQogewogICAgIHRyYW5zZm9ybU9wZXJh
dGlvbnMgPSBUcmFuc2Zvcm1PcGVyYXRpb25zKCk7CkBAIC0xMzkwLDcgKzEzOTEsNiBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRBbmltYXRpb25Ub1F0QW5pbWF0aW9uVmFsdWUoY29uc3QgQW5pbWF0aW9u
VmFsdWUqIGFuaW1hdGlvblZhbAogICAgIHJlYWxWYWx1ZSA9IGFuaW1hdGlvblZhbHVlID8gc3Rh
dGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSo+KGFuaW1hdGlvblZhbHVlKS0+dmFs
dWUoKSA6IDA7CiB9CiAKLSNpZm5kZWYgUVRfTk9fQU5JTUFUSU9OCiAvLyBXZSBwdXQgYSBiaXQg
b2YgdGhlIGZ1bmN0aW9uYWxpdHkgaW4gYSBiYXNlIGNsYXNzIHRvIGFsbG93IGNhc3RpbmcgYW5k
IHRvIHNhdmUgc29tZSBjb2RlIHNpemUuCiAKIGNsYXNzIEFuaW1hdGlvblF0QmFzZSA6IHB1Ymxp
YyBRQWJzdHJhY3RBbmltYXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9xdC9OZXR3b3JrU3RhdGVOb3RpZmllclF0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvTmV0d29ya1N0YXRlTm90aWZpZXJRdC5jcHAKaW5kZXggOTU5
ZTc0YS4uZjNlNzAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9OZXR3b3JrU3RhdGVOb3RpZmllclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L05ldHdvcmtTdGF0ZU5vdGlmaWVyUXQuY3BwCkBAIC05MSw2ICs5MSw2
IEBAIHZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6OnNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJv
b2wgaXNBbGxvd2VkKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZgotCiAjaW5j
bHVkZSAibW9jX05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5jcHAiCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAKaW5kZXggNTdhN2ViYy4u
YWE2MWQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVu
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaGVlbEV2ZW50UXQuY3Bw
CkBAIC00OCwxMCArNDgsMTAgQEAgdm9pZCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OmFwcGx5RGVsdGEo
aW50IGRlbHRhLCBRdDo6T3JpZW50YXRpb24gb3JpZW50YXRpb24pCiAgICAgbV93aGVlbFRpY2tz
WCA9IG1fZGVsdGFYOwogICAgIG1fd2hlZWxUaWNrc1kgPSBtX2RlbHRhWTsKIAorI2lmbmRlZiBR
VF9OT19XSEVFTEVWRU5UCiAgICAgLy8gVXNlIHRoZSBzYW1lIHNpbmdsZSBzY3JvbGwgc3RlcCBh
cyBRVGV4dEVkaXQKICAgICAvLyAoaW4gUVRleHRFZGl0UHJpdmF0ZTo6aW5pdCBbaCx2XWJhci0+
c2V0U2luZ2xlU3RlcCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgY0RlZmF1bHRRdFNjcm9sbFN0
ZXAgPSAyMC5mOwotI2lmbmRlZiBRVF9OT19XSEVFTEVWRU5UCiAgICAgbV9kZWx0YVggKj0gKGZ1
bGxUaWNrKSA/IFFBcHBsaWNhdGlvbjo6d2hlZWxTY3JvbGxMaW5lcygpICogY0RlZmF1bHRRdFNj
cm9sbFN0ZXAgOiAxOwogICAgIG1fZGVsdGFZICo9IChmdWxsVGljaykgPyBRQXBwbGljYXRpb246
OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVwIDogMTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ2MTcw
YmIuLjhiNzM3MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMS0wMS0xMCAgTGFzemxvIEdvbWJvcyAgPGxhc3ps
by4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJv
Z29uw6FjLgorCisgICAgICAgIFtRdF0gQmFzZWxpbmUgcXRfbWluaW1hbCBjb25maWd1cmF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMxMwor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9y
ZVRlc3RpbmcpOiBBZGQKKyAgICAgICAgUVRfTk9fVU5ET1NUQUNLIGd1YXJkLgorCisgICAgICAg
ICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHA6CisgICAgICAgIChMYXVuY2hlcldp
bmRvdzo6Y3JlYXRlQ2hyb21lKTogQWRkIFFUX05PX1NIT1JUQ1VUIGFuZCBRVF9OT19QUklOVEVS
CisgICAgICAgIGd1YXJkcy4KKyAgICAgICAgKExhdW5jaGVyV2luZG93OjphcHBseVpvb20pOiBB
ZGQgUVRfTk9fQU5JTUFUSU9OIGd1YXJkLgorICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OnNjcmVl
bnNob3QpOiBBZGQgUVRfTk9fRklMRURJQUxPRyBndWFyZC4KKyAgICAgICAgKExhdW5jaGVyV2lu
ZG93OjpzZWxlY3RFbGVtZW50cyk6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKyAgICAg
ICAgKExhdW5jaGVyV2luZG93OjpzaG93VXNlckFnZW50RGlhbG9nKTogQWRkIFFUX05PX0NPTUJP
Qk9YIGd1YXJkLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oOgor
ICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0LmNwcDogQWRkIFFUX05PX0lOUFVU
RElBTE9HIGd1YXJkLgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0Lmg6IERp
dHRvLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nlci9tYWlud2luZG93LmNwcDoKKyAgICAgICAg
KE1haW5XaW5kb3c6OmJ1aWxkVUkpOiBBZGQgUVRfTk9fSU5QVVRESUFMT0csIFFUX05PX1NIT1JU
Q1VUIGFuZAorICAgICAgICBRVF9OT19VTkRPU1RBQ0sgZ3VhcmRzLgorICAgICAgICAoTWFpbldp
bmRvdzo6c2V0QWRkcmVzc1VybCk6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKyAgICAg
ICAgKE1haW5XaW5kb3c6OmNoYW5nZUxvY2F0aW9uKTogRGl0dG8uCisgICAgICAgIChNYWluV2lu
ZG93OjpvcGVuRmlsZSk6IEFkZCBRVF9OT19GSUxFRElBTE9HIGd1YXJkLgorICAgICAgICAoTWFp
bldpbmRvdzo6b3BlbkxvY2F0aW9uKTogQWRkIFFUX05PX0lOUFVURElBTE9HIGd1YXJkLgorCisg
ICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcDoKKyAgICAgICAgKFdlYlBhZ2U6Om9w
ZW5VcmxJbkRlZmF1bHRCcm93c2VyKTogQWRkIFFUX05PX0RFU0tUT1BTRVJWSUNFUyBndWFyZC4K
KyAgICAgICAgKFdlYlBhZ2U6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOiBBZGQgUVRfTk9fTElO
RUVESVQgZ3VhcmQuCisKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwOgorICAg
ICAgICAoV2ViVmlld0dyYXBoaWNzQmFzZWQ6OmFuaW1hdGVkRmxpcCk6IEFkZCBRVF9OT19BTklN
QVRJT04gZ3VhcmQuCisgICAgICAgIChXZWJWaWV3R3JhcGhpY3NCYXNlZDo6YW5pbWF0ZWRZRmxp
cCk6IERpdHRvLgorCiAyMDExLTAxLTEwICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCA5MzVhMzA3Li41ZmNjNjAyIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApAQCAtNTQwLDcgKzU0
MCw5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVU
ZXN0aW5nKCkKICAgICBjbG9zZVJlbWFpbmluZ1dpbmRvd3MoKTsKIAogICAgIG1fcGFnZS0+cmVz
ZXRTZXR0aW5ncygpOworI2lmbmRlZiBRVF9OT19VTkRPU1RBQ0sKICAgICBtX3BhZ2UtPnVuZG9T
dGFjaygpLT5jbGVhcigpOworI2VuZGlmCiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+c2V0Wm9v
bUZhY3RvcigxLjApOwogICAgIGNsZWFySGlzdG9yeShtX3BhZ2UpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpjbGVhckZyYW1lTmFtZShtX3BhZ2UtPm1haW5GcmFtZSgpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3BwIGIvVG9vbHMvUXRU
ZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAKaW5kZXggMWE0ZDI4Zi4uOGE0Yjg4NCAxMDA2
NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAKKysrIGIvVG9v
bHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAKQEAgLTE2Myw2ICsxNjMsNyBAQCB2
b2lkIExhdW5jaGVyV2luZG93OjphcHBseVByZWZzKCkKIAogdm9pZCBMYXVuY2hlcldpbmRvdzo6
Y3JlYXRlQ2hyb21lKCkKIHsKKyNpZm5kZWYgUVRfTk9fU0hPUlRDVVQKICAgICBRTWVudSogZmls
ZU1lbnUgPSBtZW51QmFyKCktPmFkZE1lbnUoIiZGaWxlIik7CiAgICAgZmlsZU1lbnUtPmFkZEFj
dGlvbigiTmV3IFdpbmRvdyIsIHRoaXMsIFNMT1QobmV3V2luZG93KCkpLCBRS2V5U2VxdWVuY2U6
Ok5ldyk7CiAgICAgZmlsZU1lbnUtPmFkZEFjdGlvbih0cigiT3BlbiBGaWxlLi4uIiksIHRoaXMs
IFNMT1Qob3BlbkZpbGUoKSksIFFLZXlTZXF1ZW5jZTo6T3Blbik7CkBAIC0xNzAsNyArMTcxLDkg
QEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6Y3JlYXRlQ2hyb21lKCkKICAgICBmaWxlTWVudS0+YWRk
QWN0aW9uKCJDbG9zZSBXaW5kb3ciLCB0aGlzLCBTTE9UKGNsb3NlKCkpLCBRS2V5U2VxdWVuY2U6
OkNsb3NlKTsKICAgICBmaWxlTWVudS0+YWRkU2VwYXJhdG9yKCk7CiAgICAgZmlsZU1lbnUtPmFk
ZEFjdGlvbigiVGFrZSBTY3JlZW4gU2hvdC4uLiIsIHRoaXMsIFNMT1Qoc2NyZWVuc2hvdCgpKSk7
CisjaWZuZGVmIFFUX05PX1BSSU5URVIKICAgICBmaWxlTWVudS0+YWRkQWN0aW9uKHRyKCJQcmlu
dC4uLiIpLCB0aGlzLCBTTE9UKHByaW50KCkpLCBRS2V5U2VxdWVuY2U6OlByaW50KTsKKyNlbmRp
ZgogICAgIGZpbGVNZW51LT5hZGRTZXBhcmF0b3IoKTsKICAgICBmaWxlTWVudS0+YWRkQWN0aW9u
KCJRdWl0IiwgUUFwcGxpY2F0aW9uOjppbnN0YW5jZSgpLCBTTE9UKGNsb3NlQWxsV2luZG93cygp
KSwgUUtleVNlcXVlbmNlKFF0OjpDVFJMIHwgUXQ6OktleV9RKSk7CiAKQEAgLTM2OCw2ICszNzEs
NyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpjcmVhdGVDaHJvbWUoKQogICAgIHNob3dGUFMtPnNl
dEVuYWJsZWQoaXNHcmFwaGljc0Jhc2VkKCkpOwogICAgIHNob3dGUFMtPmNvbm5lY3QodG9nZ2xl
R3JhcGhpY3NWaWV3LCBTSUdOQUwodG9nZ2xlZChib29sKSksIFNMT1Qoc2V0RW5hYmxlZChib29s
KSkpOwogICAgIHNob3dGUFMtPnNldENoZWNrZWQobV93aW5kb3dPcHRpb25zLnNob3dGcmFtZVJh
dGUpOworI2VuZGlmCiB9CiAKIGJvb2wgTGF1bmNoZXJXaW5kb3c6OmlzR3JhcGhpY3NCYXNlZCgp
IGNvbnN0CkBAIC01NDcsNiArNTUxLDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6em9vbUFuaW1h
dGlvbkZpbmlzaGVkKCkKIAogdm9pZCBMYXVuY2hlcldpbmRvdzo6YXBwbHlab29tKCkKIHsKKyNp
Zm5kZWYgUVRfTk9fQU5JTUFUSU9OCiAgICAgaWYgKGlzR3JhcGhpY3NCYXNlZCgpICYmIHBhZ2Uo
KS0+c2V0dGluZ3MoKS0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlRpbGVkQmFja2luZ1N0
b3JlRW5hYmxlZCkpIHsKICAgICAgICAgUUdyYXBoaWNzV2ViVmlldyogdmlldyA9IHN0YXRpY19j
YXN0PFdlYlZpZXdHcmFwaGljc0Jhc2VkKj4obV92aWV3KS0+Z3JhcGhpY3NXZWJWaWV3KCk7CiAg
ICAgICAgIHZpZXctPnNldFRpbGVkQmFja2luZ1N0b3JlRnJvemVuKHRydWUpOwpAQCAtNTY0LDYg
KzU2OSw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OmFwcGx5Wm9vbSgpCiAgICAgICAgIG1fem9v
bUFuaW1hdGlvbi0+c3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogICAg
IHBhZ2UoKS0+bWFpbkZyYW1lKCktPnNldFpvb21GYWN0b3IocXJlYWwobV9jdXJyZW50Wm9vbSkg
LyAxMDAuMCk7CiB9CiAKQEAgLTYyMCwxMiArNjI2LDE0IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6
OnNjcmVlbnNob3QoKQogICAgIGxhYmVsLT5zaG93KCk7CiAjZW5kaWYKIAorI2lmbmRlZiBRVF9O
T19GSUxFRElBTE9HCiAgICAgUVN0cmluZyBmaWxlTmFtZSA9IFFGaWxlRGlhbG9nOjpnZXRTYXZl
RmlsZU5hbWUobGFiZWwsICJTY3JlZW5zaG90Iik7CiAgICAgaWYgKCFmaWxlTmFtZS5pc0VtcHR5
KCkpIHsKICAgICAgICAgcGl4bWFwLnNhdmUoZmlsZU5hbWUsICJwbmciKTsKICAgICAgICAgaWYg
KGxhYmVsKQogICAgICAgICAgICAgbGFiZWwtPnNldFdpbmRvd1RpdGxlKFFTdHJpbmcoIlNjcmVl
bnNob3QgLSBTYXZlZCBhdCAlMSIpLmFyZyhmaWxlTmFtZSkpOwogICAgIH0KKyNlbmRpZgogCiAj
aWYgZGVmaW5lZChRVF9DT05GSUdVUkVEX1dJVEhfT1BFTkdMKQogICAgIHRvZ2dsZVFHTFdpZGdl
dFZpZXdwb3J0KG1fd2luZG93T3B0aW9ucy51c2VRR0xXaWRnZXRWaWV3cG9ydCk7CkBAIC02NTcs
NiArNjY1LDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6ZHVtcEh0bWwoKQogCiB2b2lkIExhdW5j
aGVyV2luZG93OjpzZWxlY3RFbGVtZW50cygpCiB7CisjaWZuZGVmIFFUX05PX0lOUFVURElBTE9H
CiAgICAgYm9vbCBvazsKICAgICBRU3RyaW5nIHN0ciA9IFFJbnB1dERpYWxvZzo6Z2V0VGV4dCh0
aGlzLCAiU2VsZWN0IGVsZW1lbnRzIiwgIkNob29zZSBlbGVtZW50cyIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUUxpbmVFZGl0OjpOb3JtYWwsICJhIiwgJm9rKTsK
QEAgLTY2OSw2ICs2NzgsNyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpzZWxlY3RFbGVtZW50cygp
CiAgICAgICAgIHN0YXR1c0JhcigpLT5zaG93TWVzc2FnZShRU3RyaW5nKCIlMSBlbGVtZW50KHMp
IHNlbGVjdGVkIikuYXJnKHJlc3VsdC5jb3VudCgpKSwgNTAwMCk7CiAjZW5kaWYKICAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBMYXVuY2hlcldpbmRvdzo6c2V0VG91Y2hNb2NraW5nKGJvb2wgb24p
CkBAIC04MjEsNiArODMxLDcgQEAgdm9pZCBMYXVuY2hlcldpbmRvdzo6c2hvd1VzZXJBZ2VudERp
YWxvZygpCiAgICAgUVZCb3hMYXlvdXQqIGxheW91dCA9IG5ldyBRVkJveExheW91dChkaWFsb2cp
OwogICAgIGRpYWxvZy0+c2V0TGF5b3V0KGxheW91dCk7CiAKKyNpZm5kZWYgUVRfTk9fQ09NQk9C
T1gKICAgICBRQ29tYm9Cb3gqIGNvbWJvID0gbmV3IFFDb21ib0JveChkaWFsb2cpOwogICAgIGNv
bWJvLT5zZXRTaXplQWRqdXN0UG9saWN5KFFDb21ib0JveDo6QWRqdXN0VG9NaW5pbXVtQ29udGVu
dHNMZW5ndGgpOwogICAgIGNvbWJvLT5zZXRFZGl0YWJsZSh0cnVlKTsKQEAgLTgyOSw2ICs4NDAs
NyBAQCB2b2lkIExhdW5jaGVyV2luZG93OjpzaG93VXNlckFnZW50RGlhbG9nKCkKIAogICAgIGlu
dCBpbmRleCA9IGNvbWJvLT5maW5kVGV4dChwYWdlKCktPnVzZXJBZ2VudEZvclVybChRVXJsKCkp
KTsKICAgICBjb21iby0+c2V0Q3VycmVudEluZGV4KGluZGV4KTsKKyNlbmRpZgogCiAgICAgUURp
YWxvZ0J1dHRvbkJveCogYnV0dG9uQm94ID0gbmV3IFFEaWFsb2dCdXR0b25Cb3goUURpYWxvZ0J1
dHRvbkJveDo6T2sKICAgICAgICAgICAgIHwgUURpYWxvZ0J1dHRvbkJveDo6Q2FuY2VsLCBRdDo6
SG9yaXpvbnRhbCwgZGlhbG9nKTsKQEAgLTgzNiwxMSArODQ4LDEzIEBAIHZvaWQgTGF1bmNoZXJX
aW5kb3c6OnNob3dVc2VyQWdlbnREaWFsb2coKQogICAgIGNvbm5lY3QoYnV0dG9uQm94LCBTSUdO
QUwocmVqZWN0ZWQoKSksIGRpYWxvZywgU0xPVChyZWplY3QoKSkpOwogICAgIGxheW91dC0+YWRk
V2lkZ2V0KGJ1dHRvbkJveCk7CiAKKyNpZm5kZWYgUVRfTk9fQ09NQk9CT1gKICAgICBpZiAoZGlh
bG9nLT5leGVjKCkgJiYgIWNvbWJvLT5jdXJyZW50VGV4dCgpLmlzRW1wdHkoKSkgewogICAgICAg
ICBwYWdlKCktPnNldFVzZXJBZ2VudChjb21iby0+Y3VycmVudFRleHQoKSk7CiAgICAgICAgIGlm
ICghaXRlbXMuY29udGFpbnMoY29tYm8tPmN1cnJlbnRUZXh0KCkpKQogICAgICAgICAgICAgc2V0
dGluZ3Muc2V0VmFsdWUoIkN1c3RvbVVzZXJBZ2VudCIsIGNvbWJvLT5jdXJyZW50VGV4dCgpKTsK
ICAgICB9CisjZW5kaWYKIAogICAgIGRlbGV0ZSBkaWFsb2c7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmggYi9Ub29scy9RdFRlc3RCcm93c2VyL2xh
dW5jaGVyd2luZG93LmgKaW5kZXggZTM1ZTdmZC4uZjM5ZmFlZiAxMDA2NDQKLS0tIGEvVG9vbHMv
UXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIv
bGF1bmNoZXJ3aW5kb3cuaApAQCAtNzUsNiArNzUsOCBAQAogI3VuZGVmIEtleVByZXNzCiAjZW5k
aWYKIAorY2xhc3MgUVByb3BlcnR5QW5pbWF0aW9uOworCiBjbGFzcyBXaW5kb3dPcHRpb25zIHsK
IHB1YmxpYzoKICAgICBXaW5kb3dPcHRpb25zKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJy
b3dzZXIvbG9jYXRpb25lZGl0LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0
LmNwcAppbmRleCBhOTdmMTQ4Li44NWJkMjIyIDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93
c2VyL2xvY2F0aW9uZWRpdC5jcHAKKysrIGIvVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlvbmVk
aXQuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbmNsdWRlICJsb2NhdGlvbmVkaXQuaCIKIAor
I2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRworCiBMb2NhdGlvbkVkaXQ6OkxvY2F0aW9uRWRpdChR
V2lkZ2V0KiBwYXJlbnQpCiAgICAgOiBRTGluZUVkaXQocGFyZW50KQogICAgICwgbV9wcm9ncmVz
cygwKQpAQCAtNzgsMyArODAsNSBAQCB2b2lkIExvY2F0aW9uRWRpdDo6Zm9jdXNJbkV2ZW50KFFG
b2N1c0V2ZW50KiBldikKICAgICBRVGltZXI6OnNpbmdsZVNob3QoMCwgdGhpcywgU0xPVChzZWxl
Y3RBbGwoKSkpOwogI2VuZGlmCiB9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0
QnJvd3Nlci9sb2NhdGlvbmVkaXQuaCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0
LmgKaW5kZXggZTgyOTIwYy4uNzUyNDk3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJvd3Nl
ci9sb2NhdGlvbmVkaXQuaAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xvY2F0aW9uZWRpdC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaWZuZGVmIGxvY2F0aW9uZWRpdF9oCiAjZGVmaW5lIGxvY2F0
aW9uZWRpdF9oCiAKKyNpZm5kZWYgUVRfTk9fSU5QVVRESUFMT0cKICNpbmNsdWRlIDxRdEd1aT4K
IAogY2xhc3MgTG9jYXRpb25FZGl0IDogcHVibGljIFFMaW5lRWRpdCB7CkBAIC01MiwzICs1Myw0
IEBAIHByaXZhdGU6CiB9OwogCiAjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRU
ZXN0QnJvd3Nlci9tYWlud2luZG93LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndpbmRv
dy5jcHAKaW5kZXggNzU2YzNjMi4uOWY0YWVjNSAxMDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJv
d3Nlci9tYWlud2luZG93LmNwcAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL21haW53aW5kb3cu
Y3BwCkBAIC02Niw2ICs2Niw3IEBAIHZvaWQgTWFpbldpbmRvdzo6YnVpbGRVSSgpCiAgICAgbV90
b29sQmFyLT5hZGRBY3Rpb24ocmVsb2FkQWN0aW9uKTsKICAgICBtX3Rvb2xCYXItPmFkZEFjdGlv
bihwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6U3RvcCkpOwogCisjaWZuZGVmIFFUX05PX0lOUFVU
RElBTE9HCiAgICAgdXJsRWRpdCA9IG5ldyBMb2NhdGlvbkVkaXQobV90b29sQmFyKTsKICAgICB1
cmxFZGl0LT5zZXRTaXplUG9saWN5KFFTaXplUG9saWN5OjpFeHBhbmRpbmcsIHVybEVkaXQtPnNp
emVQb2xpY3koKS52ZXJ0aWNhbFBvbGljeSgpKTsKICAgICBjb25uZWN0KHVybEVkaXQsIFNJR05B
TChyZXR1cm5QcmVzc2VkKCkpLCBTTE9UKGNoYW5nZUxvY2F0aW9uKCkpKTsKQEAgLTc5LDE5ICs4
MCwyNCBAQCB2b2lkIE1haW5XaW5kb3c6OmJ1aWxkVUkoKQogICAgIG1fdG9vbEJhci0+YWRkV2lk
Z2V0KHVybEVkaXQpOwogI2VuZGlmCiAKLSAgICBjb25uZWN0KHBhZ2UoKS0+bWFpbkZyYW1lKCks
IFNJR05BTCh0aXRsZUNoYW5nZWQoY29uc3QgUVN0cmluZyYpKSwKLSAgICAgICAgICAgIHRoaXMs
IFNMT1Qoc2V0V2luZG93VGl0bGUoY29uc3QgUVN0cmluZyYpKSk7CiAgICAgY29ubmVjdChwYWdl
KCktPm1haW5GcmFtZSgpLCBTSUdOQUwodXJsQ2hhbmdlZChRVXJsKSksIHRoaXMsIFNMT1Qoc2V0
QWRkcmVzc1VybChRVXJsKSkpOwogICAgIGNvbm5lY3QocGFnZSgpLCBTSUdOQUwobG9hZFByb2dy
ZXNzKGludCkpLCB1cmxFZGl0LCBTTE9UKHNldFByb2dyZXNzKGludCkpKTsKKyNlbmRpZgorCisg
ICAgY29ubmVjdChwYWdlKCktPm1haW5GcmFtZSgpLCBTSUdOQUwodGl0bGVDaGFuZ2VkKGNvbnN0
IFFTdHJpbmcmKSksCisgICAgICAgICAgICAgICAgdGhpcywgU0xPVChzZXRXaW5kb3dUaXRsZShj
b25zdCBRU3RyaW5nJikpKTsKICAgICBjb25uZWN0KHBhZ2UoKSwgU0lHTkFMKHdpbmRvd0Nsb3Nl
UmVxdWVzdGVkKCkpLCB0aGlzLCBTTE9UKGNsb3NlKCkpKTsKIAorI2lmbmRlZiBRVF9OT19TSE9S
VENVVAogICAgIC8vIHNob3J0LWN1dHMKICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6QmFj
ayktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZTo6QmFjayk7CiAgICAgcGFnZSgpLT5hY3Rpb24o
UVdlYlBhZ2U6OlN0b3ApLT5zZXRTaG9ydGN1dChRdDo6S2V5X0VzY2FwZSk7CiAgICAgcGFnZSgp
LT5hY3Rpb24oUVdlYlBhZ2U6OkZvcndhcmQpLT5zZXRTaG9ydGN1dChRS2V5U2VxdWVuY2U6OkZv
cndhcmQpOwogICAgIHBhZ2UoKS0+YWN0aW9uKFFXZWJQYWdlOjpSZWxvYWQpLT5zZXRTaG9ydGN1
dChRS2V5U2VxdWVuY2U6OlJlZnJlc2gpOworI2lmbmRlZiBRVF9OT19VTkRPU1RBQ0sKICAgICBw
YWdlKCktPmFjdGlvbihRV2ViUGFnZTo6VW5kbyktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZTo6
VW5kbyk7CiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlJlZG8pLT5zZXRTaG9ydGN1dChR
S2V5U2VxdWVuY2U6OlJlZG8pOworI2VuZGlmCiAgICAgcGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6
OkN1dCktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZTo6Q3V0KTsKICAgICBwYWdlKCktPmFjdGlv
bihRV2ViUGFnZTo6Q29weSktPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZTo6Q29weSk7CiAgICAg
cGFnZSgpLT5hY3Rpb24oUVdlYlBhZ2U6OlBhc3RlKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNl
OjpQYXN0ZSk7CkBAIC0xMDAsNiArMTA2LDcgQEAgdm9pZCBNYWluV2luZG93OjpidWlsZFVJKCkK
ICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6VG9nZ2xlQm9sZCktPnNldFNob3J0Y3V0KFFL
ZXlTZXF1ZW5jZShRdDo6Q1RSTCB8IFF0OjpLZXlfQikpOwogICAgIHBhZ2UoKS0+YWN0aW9uKFFX
ZWJQYWdlOjpUb2dnbGVJdGFsaWMpLT5zZXRTaG9ydGN1dChRS2V5U2VxdWVuY2UoUXQ6OkNUUkwg
fCBRdDo6S2V5X0kpKTsKICAgICBwYWdlKCktPmFjdGlvbihRV2ViUGFnZTo6VG9nZ2xlVW5kZXJs
aW5lKS0+c2V0U2hvcnRjdXQoUUtleVNlcXVlbmNlKFF0OjpDVFJMIHwgUXQ6OktleV9VKSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBNYWluV2luZG93OjpzZXRQYWdlKFdlYlBhZ2UqIHBhZ2UpCkBAIC0x
MjUsOCArMTMyLDEwIEBAIHZvaWQgTWFpbldpbmRvdzo6c2V0QWRkcmVzc1VybChjb25zdCBRVXJs
JiB1cmwpCiAKIHZvaWQgTWFpbldpbmRvdzo6c2V0QWRkcmVzc1VybChjb25zdCBRU3RyaW5nJiB1
cmwpCiB7CisjaWZuZGVmIFFUX05PX0lOUFVURElBTE9HCiAgICAgaWYgKCF1cmwuY29udGFpbnMo
ImFib3V0OiIpKQogICAgICAgICB1cmxFZGl0LT5zZXRUZXh0KHVybCk7CisjZW5kaWYKIH0KIAog
dm9pZCBNYWluV2luZG93OjphZGRDb21wbGV0ZXJFbnRyeShjb25zdCBRVXJsJiB1cmwpCkBAIC0x
NjQsNiArMTczLDcgQEAgdm9pZCBNYWluV2luZG93Ojpsb2FkKGNvbnN0IFFVcmwmIHVybCkKIAog
dm9pZCBNYWluV2luZG93OjpjaGFuZ2VMb2NhdGlvbigpCiB7CisjaWZuZGVmIFFUX05PX0lOUFVU
RElBTE9HCiAgICAgUVN0cmluZyBzdHJpbmcgPSB1cmxFZGl0LT50ZXh0KCk7CiAgICAgUVVybCBt
YWluRnJhbWVVUkwgPSBwYWdlKCktPm1haW5GcmFtZSgpLT51cmwoKTsKIApAQCAtMTczLDEwICsx
ODMsMTIgQEAgdm9pZCBNYWluV2luZG93OjpjaGFuZ2VMb2NhdGlvbigpCiAgICAgfQogCiAgICAg
bG9hZChzdHJpbmcpOworI2VuZGlmCiB9CiAKIHZvaWQgTWFpbldpbmRvdzo6b3BlbkZpbGUoKQog
eworI2lmbmRlZiBRVF9OT19GSUxFRElBTE9HCiAgICAgc3RhdGljIGNvbnN0IFFTdHJpbmcgZmls
dGVyKCJIVE1MIEZpbGVzICgqLmh0bSAqLmh0bWwpOztUZXh0IEZpbGVzICgqLnR4dCk7O0ltYWdl
IEZpbGVzICgqLmdpZiAqLmpwZyAqLnBuZyk7O0FsbCBGaWxlcyAoKikiKTsKIAogICAgIFFGaWxl
RGlhbG9nIGZpbGVEaWFsb2codGhpcywgdHIoIk9wZW4iKSwgUVN0cmluZygpLCBmaWx0ZXIpOwpA
QCAtMTg5LDEwICsyMDEsMTMgQEAgdm9pZCBNYWluV2luZG93OjpvcGVuRmlsZSgpCiAgICAgICAg
IGlmICghc2VsZWN0ZWRGaWxlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGxvYWQoUVVybDo6ZnJv
bUxvY2FsRmlsZShzZWxlY3RlZEZpbGUpKTsKICAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBNYWlu
V2luZG93OjpvcGVuTG9jYXRpb24oKQogeworI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwogICAg
IHVybEVkaXQtPnNlbGVjdEFsbCgpOwogICAgIHVybEVkaXQtPnNldEZvY3VzKCk7CisjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAgYi9Ub29scy9R
dFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCmluZGV4IDllMGM0OWUuLjQwMDM1NWUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAKKysrIGIvVG9vbHMvUXRUZXN0QnJv
d3Nlci93ZWJwYWdlLmNwcApAQCAtMTA3LDEwICsxMDcsMTIgQEAgYm9vbCBXZWJQYWdlOjphY2Nl
cHROYXZpZ2F0aW9uUmVxdWVzdChRV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBRTmV0d29ya1JlcXVl
c3QmIHIKIAogdm9pZCBXZWJQYWdlOjpvcGVuVXJsSW5EZWZhdWx0QnJvd3Nlcihjb25zdCBRVXJs
JiB1cmwpCiB7CisjaWZuZGVmIFFUX05PX0RFU0tUT1BTRVJWSUNFUwogICAgIGlmIChRQWN0aW9u
KiBhY3Rpb24gPSBxb2JqZWN0X2Nhc3Q8UUFjdGlvbio+KHNlbmRlcigpKSkKICAgICAgICAgUURl
c2t0b3BTZXJ2aWNlczo6b3BlblVybChhY3Rpb24tPmRhdGEoKS50b1VybCgpKTsKICAgICBlbHNl
CiAgICAgICAgIFFEZXNrdG9wU2VydmljZXM6Om9wZW5VcmwodXJsKTsKKyNlbmRpZgogfQogCiBR
U3RyaW5nIFdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJiB1cmwpIGNvbnN0CkBA
IC0xNjUsNiArMTY3LDcgQEAgdm9pZCBXZWJQYWdlOjphdXRoZW50aWNhdGlvblJlcXVpcmVkKFFO
ZXR3b3JrUmVwbHkqIHJlcGx5LCBRQXV0aGVudGljYXRvciogYXV0aGUKICAgICBtZXNzYWdlTGFi
ZWwtPnNldFRleHQobWVzc2FnZVN0ci5hcmcocmVwbHktPnVybCgpLnRvU3RyaW5nKCkpKTsKICAg
ICBsYXlvdXQtPmFkZFdpZGdldChtZXNzYWdlTGFiZWwsIDAsIDEpOwogCisjaWZuZGVmIFFUX05P
X0xJTkVFRElUCiAgICAgUUxhYmVsKiB1c2VyTGFiZWwgPSBuZXcgUUxhYmVsKCJVc2VybmFtZToi
LCBkaWFsb2cpOwogICAgIGxheW91dC0+YWRkV2lkZ2V0KHVzZXJMYWJlbCwgMSwgMCk7CiAgICAg
UUxpbmVFZGl0KiB1c2VySW5wdXQgPSBuZXcgUUxpbmVFZGl0KGRpYWxvZyk7CkBAIC0xNzUsNiAr
MTc4LDcgQEAgdm9pZCBXZWJQYWdlOjphdXRoZW50aWNhdGlvblJlcXVpcmVkKFFOZXR3b3JrUmVw
bHkqIHJlcGx5LCBRQXV0aGVudGljYXRvciogYXV0aGUKICAgICBRTGluZUVkaXQqIHBhc3NJbnB1
dCA9IG5ldyBRTGluZUVkaXQoZGlhbG9nKTsKICAgICBwYXNzSW5wdXQtPnNldEVjaG9Nb2RlKFFM
aW5lRWRpdDo6UGFzc3dvcmQpOwogICAgIGxheW91dC0+YWRkV2lkZ2V0KHBhc3NJbnB1dCwgMiwg
MSk7CisjZW5kaWYKIAogICAgIFFEaWFsb2dCdXR0b25Cb3gqIGJ1dHRvbkJveCA9IG5ldyBRRGlh
bG9nQnV0dG9uQm94KFFEaWFsb2dCdXR0b25Cb3g6Ok9rCiAgICAgICAgICAgICB8IFFEaWFsb2dC
dXR0b25Cb3g6OkNhbmNlbCwgUXQ6Okhvcml6b250YWwsIGRpYWxvZyk7CkBAIC0xODMsOCArMTg3
LDEwIEBAIHZvaWQgV2ViUGFnZTo6YXV0aGVudGljYXRpb25SZXF1aXJlZChRTmV0d29ya1JlcGx5
KiByZXBseSwgUUF1dGhlbnRpY2F0b3IqIGF1dGhlCiAgICAgbGF5b3V0LT5hZGRXaWRnZXQoYnV0
dG9uQm94LCAzLCAxKTsKIAogICAgIGlmIChkaWFsb2ctPmV4ZWMoKSA9PSBRRGlhbG9nOjpBY2Nl
cHRlZCkgeworI2lmbmRlZiBRVF9OT19MSU5FRURJVAogICAgICAgICBhdXRoZW50aWNhdG9yLT5z
ZXRVc2VyKHVzZXJJbnB1dC0+dGV4dCgpKTsKICAgICAgICAgYXV0aGVudGljYXRvci0+c2V0UGFz
c3dvcmQocGFzc0lucHV0LT50ZXh0KCkpOworI2VuZGlmCiAgICAgfQogCiAgICAgZGVsZXRlIGRp
YWxvZzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAgYi9Ub29s
cy9RdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwCmluZGV4IDJhNTQxZmIuLjhlMzM2MjAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAKKysrIGIvVG9vbHMvUXRUZXN0
QnJvd3Nlci93ZWJ2aWV3LmNwcApAQCAtMTY5LDYgKzE2OSw3IEBAIHZvaWQgV2ViVmlld0dyYXBo
aWNzQmFzZWQ6OnVwZGF0ZUZyYW1lUmF0ZSgpCiAKIHZvaWQgV2ViVmlld0dyYXBoaWNzQmFzZWQ6
OmFuaW1hdGVkRmxpcCgpCiB7CisjaWZuZGVmIFFUX05PX0FOSU1BVElPTgogICAgIFFTaXplRiBj
ZW50ZXIgPSBncmFwaGljc1dlYlZpZXcoKS0+Ym91bmRpbmdSZWN0KCkuc2l6ZSgpIC8gMjsKICAg
ICBRUG9pbnRGIGNlbnRlclBvaW50ID0gUVBvaW50RihjZW50ZXIud2lkdGgoKSwgY2VudGVyLmhl
aWdodCgpKTsKICAgICBncmFwaGljc1dlYlZpZXcoKS0+c2V0VHJhbnNmb3JtT3JpZ2luUG9pbnQo
Y2VudGVyUG9pbnQpOwpAQCAtMTgyLDEwICsxODMsMTIgQEAgdm9pZCBXZWJWaWV3R3JhcGhpY3NC
YXNlZDo6YW5pbWF0ZWRGbGlwKCkKICAgICBhbmltYXRpb24tPnNldEVuZFZhbHVlKHJvdGF0aW9u
ICsgMTgwIC0gKHJvdGF0aW9uICUgMTgwKSk7CiAKICAgICBhbmltYXRpb24tPnN0YXJ0KFFBYnN0
cmFjdEFuaW1hdGlvbjo6RGVsZXRlV2hlblN0b3BwZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
Vmlld0dyYXBoaWNzQmFzZWQ6OmFuaW1hdGVkWUZsaXAoKQogeworI2lmbmRlZiBRVF9OT19BTklN
QVRJT04KICAgICBpZiAoIW1fbWFjaGluZSkgewogICAgICAgICBtX21hY2hpbmUgPSBuZXcgUVN0
YXRlTWFjaGluZSh0aGlzKTsKIApAQCAtMjE3LDYgKzIyMCw3IEBAIHZvaWQgV2ViVmlld0dyYXBo
aWNzQmFzZWQ6OmFuaW1hdGVkWUZsaXAoKQogICAgIH0KIAogICAgIG1fbWFjaGluZS0+c3RhcnQo
KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlZpZXdHcmFwaGljc0Jhc2VkOjpwYWludEV2ZW50KFFQ
YWludEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1dlYktpdC5wcmkgYi9XZWJLaXQucHJpCmlu
ZGV4IDFmZDI2YzYuLmIwYjBmMzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC5wcmkKKysrIGIvV2ViS2l0
LnByaQpAQCAtMTA5LDMgKzEwOSwzMCBAQCBjb250YWlucyhERUZJTkVTLCBRVF9OT19VSVRPT0xT
KTogQ09ORklHIC09IHVpdG9vbHMKICMgZGlzYWJsZWQgaW4gV2ViS2l0TGlicmFyaWVzL3dpbi90
b29scy92c3Byb3BzL2NvbW1vbi52c3Byb3BzCiB3aW4zMi1tc3ZjKnx3aW5jZSo6IFFNQUtFX0NY
WEZMQUdTICs9IC13ZDQyOTEgLXdkNDM0NCAtd2Q0Mzk2IC13ZDQ1MDMgLXdkNDgwMCAtd2Q0ODE5
IC13ZDQ5OTYKIAorQ09ORklHKHF0X21pbmltYWwpIHsKKyAgICBERUZJTkVTICo9IFFUX05PX0FO
SU1BVElPTgorICAgIERFRklORVMgKj0gUVRfTk9fQkVBUkVSTUFOQUdFTUVOVAorICAgIERFRklO
RVMgKj0gUVRfTk9fQ0xJUEJPQVJECisgICAgREVGSU5FUyAqPSBRVF9OT19DT01CT0JPWAorICAg
IERFRklORVMgKj0gUVRfTk9fQ1JBU0hIQU5ETEVSCisgICAgREVGSU5FUyAqPSBRVF9OT19DVVJT
T1IKKyAgICBERUZJTkVTICo9IFFUX05PX0RFU0tUT1BTRVJWSUNFUworICAgIERFRklORVMgKj0g
UVRfTk9fRklMRURJQUxPRworICAgIERFRklORVMgKj0gUVRfTk9fR1JBUEhJQ1NFRkZFQ1QKKyAg
ICBERUZJTkVTICo9IFFUX05PX0lNCisgICAgREVGSU5FUyAqPSBRVF9OT19JTlBVVERJQUxPRwor
ICAgIERFRklORVMgKj0gUVRfTk9fTElORUVESVQKKyAgICBERUZJTkVTICo9IFFUX05PX01FU1NB
R0VCT1gKKyAgICBERUZJTkVTICo9IFFUX05PX09QRU5TU0wKKyAgICBERUZJTkVTICo9IFFUX05P
X1BSSU5URVIKKyAgICBERUZJTkVTICo9IFFUX05PX1FVVUlEX1NUUklORworICAgIERFRklORVMg
Kj0gUVRfTk9fU0hPUlRDVVQKKyAgICBERUZJTkVTICo9IFFUX05PX1NUWUxFX1NUWUxFU0hFRVQK
KyAgICBERUZJTkVTICo9IFFUX05PX1NZU1RFTVRSQVlJQ09OCisgICAgREVGSU5FUyAqPSBRVF9O
T19URU1QT1JBUllGSUxFCisgICAgREVGSU5FUyAqPSBRVF9OT19UT09MVElQCisgICAgREVGSU5F
UyAqPSBRVF9OT19VSVRPT0xTCisgICAgREVGSU5FUyAqPSBRVF9OT19VTkRPQ09NTUFORAorICAg
IERFRklORVMgKj0gUVRfTk9fVU5ET1NUQUNLCisgICAgREVGSU5FUyAqPSBRVF9OT19YUkVOREVS
Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCBjZTcxNmQ0Li45YWI0NWEwIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMS0xMCAg
TGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgorCisgICAgICAgIFtRdF0gQmFzZWxpbmUgcXRf
bWluaW1hbCBjb25maWd1cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MTMxMworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51UXQ6OnNob3cpOiBBZGQgUVRfTk9f
Q09NQk9CT1ggZ3VhcmQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RdEZhbGxiYWNrV2Vi
UG9wdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXRGYWxsYmFja1dlYlBvcHVwOjpwb3B1bGF0
ZSk6IEFkZCBRVF9OT19UT09MVElQIGd1YXJkLgorCisgICAgICAgICogdGVzdHMvcXdlYmZyYW1l
L3RzdF9xd2ViZnJhbWUuY3BwOiBBZGQgUVRfTk9fQ09NQk9CT1ggZ3VhcmQuCisgICAgICAgICog
dGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFBsdWdpblBhZ2U6OmNy
ZWF0ZVBsdWdpbik6IEFkZCBRVF9OT19JTlBVVERJQUxPRyBndWFyZC4KKwogMjAxMS0wMS0xMCAg
QmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9Qb3B1cE1lbnVRdC5jcHAKaW5kZXggOWIzNDk1NS4uMGMwZjJkNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudVF0LmNwcAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51UXQuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIHZvaWQg
UG9wdXBNZW51UXQ6OmRpc2Nvbm5lY3RDbGllbnQoKQogCiB2b2lkIFBvcHVwTWVudVF0OjpzaG93
KGNvbnN0IEludFJlY3QmIHJlY3QsIEZyYW1lVmlldyogdmlldywgaW50IGluZGV4KQogeworI2lm
bmRlZiBRVF9OT19DT01CT0JPWAogICAgIGlmICghbV9wb3B1cENsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0xMTcsNiArMTE4LDcgQEAgdm9pZCBQb3B1cE1lbnVRdDo6c2hvdyhjb25zdCBJ
bnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICAgICAgZGVsZXRl
IG1fc2VsZWN0RGF0YTsKICAgICBtX3NlbGVjdERhdGEgPSBuZXcgU2VsZWN0RGF0YShtX3BvcHVw
Q2xpZW50KTsKICAgICBtX3BvcHVwLT5zaG93KCptX3NlbGVjdERhdGEpOworI2VuZGlmCiB9CiAK
IHZvaWQgUG9wdXBNZW51UXQ6OmRpZEhpZGUoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1F0RmFsbGJhY2tXZWJQb3B1cC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUXRGYWxsYmFja1dlYlBvcHVwLmNwcAppbmRleCAzZjY5YTQ3Li5hZmE2NDkyIDEwMDY0NAot
LS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNwcAorKysg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNwcApAQCAtMjMy
LDcgKzIzMiw5IEBAIHZvaWQgUXRGYWxsYmFja1dlYlBvcHVwOjpwb3B1bGF0ZShjb25zdCBRV2Vi
U2VsZWN0RGF0YSYgZGF0YSkKICAgICAgICAgY2FzZSBRV2ViU2VsZWN0RGF0YTo6T3B0aW9uOgog
ICAgICAgICAgICAgbV9jb21iby0+aW5zZXJ0SXRlbShpLCBkYXRhLml0ZW1UZXh0KGkpKTsKICAg
ICAgICAgICAgIG1vZGVsLT5pdGVtKGkpLT5zZXRFbmFibGVkKGRhdGEuaXRlbUlzRW5hYmxlZChp
KSk7CisjaWZuZGVmIFFUX05PX1RPT0xUSVAKICAgICAgICAgICAgIG1vZGVsLT5pdGVtKGkpLT5z
ZXRUb29sVGlwKGRhdGEuaXRlbVRvb2xUaXAoaSkpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAo
ZGF0YS5pdGVtSXNTZWxlY3RlZChpKSkKICAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSBp
OwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZy
YW1lL3RzdF9xd2ViZnJhbWUuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdl
YmZyYW1lLmNwcAppbmRleCAyYWU4NWU0Li42YjBiNThkIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
dGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9x
d2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKQEAgLTYwMyw3ICs2MDMsNyBAQCBwcml2YXRlIHNs
b3RzOgogICAgIHZvaWQgc2V0SHRtbFdpdGhKU0FsZXJ0KCk7CiAgICAgdm9pZCBpcHY2SG9zdEVu
Y29kaW5nKCk7CiAgICAgdm9pZCBtZXRhRGF0YSgpOwotI2lmICFkZWZpbmVkKFFfV1NfTUFFTU9f
NSkgJiYgIWRlZmluZWQoUV9PU19TWU1CSUFOKQorI2lmICFkZWZpbmVkKFFfV1NfTUFFTU9fNSkg
JiYgIWRlZmluZWQoUV9PU19TWU1CSUFOKSAmJiAhZGVmaW5lZChRVF9OT19DT01CT0JPWCkKICAg
ICAvLyBhcyBtYWVtbyA1ICYmIHN5bWJpYW4gZG8gbm90IHVzZSBRQ29tYm9Cb3hlcyB0byBpbXBs
ZW1lbnQgdGhlIHBvcHVwcwogICAgIC8vIHRoaXMgdGVzdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZv
ciBpdC4KICAgICB2b2lkIHBvcHVwRm9jdXMoKTsKQEAgLTI1OTAsNyArMjU5MCw3IEBAIHZvaWQg
dHN0X1FXZWJGcmFtZTo6bWV0YURhdGEoKQogICAgIFFDT01QQVJFKG1ldGFEYXRhLnZhbHVlKCJu
b25leGlzdGFudCIpLCBRU3RyaW5nKCkpOwogfQogCi0jaWYgIWRlZmluZWQoUV9XU19NQUVNT181
KSAmJiAhZGVmaW5lZChRX09TX1NZTUJJQU4pCisjaWYgIWRlZmluZWQoUV9XU19NQUVNT181KSAm
JiAhZGVmaW5lZChRX09TX1NZTUJJQU4pICYmICFkZWZpbmVkKFFUX05PX0NPTUJPQk9YKQogdm9p
ZCB0c3RfUVdlYkZyYW1lOjpwb3B1cEZvY3VzKCkKIHsKICAgICBRV2ViVmlldyB2aWV3OwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAgYi9XZWJL
aXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCBkNGVlZDIxLi5lMDY2
MmIzIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNw
cAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcApAQCAtNTg5
LDggKzU4OSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFFPYmplY3QgKnJlc3VsdCA9IDA7CiAg
ICAgICAgIGlmIChjbGFzc2lkID09ICJwdXNoYnV0dG9uIikKICAgICAgICAgICAgIHJlc3VsdCA9
IG5ldyBRUHVzaEJ1dHRvbigpOworI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwogICAgICAgICBl
bHNlIGlmIChjbGFzc2lkID09ICJsaW5lZWRpdCIpCiAgICAgICAgICAgICByZXN1bHQgPSBuZXcg
UUxpbmVFZGl0KCk7CisjZW5kaWYKICAgICAgICAgZWxzZSBpZiAoY2xhc3NpZCA9PSAiZ3JhcGhp
Y3N3aWRnZXQiKQogICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFFHcmFwaGljc1dpZGdldCgpOwog
ICAgICAgICBpZiAocmVzdWx0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>