<?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>57075</bug_id>
          
          <creation_ts>2011-03-24 19:59:58 -0700</creation_ts>
          <short_desc>[Qt] QNetworkReplyHandler refactoring: signal queue</short_desc>
          <delta_ts>2011-04-27 09:28:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>57049</dependson>
          <blocked>57083</blocked>
    
    <blocked>58375</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Luiz Agostini">luiz</reporter>
          <assigned_to name="Luiz Agostini">luiz</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>373282</commentid>
    <comment_count>0</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-03-24 19:59:58 -0700</bug_when>
    <thetext>Now the idea is to make all signals that come from the QNetworkReply to pass through a queue and to stop that queue when loading is deferred.

This way almost all the deferred logic can be removed from QNetworkReplyHandler class and encapsulated in its own class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373299</commentid>
    <comment_count>1</comment_count>
      <attachid>86877</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-03-24 21:31:00 -0700</bug_when>
    <thetext>Created attachment 86877
patch

I will not set the review flag because this patch depends on the patch in bug 57049 and all bots would be red.

But please review it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374476</commentid>
    <comment_count>2</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2011-03-28 07:37:26 -0700</bug_when>
    <thetext>- Please explain why Lock is needed in QNetworkReplyWrapper::receiveMetaData, in a comment as well would be great.
- m_queue-&gt;setDeferSignals(m_queue-&gt;deferSignals()) could cause surprises if more logic is added to setDeferSignals. Deferring bugs easily slip through tests and some explicit flush() method call would be safer.
- Unless I&apos;m missing something, you shouldn&apos;t need the inline keyword at the declaration of receiveReadyRead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384187</commentid>
    <comment_count>3</comment_count>
      <attachid>89232</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-04-12 11:31:44 -0700</bug_when>
    <thetext>Created attachment 89232
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384191</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-12 11:34:20 -0700</bug_when>
    <thetext>Attachment 89232 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/network/qt/QNetworkReplyHandler.h:42:  The parameter name &quot;handler&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/platform/network/qt/QNetworkReplyHandler.h:62:  The parameter name &quot;queue&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384201</commentid>
    <comment_count>5</comment_count>
      <attachid>89232</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-04-12 11:41:40 -0700</bug_when>
    <thetext>Comment on attachment 89232
patch

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

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.h:77
&gt; +    void readyRead();

didReceiveReadyRead()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384207</commentid>
    <comment_count>6</comment_count>
      <attachid>89234</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-04-12 11:46:18 -0700</bug_when>
    <thetext>Created attachment 89234
patch

style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384215</commentid>
    <comment_count>7</comment_count>
      <attachid>89234</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-04-12 11:53:53 -0700</bug_when>
    <thetext>Comment on attachment 89234
patch

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

r=me. This is a great step towards making this spaghetti understandable without spending 2 hours reading it. :)

&gt; Source/WebCore/platform/network/qt/QNetworkReplyHandler.h:77
&gt; +    void readyRead();

didReceiveReadyRead() or something like that would sound more slot-like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384375</commentid>
    <comment_count>8</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-04-12 14:25:02 -0700</bug_when>
    <thetext>	M	Source/WebCore/ChangeLog
	M	Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
	M	Source/WebCore/platform/network/qt/QNetworkReplyHandler.h
	M	Source/WebCore/platform/network/qt/ResourceHandleQt.cpp
Committed r83634</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384546</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-04-12 17:26:31 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt;     M    Source/WebCore/ChangeLog
&gt;     M    Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
&gt;     M    Source/WebCore/platform/network/qt/QNetworkReplyHandler.h
&gt;     M    Source/WebCore/platform/network/qt/ResourceHandleQt.cpp
&gt; Committed r83634

It was rolled out by http://trac.webkit.org/changeset/83673,
because it made two layout tests time out:

http://build.webkit.org/results/Qt%20Linux%20Release/r83635%20%2831280%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384647</commentid>
    <comment_count>10</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2011-04-12 21:08:06 -0700</bug_when>
    <thetext>	M	Source/WebCore/ChangeLog
	M	Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
	M	Source/WebCore/platform/network/qt/QNetworkReplyHandler.h
	M	Source/WebCore/platform/network/qt/ResourceHandleQt.cpp
Committed r83691</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393605</commentid>
    <comment_count>11</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-04-27 09:28:06 -0700</bug_when>
    <thetext>I don&apos;t see why It should be part of 2.1.x. It&apos;s a huge refactoring with some other patches and has no purpose to be in 2.1.x.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86877</attachid>
            <date>2011-03-24 21:31:00 -0700</date>
            <delta_ts>2011-04-12 11:31:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Qt-QNetworkReplyHandler-refactoring-signal-queue.patch</filename>
            <type>text/plain</type>
            <size>16196</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA1MWMzYTM3OWE5NzdjZTIxZTgyZGRjYTk3MzYzNjJlYWViODMzNGJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IEZyaSwgMjUgTWFyIDIwMTEgMDE6MjY6NTIgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBbUXRdIFFOZXR3b3JrUmVwbHlIYW5kbGVyIHJlZmFjdG9yaW5nOiBzaWduYWwgcXVldWUK
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzA3NQoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpUaGUgaWRlYSBpcyB0byBtYWtlIGFsbCBzaWduYWxzIHRoYXQg
Y29tZSBmcm9tIHRoZSBRTmV0d29ya1JlcGx5IHRvIHBhc3MgdGhyb3VnaCBhIHF1ZXVlIGFuZCB0
bwpzdG9wIHRoYXQgcXVldWUgd2hlbiBsb2FkaW5nIGlzIGRlZmVycmVkLiBUaGlzIHdheSBhbG1v
c3QgYWxsIHRoZSBkZWZlcnJlZCBsb2dpYyBjYW4gYmUgcmVtb3ZlZApmcm9tIFFOZXR3b3JrUmVw
bHlIYW5kbGVyIGNsYXNzIGFuZCBlbmNhcHN1bGF0ZWQgaW4gaXRzIG93biBjbGFzcy4KClRoZSBu
ZXcgY2xhc3MgaXMgbmFtZWQgUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZS4KCiogcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CihXZWJDb3JlOjpRTmV0
d29ya1JlcGx5V3JhcHBlcjo6UU5ldHdvcmtSZXBseVdyYXBwZXIpOgooV2ViQ29yZTo6UU5ldHdv
cmtSZXBseVdyYXBwZXI6On5RTmV0d29ya1JlcGx5V3JhcHBlcik6CihXZWJDb3JlOjpRTmV0d29y
a1JlcGx5V3JhcHBlcjo6cmVjZWl2ZU1ldGFEYXRhKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlX
cmFwcGVyOjpyZWNlaXZlRmluaXNoZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJT
aWduYWxRdWV1ZTo6TG9jazo6fkxvY2spOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJT
aWduYWxRdWV1ZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZSk6CihXZWJDb3JlOjpR
TmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1ZXVlOjpwdXNoKToKKFdlYkNvcmU6OlFOZXR3b3Jr
UmVwbHlIYW5kbGVyU2lnbmFsUXVldWU6OnNldERlZmVyU2lnbmFscyk6CihXZWJDb3JlOjpRTmV0
d29ya1JlcGx5SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIpOgooV2ViQ29yZTo6UU5ldHdv
cmtSZXBseUhhbmRsZXI6OnJlc2V0U3RhdGUpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OmZpbmlzaCk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNl
SWZOZWVkZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OmZvcndhcmREYXRhKToK
KFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzdGFydCk6CiogcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXJTaWduYWxRdWV1ZTo6TG9jazo6TG9jayk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxl
clNpZ25hbFF1ZXVlOjpkZWZlclNpZ25hbHMpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXJTaWduYWxRdWV1ZTo6Y2xlYXIpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OnNl
dExvYWRpbmdEZWZlcnJlZCk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5V3JhcHBlcjo6cmVjZWl2
ZVJlYWR5UmVhZCk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1ZXVlOjpm
aW5pc2hlZCk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1ZXVlOjptZXRh
RGF0YUNoYW5nZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZTo6
cmVhZHlSZWFkKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMzggKysrKysrCiAuLi4vcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5jcHAgICB8ICAxMjUgKysrKysrKysrLS0tLS0tLS0tLS0KIC4uLi9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggICAgIHwgICA4MCArKysrKysr
KysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTYwIGluc2VydGlvbnMoKyksIDgzIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiYmYyNGYwLi5lNDFiMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMTEtMDMtMjUgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W1F0XSBRTmV0d29ya1JlcGx5SGFuZGxlciByZWZhY3RvcmluZzogc2lnbmFsIHF1ZXVlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzA3NQorCisgICAg
ICAgIFRoZSBpZGVhIGlzIHRvIG1ha2UgYWxsIHNpZ25hbHMgdGhhdCBjb21lIGZyb20gdGhlIFFO
ZXR3b3JrUmVwbHkgdG8gcGFzcyB0aHJvdWdoIGEgcXVldWUgYW5kIHRvCisgICAgICAgIHN0b3Ag
dGhhdCBxdWV1ZSB3aGVuIGxvYWRpbmcgaXMgZGVmZXJyZWQuIFRoaXMgd2F5IGFsbW9zdCBhbGwg
dGhlIGRlZmVycmVkIGxvZ2ljIGNhbiBiZSByZW1vdmVkCisgICAgICAgIGZyb20gUU5ldHdvcmtS
ZXBseUhhbmRsZXIgY2xhc3MgYW5kIGVuY2Fwc3VsYXRlZCBpbiBpdHMgb3duIGNsYXNzLgorCisg
ICAgICAgIFRoZSBuZXcgY2xhc3MgaXMgbmFtZWQgUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxR
dWV1ZS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBwZXI6OlFOZXR3b3Jr
UmVwbHlXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlXcmFwcGVyOjp+
UU5ldHdvcmtSZXBseVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdy
YXBwZXI6OnJlY2VpdmVNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5
V3JhcHBlcjo6cmVjZWl2ZUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyU2lnbmFsUXVldWU6OkxvY2s6On5Mb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlIYW5kbGVyU2lnbmFsUXVldWU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyU2lnbmFs
UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1
ZTo6cHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1
ZXVlOjpzZXREZWZlclNpZ25hbHMpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3Jr
UmVwbHlIYW5kbGVyOjpyZXNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpmaW5pc2gpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpmb3J3YXJkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyU2ln
bmFsUXVldWU6OkxvY2s6OkxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXJTaWduYWxRdWV1ZTo6ZGVmZXJTaWduYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyU2lnbmFsUXVldWU6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpzZXRMb2FkaW5nRGVmZXJyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UU5ldHdvcmtSZXBseVdyYXBwZXI6OnJlY2VpdmVSZWFkeVJlYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZTo6ZmluaXNoZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZTo6bWV0YURhdGFDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyU2lnbmFsUXVldWU6
OnJlYWR5UmVhZCk6CisKIDIwMTEtMDMtMjQgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5p
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDZlYmYxZGIuLmFhNTM3NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhh
bmRsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDggTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgICAgQ29weXJpZ2h0
IChDKSAyMDA4LTIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA3IFN0YWlrb3MgQ29tcHV0aW5nIFNlcnZpY2VzIElu
Yy4gIDxpbmZvQHN0YWlrb3MubmV0PgogICAgIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlcgogCkBAIC0xNDksMjMgKzE0OSwyNCBAQCBib29sIEZvcm1EYXRhSU9E
ZXZpY2U6OmlzU2VxdWVudGlhbCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVFOZXR3
b3JrUmVwbHlXcmFwcGVyOjpRTmV0d29ya1JlcGx5V3JhcHBlcihRTmV0d29ya1JlcGx5KiByZXBs
eSwgUU9iamVjdCogcGFyZW50KQorUU5ldHdvcmtSZXBseVdyYXBwZXI6OlFOZXR3b3JrUmVwbHlX
cmFwcGVyKFFOZXR3b3JrUmVwbHkqIHJlcGx5LCBRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1
ZXVlKiBxdWV1ZSwgUU9iamVjdCogcGFyZW50KQogICAgIDogUU9iamVjdChwYXJlbnQpCiAgICAg
LCBtX3JlcGx5KHJlcGx5KQorICAgICwgbV9xdWV1ZShxdWV1ZSkKIHsKICAgICBRX0FTU0VSVCht
X3JlcGx5KTsKKyAgICBRX0FTU0VSVChtX3F1ZXVlKTsKIAogICAgIGNvbm5lY3QobV9yZXBseSwg
U0lHTkFMKG1ldGFEYXRhQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChyZWNlaXZlTWV0YURhdGEoKSkp
OwogICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywgU0xPVChy
ZWNlaXZlTWV0YURhdGEoKSkpOwogICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKGZpbmlzaGVk
KCkpLCB0aGlzLCBTTE9UKHJlY2VpdmVNZXRhRGF0YSgpKSk7Ci0KLSAgICBjb25uZWN0KG1fcmVw
bHksIFNJR05BTCh1cGxvYWRQcm9ncmVzcyhxaW50NjQsIHFpbnQ2NCkpLCB0aGlzLCBTSUdOQUwo
dXBsb2FkUHJvZ3Jlc3MocWludDY0LCBxaW50NjQpKSk7CiB9CiAKIFFOZXR3b3JrUmVwbHlXcmFw
cGVyOjp+UU5ldHdvcmtSZXBseVdyYXBwZXIoKQogewogICAgIGlmIChtX3JlcGx5KQogICAgICAg
ICBtX3JlcGx5LT5kZWxldGVMYXRlcigpOworICAgIG1fcXVldWUtPmNsZWFyKCk7CiB9CiAKIFFO
ZXR3b3JrUmVwbHkqIFFOZXR3b3JrUmVwbHlXcmFwcGVyOjpyZWxlYXNlKCkKQEAgLTE5MCwxMCAr
MTkxLDEyIEBAIHZvaWQgUU5ldHdvcmtSZXBseVdyYXBwZXI6OnJlY2VpdmVNZXRhRGF0YSgpCiB7
CiAgICAgcmVzZXRDb25uZWN0aW9ucygpOwogCisgICAgUU5ldHdvcmtSZXBseUhhbmRsZXJTaWdu
YWxRdWV1ZTo6TG9jayBsb2NrKG1fcXVldWUpOworCiAgICAgbV9yZWRpcmVjdFVybCA9IG1fcmVw
bHktPmF0dHJpYnV0ZShRTmV0d29ya1JlcXVlc3Q6OlJlZGlyZWN0aW9uVGFyZ2V0QXR0cmlidXRl
KS50b1VybCgpOwogICAgIGlmIChtX3JlZGlyZWN0VXJsLmlzVmFsaWQoKSkgewotICAgICAgICBl
bWl0IG1ldGFEYXRhQ2hhbmdlZCgpOwotICAgICAgICBlbWl0IGZpbmlzaGVkKCk7CisgICAgICAg
IG1fcXVldWUtPm1ldGFEYXRhQ2hhbmdlZCgpOworICAgICAgICBtX3F1ZXVlLT5maW5pc2hlZCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDEsMjQgKzIwNCw1OSBAQCB2b2lkIFFO
ZXR3b3JrUmVwbHlXcmFwcGVyOjpyZWNlaXZlTWV0YURhdGEoKQogICAgIG1fZW5jb2RpbmcgPSBl
eHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpOwogICAgIG1fb2ZmaWNpYWxN
aW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpOwogCi0g
ICAgZW1pdCBtZXRhRGF0YUNoYW5nZWQoKTsKKyAgICBtX3F1ZXVlLT5tZXRhRGF0YUNoYW5nZWQo
KTsKIAogICAgIGlmIChtX3JlcGx5LT5ieXRlc0F2YWlsYWJsZSgpKQotICAgICAgICBlbWl0IHJl
YWR5UmVhZCgpOworICAgICAgICBtX3F1ZXVlLT5yZWFkeVJlYWQoKTsKIAogICAgIGlmIChtX3Jl
cGx5LT5pc0ZpbmlzaGVkKCkpIHsKLSAgICAgICAgZW1pdCBmaW5pc2hlZCgpOworICAgICAgICBt
X3F1ZXVlLT5maW5pc2hlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29ubmVj
dChtX3JlcGx5LCBTSUdOQUwocmVhZHlSZWFkKCkpLCB0aGlzLCBTSUdOQUwocmVhZHlSZWFkKCkp
KTsKKyAgICBjb25uZWN0KG1fcmVwbHksIFNJR05BTChyZWFkeVJlYWQoKSksIHRoaXMsIFNMT1Qo
cmVjZWl2ZVJlYWR5UmVhZCgpKSk7CiAgICAgY29ubmVjdChtX3JlcGx5LCBTSUdOQUwoZmluaXNo
ZWQoKSksIHRoaXMsIFNMT1QocmVjZWl2ZUZpbmlzaGVkKCkpKTsKIH0KIAogdm9pZCBRTmV0d29y
a1JlcGx5V3JhcHBlcjo6cmVjZWl2ZUZpbmlzaGVkKCkKIHsKICAgICByZXNldENvbm5lY3Rpb25z
KCk7Ci0gICAgZW1pdCBmaW5pc2hlZCgpOworICAgIG1fcXVldWUtPmZpbmlzaGVkKCk7Cit9CisK
K1FOZXR3b3JrUmVwbHlIYW5kbGVyU2lnbmFsUXVldWU6OkxvY2s6On5Mb2NrKCkKK3sKKyAgICAt
LW1fcXVldWUtPm1fbG9ja3M7CisgICAgbV9xdWV1ZS0+c2V0RGVmZXJTaWduYWxzKG1fcXVldWUt
PmRlZmVyU2lnbmFscygpKTsKK30KKworUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZShRTmV0d29ya1JlcGx5SGFuZGxlciogaGFu
ZGxlciwgYm9vbCBkZWZlclNpZ25hbHMpCisgICAgOiBtX3JlcGx5SGFuZGxlcihoYW5kbGVyKQor
ICAgICwgbV9sb2NrcygwKQorICAgICwgbV9kZWZlclNpZ25hbHMoZGVmZXJTaWduYWxzKQorewor
ICAgIFFfQVNTRVJUKGhhbmRsZXIpOworfQorCit2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyU2ln
bmFsUXVldWU6OnB1c2goU2lnbmFsTWV0aG9kIG1ldGhvZCkKK3sKKyAgICBpZiAobV9kZWZlclNp
Z25hbHMgfHwgbV9sb2NrcykgeworICAgICAgICBtX2RlZmVycmVkU2lnbmFscy5hcHBlbmQobWV0
aG9kKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIChtX3JlcGx5SGFuZGxlci0+Km1l
dGhvZCkoKTsKK30KKwordm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1ZXVlOjpzZXRE
ZWZlclNpZ25hbHMoYm9vbCBkZWZlcikKK3sKKyAgICBtX2RlZmVyU2lnbmFscyA9IGRlZmVyOwor
CisgICAgaWYgKG1fZGVmZXJTaWduYWxzIHx8IG1fbG9ja3MpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHdoaWxlICghbV9kZWZlcnJlZFNpZ25hbHMuaXNFbXB0eSgpKQorICAgICAgICAobV9yZXBs
eUhhbmRsZXItPioobV9kZWZlcnJlZFNpZ25hbHMudGFrZUZpcnN0KCkpKSgpOwogfQogCiBTdHJp
bmcgUU5ldHdvcmtSZXBseUhhbmRsZXI6Omh0dHBNZXRob2QoKSBjb25zdApAQCAtMjQ3LDcgKzI4
NSw3IEBAIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBMb2FkVHlwZSBsb2FkCiAgICAgLCBtX3JlcGx5V3JhcHBlcigwKQog
ICAgICwgbV9yZXNvdXJjZUhhbmRsZShoYW5kbGUpCiAgICAgLCBtX2xvYWRUeXBlKGxvYWRUeXBl
KQotICAgICwgbV9kZWZlcnJlZChkZWZlcnJlZCkKKyAgICAsIG1fc2lnbmFsUXVldWUodGhpcywg
ZGVmZXJyZWQpCiAgICAgLCBtX3JlZGlyZWN0aW9uVHJpZXMoZ01heFJlZGlyZWN0aW9ucykKIHsK
ICAgICByZXNldFN0YXRlKCk7CkBAIC0yNzMsOCArMzExLDcgQEAgUU5ldHdvcmtSZXBseUhhbmRs
ZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRUeXBl
IGxvYWQKIAogICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChvcmlnaW5hdGluZ09i
amVjdCk7CiAKLSAgICBpZiAoIW1fZGVmZXJyZWQpCi0gICAgICAgIHN0YXJ0KCk7CisgICAgbV9z
aWduYWxRdWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogfQogCiB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0YXRlKCkKQEAgLTI4Myw5ICszMjAsNiBAQCB2
b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0YXRlKCkKICAgICBtX3Jlc3BvbnNlU2Vu
dCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VDb250YWluc0RhdGEgPSBmYWxzZTsKICAgICBtX2hh
c1N0YXJ0ZWQgPSBmYWxzZTsKLSAgICBtX2NhbGxGaW5pc2hPblJlc3VtZSA9IGZhbHNlOwotICAg
IG1fY2FsbFNlbmRSZXNwb25zZUlmTmVlZGVkT25SZXN1bWUgPSBmYWxzZTsKLSAgICBtX2NhbGxG
b3J3YXJkRGF0YU9uUmVzdW1lID0gZmFsc2U7CiAKICAgICBpZiAobV9yZXBseVdyYXBwZXIpIHsK
ICAgICAgICAgZGVsZXRlIG1fcmVwbHlXcmFwcGVyOwpAQCAtMjkzLDM0ICszMjcsNiBAQCB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0YXRlKCkKICAgICB9CiB9CiAKLXZvaWQgUU5l
dHdvcmtSZXBseUhhbmRsZXI6OnNldExvYWRpbmdEZWZlcnJlZChib29sIGRlZmVycmVkKQotewot
ICAgIG1fZGVmZXJyZWQgPSBkZWZlcnJlZDsKLQotICAgIGlmICghZGVmZXJyZWQpCi0gICAgICAg
IHJlc3VtZURlZmVycmVkTG9hZCgpOwotfQotCi12b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpy
ZXN1bWVEZWZlcnJlZExvYWQoKQotewotICAgIGlmICghbV9oYXNTdGFydGVkKSB7Ci0gICAgICAg
IEFTU0VSVCghbV9jYWxsU2VuZFJlc3BvbnNlSWZOZWVkZWRPblJlc3VtZSk7Ci0gICAgICAgIEFT
U0VSVCghbV9jYWxsRm9yd2FyZERhdGFPblJlc3VtZSk7Ci0gICAgICAgIEFTU0VSVCghbV9jYWxs
RmluaXNoT25SZXN1bWUpOwotICAgICAgICBzdGFydCgpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaWYgKG1fY2FsbFNlbmRSZXNwb25zZUlmTmVlZGVkT25SZXN1bWUpCi0gICAgICAg
IHNlbmRSZXNwb25zZUlmTmVlZGVkKCk7Ci0KLSAgICBpZiAobV9jYWxsRm9yd2FyZERhdGFPblJl
c3VtZSkKLSAgICAgICAgZm9yd2FyZERhdGEoKTsKLQotICAgIGlmIChtX2NhbGxGaW5pc2hPblJl
c3VtZSkKLSAgICAgICAgZmluaXNoKCk7Ci19Ci0KIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6
OmFib3J0KCkKIHsKICAgICBtX3Jlc291cmNlSGFuZGxlID0gMDsKQEAgLTM1OSwxMCArMzY1LDYg
QEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNoKCkKIHsKICAgICBBU1NFUlQobV9o
YXNTdGFydGVkKTsKIAotICAgIG1fY2FsbEZpbmlzaE9uUmVzdW1lID0gbV9kZWZlcnJlZDsKLSAg
ICBpZiAobV9kZWZlcnJlZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKCFtX3JlcGx5V3Jh
cHBlciB8fCAhbV9yZXBseVdyYXBwZXItPnJlcGx5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NDA5LDEwICs0MTEsNiBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJ
Zk5lZWRlZCgpCiB7CiAgICAgQVNTRVJUKG1faGFzU3RhcnRlZCk7CiAKLSAgICBtX2NhbGxTZW5k
UmVzcG9uc2VJZk5lZWRlZE9uUmVzdW1lID0gbV9kZWZlcnJlZDsKLSAgICBpZiAobV9kZWZlcnJl
ZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKCFtX3JlcGx5V3JhcHBlciB8fCAhbV9yZXBs
eVdyYXBwZXItPnJlcGx5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNTI2LDEwICs1MjQsNiBA
QCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSgpCiB7CiAgICAgQVNTRVJU
KG1faGFzU3RhcnRlZCk7CiAKLSAgICBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lID0gbV9kZWZl
cnJlZDsKLSAgICBpZiAobV9kZWZlcnJlZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1f
cmVwbHlXcmFwcGVyLT5yZXBseSgpLT5ieXRlc0F2YWlsYWJsZSgpKQogICAgICAgICBtX3Jlc3Bv
bnNlQ29udGFpbnNEYXRhID0gdHJ1ZTsKIApAQCAtNjM0LDI1ICs2MjgsMTggQEAgdm9pZCBRTmV0
d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQoKQogICAgIGlmICghcmVwbHkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcmVwbHlXcmFwcGVyID0gbmV3IFFOZXR3b3JrUmVwbHlXcmFwcGVyKHJlcGx5
LCB0aGlzKTsKKyAgICBpZiAobV9yZXBseVdyYXBwZXIpCisgICAgICAgIGRlbGV0ZSBtX3JlcGx5
V3JhcHBlcjsKKworICAgIG1fcmVwbHlXcmFwcGVyID0gbmV3IFFOZXR3b3JrUmVwbHlXcmFwcGVy
KHJlcGx5LCAmbV9zaWduYWxRdWV1ZSwgdGhpcyk7CiAKICAgICBpZiAobV9sb2FkVHlwZSA9PSBT
eW5jaHJvbm91c0xvYWQgJiYgbV9yZXBseVdyYXBwZXItPnJlcGx5KCktPmlzRmluaXNoZWQoKSkg
ewogICAgICAgICAvLyBJZiBzdXBwb3J0ZWQsIGEgc3luY2hyb25vdXMgcmVxdWVzdCB3aWxsIGJl
IGZpbmlzaGVkIGF0IHRoaXMgcG9pbnQsIG5vIG5lZWQgdG8gaG9vayB1cCB0aGUgc2lnbmFscy4K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNvbm5lY3QobV9yZXBseVdyYXBwZXIsIFNJ
R05BTChmaW5pc2hlZCgpKSwgdGhpcywgU0xPVChmaW5pc2goKSkpOwotCi0gICAgLy8gRm9yIGh0
dHAocykgd2Uga25vdyB0aGF0IHRoZSBoZWFkZXJzIGFyZSBjb21wbGV0ZSB1cG9uIG1ldGFEYXRh
Q2hhbmdlZCgpIGVtaXNzaW9uLCBzbyB3ZQotICAgIC8vIGNhbiBzZW5kIHRoZSByZXNwb25zZSBh
cyBlYXJseSBhcyBwb3NzaWJsZQotICAgIGNvbnN0IFFTdHJpbmcgc2NoZW1lID0gbV9yZXF1ZXN0
LnVybCgpLnNjaGVtZSgpOwotICAgIGlmIChzY2hlbWUgPT0gUUxhdGluMVN0cmluZygiaHR0cCIp
IHx8IHNjaGVtZSA9PSBRTGF0aW4xU3RyaW5nKCJodHRwcyIpKQotICAgICAgICBjb25uZWN0KG1f
cmVwbHlXcmFwcGVyLCBTSUdOQUwobWV0YURhdGFDaGFuZ2VkKCkpLCB0aGlzLCBTTE9UKHNlbmRS
ZXNwb25zZUlmTmVlZGVkKCkpKTsKLQotICAgIGNvbm5lY3QobV9yZXBseVdyYXBwZXIsIFNJR05B
TChyZWFkeVJlYWQoKSksIHRoaXMsIFNMT1QoZm9yd2FyZERhdGEoKSkpOwotCiAgICAgaWYgKG1f
cmVzb3VyY2VIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcG9ydFVwbG9hZFByb2dyZXNzKCkpCi0g
ICAgICAgIGNvbm5lY3QobV9yZXBseVdyYXBwZXIsIFNJR05BTCh1cGxvYWRQcm9ncmVzcyhxaW50
NjQsIHFpbnQ2NCkpLCB0aGlzLCBTTE9UKHVwbG9hZFByb2dyZXNzKHFpbnQ2NCwgcWludDY0KSkp
OworICAgICAgICBjb25uZWN0KHJlcGx5LCBTSUdOQUwodXBsb2FkUHJvZ3Jlc3MocWludDY0LCBx
aW50NjQpKSwgdGhpcywgU0xPVCh1cGxvYWRQcm9ncmVzcyhxaW50NjQsIHFpbnQ2NCkpKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9R
TmV0d29ya1JlcGx5SGFuZGxlci5oCmluZGV4IDRiMjAzMjguLjljMzdlMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlI
YW5kbGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwOCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDgtMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzYsMTAgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAor
Y2xhc3MgUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZTsKKwogY2xhc3MgUU5ldHdvcmtS
ZXBseVdyYXBwZXIgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKIHB1YmxpYzoKLSAg
ICBRTmV0d29ya1JlcGx5V3JhcHBlcihRTmV0d29ya1JlcGx5KiwgUU9iamVjdCogcGFyZW50ID0g
MCk7CisgICAgUU5ldHdvcmtSZXBseVdyYXBwZXIoUU5ldHdvcmtSZXBseSosIFFOZXR3b3JrUmVw
bHlIYW5kbGVyU2lnbmFsUXVldWUqIHF1ZXVlLCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKICAgICB+
UU5ldHdvcmtSZXBseVdyYXBwZXIoKTsKIAogICAgIFFOZXR3b3JrUmVwbHkqIHJlcGx5KCkgY29u
c3QgeyByZXR1cm4gbV9yZXBseTsgfQpAQCAtNDksMTUgKzUxLDEwIEBAIHB1YmxpYzoKICAgICBR
U3RyaW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9lbmNvZGluZzsgfQogICAgIFFTdHJp
bmcgb2ZmaWNpYWxNaW1lVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2ZmaWNpYWxNaW1lVHlwZTsg
fQogCi1RX1NJR05BTFM6Ci0gICAgdm9pZCBmaW5pc2hlZCgpOwotICAgIHZvaWQgbWV0YURhdGFD
aGFuZ2VkKCk7Ci0gICAgdm9pZCByZWFkeVJlYWQoKTsKLSAgICB2b2lkIHVwbG9hZFByb2dyZXNz
KHFpbnQ2NCBieXRlc1NlbnQsIHFpbnQ2NCBieXRlc1RvdGFsKTsKLQogcHJpdmF0ZSBRX1NMT1RT
OgogICAgIHZvaWQgcmVjZWl2ZU1ldGFEYXRhKCk7CiAgICAgdm9pZCByZWNlaXZlRmluaXNoZWQo
KTsKKyAgICBpbmxpbmUgdm9pZCByZWNlaXZlUmVhZHlSZWFkKCk7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCByZXNldENvbm5lY3Rpb25zKCk7CkBAIC02Nyw2ICs2NCw0NSBAQCBwcml2YXRlOgogCiAg
ICAgUVN0cmluZyBtX2VuY29kaW5nOwogICAgIFFTdHJpbmcgbV9vZmZpY2lhbE1pbWVUeXBlOwor
CisgICAgUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZSogbV9xdWV1ZTsKK307CisKK2Ns
YXNzIFFOZXR3b3JrUmVwbHlIYW5kbGVyOworCitjbGFzcyBRTmV0d29ya1JlcGx5SGFuZGxlclNp
Z25hbFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBMb2NrIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIExvY2soUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZSogcXVldWUpIDogbV9xdWV1
ZShxdWV1ZSkgeyArK21fcXVldWUtPm1fbG9ja3M7IH0KKyAgICAgICAgfkxvY2soKTsKKworICAg
IHByaXZhdGU6CisgICAgICAgIExvY2soTG9jayYpIHt9CisgICAgICAgIFFOZXR3b3JrUmVwbHlI
YW5kbGVyU2lnbmFsUXVldWUqIG1fcXVldWU7CisgICAgfTsKKyAgICBmcmllbmQgY2xhc3MgTG9j
azsKKworcHVibGljOgorICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyU2lnbmFsUXVldWUoUU5ldHdv
cmtSZXBseUhhbmRsZXIqIGhhbmRsZXIsIGJvb2wgZGVmZXJTaWduYWxzKTsKKworICAgIGJvb2wg
ZGVmZXJTaWduYWxzKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlclNpZ25hbHM7IH0KKyAgICB2b2lk
IHNldERlZmVyU2lnbmFscyhib29sKTsKKworICAgIHR5cGVkZWYgdm9pZCAoUU5ldHdvcmtSZXBs
eUhhbmRsZXI6OipTaWduYWxNZXRob2QpKCk7CisgICAgdm9pZCBwdXNoKFNpZ25hbE1ldGhvZCBt
ZXRob2QpOworICAgIHZvaWQgY2xlYXIoKSB7IG1fZGVmZXJyZWRTaWduYWxzLmNsZWFyKCk7IH0K
KworICAgIHZvaWQgZmluaXNoZWQoKTsKKyAgICB2b2lkIG1ldGFEYXRhQ2hhbmdlZCgpOworICAg
IHZvaWQgcmVhZHlSZWFkKCk7CisKK3ByaXZhdGU6CisgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIq
IG1fcmVwbHlIYW5kbGVyOworCisgICAgaW50IG1fbG9ja3M7CisgICAgYm9vbCBtX2RlZmVyU2ln
bmFsczsKKyAgICBRTGlzdDxTaWduYWxNZXRob2Q+IG1fZGVmZXJyZWRTaWduYWxzOwogfTsKIAog
Y2xhc3MgUU5ldHdvcmtSZXBseUhhbmRsZXIgOiBwdWJsaWMgUU9iamVjdApAQCAtNzksNyArMTE1
LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJj
ZUhhbmRsZSosIExvYWRUeXBlLCBib29sIGRlZmVycmVkID0gZmFsc2UpOwotICAgIHZvaWQgc2V0
TG9hZGluZ0RlZmVycmVkKGJvb2wpOworICAgIHZvaWQgc2V0TG9hZGluZ0RlZmVycmVkKGJvb2wg
ZGVmZXJyZWQpIHsgbV9zaWduYWxRdWV1ZS5zZXREZWZlclNpZ25hbHMoZGVmZXJyZWQpOyB9CiAK
ICAgICBRTmV0d29ya1JlcGx5KiByZXBseSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbHlXcmFwcGVy
ID8gbV9yZXBseVdyYXBwZXItPnJlcGx5KCkgOiAwOyB9CiAKQEAgLTk3LDcgKzEzMyw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgcmVzZXRTdGF0ZSgpOwogICAgIFN0
cmluZyBodHRwTWV0aG9kKCkgY29uc3Q7Ci0gICAgdm9pZCByZXN1bWVEZWZlcnJlZExvYWQoKTsK
ICAgICB2b2lkIHJlZGlyZWN0KFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBRVXJsJik7CiAgICAg
Ym9vbCB3YXNBYm9ydGVkKCkgY29uc3QgeyByZXR1cm4gIW1fcmVzb3VyY2VIYW5kbGU7IH0KICAg
ICBRTmV0d29ya1JlcGx5KiBzZW5kTmV0d29ya1JlcXVlc3QoKTsKQEAgLTExMSwxMyArMTQ2LDEw
IEBAIHByaXZhdGU6CiAgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpPcGVyYXRpb24gbV9tZXRo
b2Q7CiAgICAgUU5ldHdvcmtSZXF1ZXN0IG1fcmVxdWVzdDsKIAotICAgIGJvb2wgbV9kZWZlcnJl
ZDsKKyAgICBRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1ZXVlIG1fc2lnbmFsUXVldWU7CiAK
ICAgICAvLyBkZWZlciBzdGF0ZSBob2xkaW5nCiAgICAgYm9vbCBtX2hhc1N0YXJ0ZWQ7Ci0gICAg
Ym9vbCBtX2NhbGxGaW5pc2hPblJlc3VtZTsKLSAgICBib29sIG1fY2FsbFNlbmRSZXNwb25zZUlm
TmVlZGVkT25SZXN1bWU7Ci0gICAgYm9vbCBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lOwogICAg
IGludCBtX3JlZGlyZWN0aW9uVHJpZXM7CiB9OwogCkBAIC0xNTIsNiArMTg0LDI2IEBAIHByaXZh
dGU6CiAgICAgcWludDY0IG1fZGF0YVNpemU7CiB9OwogCitpbmxpbmUgdm9pZCBRTmV0d29ya1Jl
cGx5V3JhcHBlcjo6cmVjZWl2ZVJlYWR5UmVhZCgpCit7CisgICAgbV9xdWV1ZS0+cmVhZHlSZWFk
KCk7Cit9CisKK2lubGluZSB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyU2lnbmFsUXVldWU6OmZp
bmlzaGVkKCkKK3sKKyAgICBwdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNoKTsKK30K
KworaW5saW5lIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXJTaWduYWxRdWV1ZTo6bWV0YURhdGFD
aGFuZ2VkKCkKK3sKKyAgICBwdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNl
SWZOZWVkZWQpOworfQorCitpbmxpbmUgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlclNpZ25hbFF1
ZXVlOjpyZWFkeVJlYWQoKQoreworICAgIHB1c2goJlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3
YXJkRGF0YSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIFFOZXR3b3JrUmVwbHlIYW5kbGVyX2gKLS0g
CjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89232</attachid>
            <date>2011-04-12 11:31:44 -0700</date>
            <delta_ts>2011-04-12 11:46:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Qt-QNetworkReplyHandler-refactoring-signal-queue.patch</filename>
            <type>text/plain</type>
            <size>18212</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSA0ZjkyNzBmMzZhYTliZDNiNTMyYWUyMDE4ZDU4Mjk2ZGM0YjE2ZGUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMTIgQXByIDIwMTEgMTU6MTg6MDYgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBbUXRdIFFOZXR3b3JrUmVwbHlIYW5kbGVyIHJlZmFjdG9yaW5nOiBzaWduYWwgcXVldWUK
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzA3NQoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpUaGUgaWRlYSBpcyB0byBtYWtlIGFsbCBzaWduYWxzIHRoYXQg
Y29tZSBmcm9tIHRoZSBRTmV0d29ya1JlcGx5IHRvIHBhc3MgdGhyb3VnaCBhIHF1ZXVlIGFuZCB0
bwpzdG9wIHRoYXQgcXVldWUgd2hlbiBsb2FkaW5nIGlzIGRlZmVycmVkLiBUaGlzIHdheSBhbG1v
c3QgYWxsIHRoZSBkZWZlcnJlZCBsb2dpYyBjYW4gYmUgcmVtb3ZlZApmcm9tIFFOZXR3b3JrUmVw
bHlIYW5kbGVyIGNsYXNzIGFuZCBlbmNhcHN1bGF0ZWQgaW4gaXRzIG93biBjbGFzcy4KClRvIHN0
b3AgdGhlIHF1ZXVlIGR1cmluZyB3cmFwcGVyIG1ldGhvZHMgZXhlY3V0aW9uIGF2b2lkcyBzdGFj
a2luZyBoYW5kbGVyIG1ldGhvZHMgb3ZlciB3cmFwcGVyCm1ldGhvZHMuIEJlY2F1c2Ugb2YgdGhp
cyB0aGVyZSBpcyBubyBjaGFuY2UgZm9yIHRoZSB3cmFwcGVyIHRvIGJlIGRlc3Ryb3llZCBpbnNp
ZGUgb25lIG9mIGl0cyBtZXRob2RzLgpUaGlzIHRvZ2V0aGVyIHdpdGggZW1wdGluZyB0aGUgcXVl
dWUgYXQgd3JhcHBlciBkZXN0cnVjdGlvbiB0aW1lIG1ha2VzIHN1cmUgdGhhdCB0aGUgaGFuZGxl
ciB3aWxsCm5vdCByZWNlaXZlIGNhbGxzIGZyb20gYSBkZWFkIHdyYXBwZXIuCgpUaGUgbmV3IGNs
YXNzIGlzIG5hbWVkIFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlLgoKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyQ2FsbFF1ZXVlOjpRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZSk6CihXZWJD
b3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6cHVzaCk6CihXZWJDb3JlOjpRTmV0
d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6bG9jayk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlckNhbGxRdWV1ZTo6dW5sb2NrKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
Q2FsbFF1ZXVlOjpzZXREZWZlclNpZ25hbHMpOgooV2ViQ29yZTo6UXVldWVMb2NrZXI6OlF1ZXVl
TG9ja2VyKToKKFdlYkNvcmU6OlF1ZXVlTG9ja2VyOjp+UXVldWVMb2NrZXIpOgooV2ViQ29yZTo6
UU5ldHdvcmtSZXBseVdyYXBwZXI6OlFOZXR3b3JrUmVwbHlXcmFwcGVyKToKKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlXcmFwcGVyOjp+UU5ldHdvcmtSZXBseVdyYXBwZXIpOgooV2ViQ29yZTo6UU5l
dHdvcmtSZXBseVdyYXBwZXI6OnJlY2VpdmVNZXRhRGF0YSk6CihXZWJDb3JlOjpRTmV0d29ya1Jl
cGx5V3JhcHBlcjo6cmVhZHlSZWFkKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlXcmFwcGVyOjpk
aWRSZWNlaXZlRmluaXNoZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0
YXRlKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWxlYXNlKToKKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmaW5pc2gpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpmb3J3YXJkRGF0YSk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQp
OgoqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaDoKKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlOjpkZWZlclNpZ25hbHMpOgooV2ViQ29yZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWU6OmNsZWFyKToKKFdlYkNvcmU6OlFOZXR3b3Jr
UmVwbHlXcmFwcGVyOjpzeW5jaHJvbm91c0xvYWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnNldExvYWRpbmdEZWZlcnJlZCk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQ0ICsrKysrCiAuLi4vcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgICB8ICAxOTYgKysrKysrKysrLS0tLS0t
LS0tLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggICAg
IHwgICA0NSArKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMTI4IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MTBkNmNmLi45ZTk1MzA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTEtMDQtMTIgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5p
QG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1F0XSBRTmV0d29ya1JlcGx5SGFuZGxlciByZWZhY3RvcmluZzogc2lnbmFsIHF1
ZXVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzA3
NQorCisgICAgICAgIFRoZSBpZGVhIGlzIHRvIG1ha2UgYWxsIHNpZ25hbHMgdGhhdCBjb21lIGZy
b20gdGhlIFFOZXR3b3JrUmVwbHkgdG8gcGFzcyB0aHJvdWdoIGEgcXVldWUgYW5kIHRvCisgICAg
ICAgIHN0b3AgdGhhdCBxdWV1ZSB3aGVuIGxvYWRpbmcgaXMgZGVmZXJyZWQuIFRoaXMgd2F5IGFs
bW9zdCBhbGwgdGhlIGRlZmVycmVkIGxvZ2ljIGNhbiBiZSByZW1vdmVkCisgICAgICAgIGZyb20g
UU5ldHdvcmtSZXBseUhhbmRsZXIgY2xhc3MgYW5kIGVuY2Fwc3VsYXRlZCBpbiBpdHMgb3duIGNs
YXNzLgorCisgICAgICAgIFRvIHN0b3AgdGhlIHF1ZXVlIGR1cmluZyB3cmFwcGVyIG1ldGhvZHMg
ZXhlY3V0aW9uIGF2b2lkcyBzdGFja2luZyBoYW5kbGVyIG1ldGhvZHMgb3ZlciB3cmFwcGVyCisg
ICAgICAgIG1ldGhvZHMuIEJlY2F1c2Ugb2YgdGhpcyB0aGVyZSBpcyBubyBjaGFuY2UgZm9yIHRo
ZSB3cmFwcGVyIHRvIGJlIGRlc3Ryb3llZCBpbnNpZGUgb25lIG9mIGl0cyBtZXRob2RzLgorICAg
ICAgICBUaGlzIHRvZ2V0aGVyIHdpdGggZW1wdGluZyB0aGUgcXVldWUgYXQgd3JhcHBlciBkZXN0
cnVjdGlvbiB0aW1lIG1ha2VzIHN1cmUgdGhhdCB0aGUgaGFuZGxlciB3aWxsCisgICAgICAgIG5v
dCByZWNlaXZlIGNhbGxzIGZyb20gYSBkZWFkIHdyYXBwZXIuCisKKyAgICAgICAgVGhlIG5ldyBj
bGFzcyBpcyBuYW1lZCBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZS4KKworICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyQ2FsbFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2Fs
bFF1ZXVlOjpwdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2Fs
bFF1ZXVlOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2Fs
bFF1ZXVlOjp1bmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJD
YWxsUXVldWU6OnNldERlZmVyU2lnbmFscyk6CisgICAgICAgIChXZWJDb3JlOjpRdWV1ZUxvY2tl
cjo6UXVldWVMb2NrZXIpOgorICAgICAgICAoV2ViQ29yZTo6UXVldWVMb2NrZXI6On5RdWV1ZUxv
Y2tlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5V3JhcHBlcjo6UU5ldHdvcmtS
ZXBseVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBwZXI6On5R
TmV0d29ya1JlcGx5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5V3Jh
cHBlcjo6cmVjZWl2ZU1ldGFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlX
cmFwcGVyOjpyZWFkeVJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBw
ZXI6OmRpZFJlY2VpdmVGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdv
cmtSZXBseUhhbmRsZXI6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtS
ZXBseUhhbmRsZXI6OnJlbGVhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OmZvcndhcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVl
dWU6OmRlZmVyU2lnbmFscyk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxl
ckNhbGxRdWV1ZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBw
ZXI6OnN5bmNocm9ub3VzTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6c2V0TG9hZGluZ0RlZmVycmVkKToKKwogMjAxMS0wNC0xMSAgQWJoaXNoZWsgQXJ5YSAg
PGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDZlNjMxNDUuLjgxMjhlNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuY3BwCkBAIC0xNDksOSArMTQ5LDYxIEBAIGJvb2wgRm9ybURhdGFJT0RldmljZTo6
aXNTZXF1ZW50aWFsKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUU5ldHdvcmtSZXBs
eVdyYXBwZXI6OlFOZXR3b3JrUmVwbHlXcmFwcGVyKFFOZXR3b3JrUmVwbHkqIHJlcGx5LCBRT2Jq
ZWN0KiBwYXJlbnQpCitRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXJDYWxsUXVldWUoUU5ldHdvcmtSZXBseUhhbmRsZXIqIGhhbmRsZXIsIGJvb2wgZGVm
ZXJTaWduYWxzKQorICAgIDogbV9yZXBseUhhbmRsZXIoaGFuZGxlcikKKyAgICAsIG1fbG9ja3Mo
MCkKKyAgICAsIG1fZGVmZXJTaWduYWxzKGRlZmVyU2lnbmFscykKK3sKKyAgICBRX0FTU0VSVCho
YW5kbGVyKTsKK30KKwordm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6cHVzaChF
bnF1ZXVlZENhbGwgbWV0aG9kKQoreworICAgIGlmIChtX2RlZmVyU2lnbmFscyB8fCBtX2xvY2tz
KSB7CisgICAgICAgIG1fZW5xdWV1ZWRDYWxscy5hcHBlbmQobWV0aG9kKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIChtX3JlcGx5SGFuZGxlci0+Km1ldGhvZCkoKTsKK30KKwordm9p
ZCBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6bG9jaygpCit7CisgICAgKyttX2xvY2tz
OworfQorCit2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlOjp1bmxvY2soKQorewor
ICAgIGlmICghbV9sb2NrcykKKyAgICAgICAgcmV0dXJuOworCisgICAgLS1tX2xvY2tzOworICAg
IHNldERlZmVyU2lnbmFscyhtX2RlZmVyU2lnbmFscyk7Cit9CisKK3ZvaWQgUU5ldHdvcmtSZXBs
eUhhbmRsZXJDYWxsUXVldWU6OnNldERlZmVyU2lnbmFscyhib29sIGRlZmVyKQoreworICAgIG1f
ZGVmZXJTaWduYWxzID0gZGVmZXI7CisKKyAgICBpZiAobV9kZWZlclNpZ25hbHMgfHwgbV9sb2Nr
cykKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKCFtX2VucXVldWVkQ2FsbHMuaXNFbXB0
eSgpKQorICAgICAgICAobV9yZXBseUhhbmRsZXItPioobV9lbnF1ZXVlZENhbGxzLnRha2VGaXJz
dCgpKSkoKTsKK30KKworY2xhc3MgUXVldWVMb2NrZXIgeworcHVibGljOgorICAgIFF1ZXVlTG9j
a2VyKFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlKiBxdWV1ZSkgOiBtX3F1ZXVlKHF1ZXVl
KSB7IG1fcXVldWUtPmxvY2soKTsgfQorICAgIH5RdWV1ZUxvY2tlcigpIHsgbV9xdWV1ZS0+dW5s
b2NrKCk7IH0KK3ByaXZhdGU6CisgICAgUU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWUqIG1f
cXVldWU7Cit9OworCitRTmV0d29ya1JlcGx5V3JhcHBlcjo6UU5ldHdvcmtSZXBseVdyYXBwZXIo
UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWUqIHF1ZXVlLCBRTmV0d29ya1JlcGx5KiByZXBs
eSwgUU9iamVjdCogcGFyZW50KQogICAgIDogUU9iamVjdChwYXJlbnQpCiAgICAgLCBtX3JlcGx5
KHJlcGx5KQorICAgICwgbV9xdWV1ZShxdWV1ZSkKIHsKICAgICBRX0FTU0VSVChtX3JlcGx5KTsK
IApAQCAtMTY0LDYgKzIxNiw3IEBAIFFOZXR3b3JrUmVwbHlXcmFwcGVyOjp+UU5ldHdvcmtSZXBs
eVdyYXBwZXIoKQogewogICAgIGlmIChtX3JlcGx5KQogICAgICAgICBtX3JlcGx5LT5kZWxldGVM
YXRlcigpOworICAgIG1fcXVldWUtPmNsZWFyKCk7CiB9CiAKIFFOZXR3b3JrUmVwbHkqIFFOZXR3
b3JrUmVwbHlXcmFwcGVyOjpyZWxlYXNlKCkKQEAgLTE5MCwxMCArMjQzLDEyIEBAIHZvaWQgUU5l
dHdvcmtSZXBseVdyYXBwZXI6OnJlY2VpdmVNZXRhRGF0YSgpCiAgICAgLy8gVGhpcyBzbG90IGlz
IG9ubHkgdXNlZCB0byByZWNlaXZlIHRoZSBmaXJzdCBzaWduYWwgZnJvbSB0aGUgUU5ldHdvcmtS
ZXBseSBvYmplY3QuCiAgICAgcmVzZXRDb25uZWN0aW9ucygpOwogCisgICAgUXVldWVMb2NrZXIg
bG9jayhtX3F1ZXVlKTsKKwogICAgIG1fcmVkaXJlY3Rpb25UYXJnZXRVcmwgPSBtX3JlcGx5LT5h
dHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpSZWRpcmVjdGlvblRhcmdldEF0dHJpYnV0ZSkudG9V
cmwoKTsKICAgICBpZiAobV9yZWRpcmVjdGlvblRhcmdldFVybC5pc1ZhbGlkKCkpIHsKLSAgICAg
ICAgZW1pdCBtZXRhRGF0YUNoYW5nZWQoKTsKLSAgICAgICAgZW1pdCBmaW5pc2hlZCgpOworICAg
ICAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZO
ZWVkZWQpOworICAgICAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6Zmlu
aXNoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjAxLDMyICsyNTYsMzEgQEAgdm9p
ZCBRTmV0d29ya1JlcGx5V3JhcHBlcjo6cmVjZWl2ZU1ldGFEYXRhKCkKICAgICBtX2VuY29kaW5n
ID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBtX2FkdmVy
dGlzZWRNaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUp
OwogCi0gICAgYm9vbCBoYXNEYXRhID0gbV9yZXBseS0+Ynl0ZXNBdmFpbGFibGUoKTsKLSAgICBi
b29sIGlzRmluaXNoZWQgPSBtX3JlcGx5LT5pc0ZpbmlzaGVkKCk7Ci0KLSAgICBpZiAoIWlzRmlu
aXNoZWQpIHsKLSAgICAgICAgLy8gSWYgbm90IGZpbmlzaGVkLCBjb25uZWN0IHRvIHRoZSBzbG90
cyB0aGF0IHdpbGwgYmUgdXNlZCBmcm9tIHRoaXMgcG9pbnQgb24uCi0gICAgICAgIGNvbm5lY3Qo
bV9yZXBseSwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywgU0lHTkFMKHJlYWR5UmVhZCgpKSk7
Ci0gICAgICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKGZpbmlzaGVkKCkpLCB0aGlzLCBTTE9U
KGRpZFJlY2VpdmVGaW5pc2hlZCgpKSk7Ci0gICAgfQotCi0gICAgZW1pdCBtZXRhRGF0YUNoYW5n
ZWQoKTsKKyAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3Bv
bnNlSWZOZWVkZWQpOwogCi0gICAgaWYgKGhhc0RhdGEpCi0gICAgICAgIGVtaXQgcmVhZHlSZWFk
KCk7CisgICAgaWYgKG1fcmVwbHktPmJ5dGVzQXZhaWxhYmxlKCkpCisgICAgICAgIG1fcXVldWUt
PnB1c2goJlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSk7CiAKLSAgICBpZiAoaXNG
aW5pc2hlZCkgewotICAgICAgICBlbWl0IGZpbmlzaGVkKCk7CisgICAgaWYgKG1fcmVwbHktPmlz
RmluaXNoZWQoKSkgeworICAgICAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxl
cjo6ZmluaXNoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIElmIG5vdCBmaW5p
c2hlZCwgY29ubmVjdCB0byB0aGUgc2xvdHMgdGhhdCB3aWxsIGJlIHVzZWQgZnJvbSB0aGlzIHBv
aW50IG9uLgorICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywg
U0xPVChyZWFkeVJlYWQoKSkpOworICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKGZpbmlzaGVk
KCkpLCB0aGlzLCBTTE9UKGRpZFJlY2VpdmVGaW5pc2hlZCgpKSk7Cit9CisKK3ZvaWQgUU5ldHdv
cmtSZXBseVdyYXBwZXI6OnJlYWR5UmVhZCgpCit7CisgICAgbV9xdWV1ZS0+cHVzaCgmUU5ldHdv
cmtSZXBseUhhbmRsZXI6OmZvcndhcmREYXRhKTsKIH0KIAogdm9pZCBRTmV0d29ya1JlcGx5V3Jh
cHBlcjo6ZGlkUmVjZWl2ZUZpbmlzaGVkKCkKIHsKICAgICAvLyBEaXNjb25uZWN0aW5nIHdpbGwg
bWFrZSBzdXJlIHRoYXQgbm90aGluZyB3aWxsIGhhcHBlbiBhZnRlciBlbWl0dGluZyB0aGUgZmlu
aXNoZWQgc2lnbmFsLgogICAgIHJlc2V0Q29ubmVjdGlvbnMoKTsKLSAgICBlbWl0IGZpbmlzaGVk
KCk7CisgICAgbV9xdWV1ZS0+cHVzaCgmUU5ldHdvcmtSZXBseUhhbmRsZXI6OmZpbmlzaCk7CiB9
CiAKIFN0cmluZyBRTmV0d29ya1JlcGx5SGFuZGxlcjo6aHR0cE1ldGhvZCgpIGNvbnN0CkBAIC0y
NTUsOCArMzA5LDggQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRUeXBlIGxvYWQKICAgICAsIG1fcmVwbHlXcmFw
cGVyKDApCiAgICAgLCBtX3Jlc291cmNlSGFuZGxlKGhhbmRsZSkKICAgICAsIG1fbG9hZFR5cGUo
bG9hZFR5cGUpCi0gICAgLCBtX2RlZmVycmVkKGRlZmVycmVkKQogICAgICwgbV9yZWRpcmVjdGlv
blRyaWVzKGdNYXhSZWRpcmVjdGlvbnMpCisgICAgLCBtX3F1ZXVlKHRoaXMsIGRlZmVycmVkKQog
ewogICAgIHJlc2V0U3RhdGUoKTsKIApAQCAtMjgxLDU0ICszMzUsMjAgQEAgUU5ldHdvcmtSZXBs
eUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExv
YWRUeXBlIGxvYWQKIAogICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChvcmlnaW5h
dGluZ09iamVjdCk7CiAKLSAgICBpZiAoIW1fZGVmZXJyZWQpCi0gICAgICAgIHN0YXJ0KCk7Cisg
ICAgbV9xdWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogfQogCiB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0YXRlKCkKIHsKICAgICBtX3JlZGlyZWN0ZWQg
PSBmYWxzZTsKLSAgICBtX3Jlc3BvbnNlU2VudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VDb250
YWluc0RhdGEgPSBmYWxzZTsKLSAgICBtX2hhc1N0YXJ0ZWQgPSBmYWxzZTsKLSAgICBtX2NhbGxG
aW5pc2hPblJlc3VtZSA9IGZhbHNlOwotICAgIG1fY2FsbFNlbmRSZXNwb25zZUlmTmVlZGVkT25S
ZXN1bWUgPSBmYWxzZTsKLSAgICBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lID0gZmFsc2U7CiAK
ICAgICBpZiAobV9yZXBseVdyYXBwZXIpIHsKLSAgICAgICAgbV9yZXBseVdyYXBwZXItPmRlbGV0
ZUxhdGVyKCk7CisgICAgICAgIGRlbGV0ZSBtX3JlcGx5V3JhcHBlcjsKICAgICAgICAgbV9yZXBs
eVdyYXBwZXIgPSAwOwogICAgIH0KIH0KIAotdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2V0
TG9hZGluZ0RlZmVycmVkKGJvb2wgZGVmZXJyZWQpCi17Ci0gICAgbV9kZWZlcnJlZCA9IGRlZmVy
cmVkOwotCi0gICAgaWYgKCFkZWZlcnJlZCkKLSAgICAgICAgcmVzdW1lRGVmZXJyZWRMb2FkKCk7
Ci19Ci0KLXZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnJlc3VtZURlZmVycmVkTG9hZCgpCi17
Ci0gICAgaWYgKCFtX2hhc1N0YXJ0ZWQpIHsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxTZW5kUmVz
cG9uc2VJZk5lZWRlZE9uUmVzdW1lKTsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxGb3J3YXJkRGF0
YU9uUmVzdW1lKTsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxGaW5pc2hPblJlc3VtZSk7Ci0gICAg
ICAgIHN0YXJ0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9jYWxsU2Vu
ZFJlc3BvbnNlSWZOZWVkZWRPblJlc3VtZSkKLSAgICAgICAgc2VuZFJlc3BvbnNlSWZOZWVkZWQo
KTsKLQotICAgIGlmIChtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lKQotICAgICAgICBmb3J3YXJk
RGF0YSgpOwotCi0gICAgaWYgKG1fY2FsbEZpbmlzaE9uUmVzdW1lKQotICAgICAgICBmaW5pc2go
KTsKLX0KLQogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6YWJvcnQoKQogewogICAgIG1fcmVz
b3VyY2VIYW5kbGUgPSAwOwpAQCAtMzQ1LDcgKzM2NSw3IEBAIFFOZXR3b3JrUmVwbHkqIFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpyZWxlYXNlKCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBRTmV0
d29ya1JlcGx5KiByZXBseSA9IG1fcmVwbHlXcmFwcGVyLT5yZWxlYXNlKCk7Ci0gICAgbV9yZXBs
eVdyYXBwZXItPmRlbGV0ZUxhdGVyKCk7CisgICAgZGVsZXRlIG1fcmVwbHlXcmFwcGVyOwogICAg
IG1fcmVwbHlXcmFwcGVyID0gMDsKICAgICByZXR1cm4gcmVwbHk7CiB9CkBAIC0zNjUsMzEgKzM4
NSwxOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVIdHRwRXJyb3IoUU5ldHdvcmtSZXBseSog
cmVwbHksIGJvb2wgcmVjZWl2ZWREYXRhKQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpm
aW5pc2goKQogewotICAgIEFTU0VSVChtX2hhc1N0YXJ0ZWQpOwotCi0gICAgbV9jYWxsRmluaXNo
T25SZXN1bWUgPSBtX2RlZmVycmVkOwotICAgIGlmIChtX2RlZmVycmVkKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoIW1fcmVwbHlXcmFwcGVyIHx8ICFtX3JlcGx5V3JhcHBlci0+cmVwbHko
KSkKLSAgICAgICAgcmV0dXJuOwotCi0KLSAgICBzZW5kUmVzcG9uc2VJZk5lZWRlZCgpOwotCi0g
ICAgaWYgKHdhc0Fib3J0ZWQoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX3JlcGx5
V3JhcHBlciAmJiBtX3JlcGx5V3JhcHBlci0+cmVwbHkoKSAmJiAhd2FzQWJvcnRlZCgpKTsKIAog
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX3Jlc291cmNlSGFuZGxlLT5jbGll
bnQoKTsKICAgICBpZiAoIWNsaWVudCkgewotICAgICAgICBtX3JlcGx5V3JhcHBlci0+ZGVsZXRl
TGF0ZXIoKTsKKyAgICAgICAgZGVsZXRlIG1fcmVwbHlXcmFwcGVyOwogICAgICAgICBtX3JlcGx5
V3JhcHBlciA9IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobV9yZWRpcmVj
dGVkKSB7CiAgICAgICAgIHJlc2V0U3RhdGUoKTsKLSAgICAgICAgc3RhcnQoKTsKKyAgICAgICAg
bV9xdWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC00MDksMzIgKzQxNiwxOCBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpmaW5pc2goKQogICAgIH0KIAogICAgIGlmIChtX3JlcGx5V3JhcHBlcikgewotICAgICAg
ICBtX3JlcGx5V3JhcHBlci0+ZGVsZXRlTGF0ZXIoKTsKKyAgICAgICAgZGVsZXRlIG1fcmVwbHlX
cmFwcGVyOwogICAgICAgICBtX3JlcGx5V3JhcHBlciA9IDA7CiAgICAgfQogfQogCiB2b2lkIFFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiB7Ci0gICAgQVNTRVJU
KG1faGFzU3RhcnRlZCk7Ci0KLSAgICBtX2NhbGxTZW5kUmVzcG9uc2VJZk5lZWRlZE9uUmVzdW1l
ID0gbV9kZWZlcnJlZDsKLSAgICBpZiAobV9kZWZlcnJlZCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKCFtX3JlcGx5V3JhcHBlciB8fCAhbV9yZXBseVdyYXBwZXItPnJlcGx5KCkpCi0gICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZXBseVdyYXBwZXIgJiYgbV9yZXBseVdyYXBwZXIt
PnJlcGx5KCkgJiYgIXdhc0Fib3J0ZWQoKSk7CiAKICAgICBpZiAobV9yZXBseVdyYXBwZXItPnJl
cGx5KCktPmVycm9yKCkgJiYgIXNob3VsZElnbm9yZUh0dHBFcnJvcihtX3JlcGx5V3JhcHBlci0+
cmVwbHkoKSwgbV9yZXNwb25zZUNvbnRhaW5zRGF0YSkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmICh3YXNBYm9ydGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3Jlc3BvbnNl
U2VudCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcmVzcG9uc2VTZW50ID0gdHJ1ZTsKLQogICAg
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX3Jlc291cmNlSGFuZGxlLT5jbGllbnQo
KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMzLDI3ICs1MjYsMTMg
QEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6cmVkaXJlY3QoUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFFVcmwmIHJlZGkKIAogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6
Zm9yd2FyZERhdGEoKQogewotICAgIEFTU0VSVChtX2hhc1N0YXJ0ZWQpOwotCi0gICAgbV9jYWxs
Rm9yd2FyZERhdGFPblJlc3VtZSA9IG1fZGVmZXJyZWQ7Ci0gICAgaWYgKG1fZGVmZXJyZWQpCi0g
ICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZXBseVdyYXBwZXIgJiYgbV9yZXBseVdyYXBw
ZXItPnJlcGx5KCkgJiYgIXdhc0Fib3J0ZWQoKSk7CiAKLSAgICBpZiAoIW1fcmVwbHlXcmFwcGVy
IHx8ICFtX3JlcGx5V3JhcHBlci0+cmVwbHkoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VCghbV9yZWRpcmVjdGVkKTsKIAogICAgIGlmIChtX3JlcGx5V3JhcHBlci0+cmVwbHkoKS0+Ynl0
ZXNBdmFpbGFibGUoKSkKICAgICAgICAgbV9yZXNwb25zZUNvbnRhaW5zRGF0YSA9IHRydWU7CiAK
LSAgICBzZW5kUmVzcG9uc2VJZk5lZWRlZCgpOwotCi0gICAgLy8gZG9uJ3QgZW1pdCB0aGUgIkRv
Y3VtZW50IGhhcyBtb3ZlZCBoZXJlIiB0eXBlIG9mIEhUTUwKLSAgICBpZiAobV9yZWRpcmVjdGVk
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAod2FzQWJvcnRlZCgpKQotICAgICAgICByZXR1
cm47Ci0KICAgICBRQnl0ZUFycmF5IGRhdGEgPSBtX3JlcGx5V3JhcHBlci0+cmVwbHkoKS0+cmVh
ZChtX3JlcGx5V3JhcHBlci0+cmVwbHkoKS0+Ynl0ZXNBdmFpbGFibGUoKSk7CiAKICAgICBSZXNv
dXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gbV9yZXNvdXJjZUhhbmRsZS0+Y2xpZW50KCk7CkBA
IC02MzksMjQgKzYxOCwxNyBAQCBRTmV0d29ya1JlcGx5KiBRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c2VuZE5ldHdvcmtSZXF1ZXN0KCkKIAogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQo
KQogewotICAgIEFTU0VSVCghbV9oYXNTdGFydGVkKTsKLSAgICBtX2hhc1N0YXJ0ZWQgPSB0cnVl
OwotCiAgICAgUU5ldHdvcmtSZXBseSogcmVwbHkgPSBzZW5kTmV0d29ya1JlcXVlc3QoKTsKICAg
ICBpZiAoIXJlcGx5KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3JlcGx5V3JhcHBlciA9IG5l
dyBRTmV0d29ya1JlcGx5V3JhcHBlcihyZXBseSwgdGhpcyk7CisgICAgbV9yZXBseVdyYXBwZXIg
PSBuZXcgUU5ldHdvcmtSZXBseVdyYXBwZXIoJm1fcXVldWUsIHJlcGx5LCB0aGlzKTsKIAogICAg
IGlmIChtX2xvYWRUeXBlID09IFN5bmNocm9ub3VzTG9hZCAmJiBtX3JlcGx5V3JhcHBlci0+cmVw
bHkoKS0+aXNGaW5pc2hlZCgpKSB7CiAgICAgICAgIC8vIElmIHN1cHBvcnRlZCwgYSBzeW5jaHJv
bm91cyByZXF1ZXN0IHdpbGwgYmUgZmluaXNoZWQgYXQgdGhpcyBwb2ludCwgbm8gbmVlZCB0byBo
b29rIHVwIHRoZSBzaWduYWxzLgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29ubmVj
dChtX3JlcGx5V3JhcHBlciwgU0lHTkFMKGZpbmlzaGVkKCkpLCB0aGlzLCBTTE9UKGZpbmlzaCgp
KSk7Ci0gICAgY29ubmVjdChtX3JlcGx5V3JhcHBlciwgU0lHTkFMKG1ldGFEYXRhQ2hhbmdlZCgp
KSwgdGhpcywgU0xPVChzZW5kUmVzcG9uc2VJZk5lZWRlZCgpKSk7Ci0gICAgY29ubmVjdChtX3Jl
cGx5V3JhcHBlciwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywgU0xPVChmb3J3YXJkRGF0YSgp
KSk7Ci0KICAgICBpZiAobV9yZXNvdXJjZUhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVwb3J0VXBs
b2FkUHJvZ3Jlc3MoKSkKICAgICAgICAgY29ubmVjdChtX3JlcGx5V3JhcHBlci0+cmVwbHkoKSwg
U0lHTkFMKHVwbG9hZFByb2dyZXNzKHFpbnQ2NCwgcWludDY0KSksIHRoaXMsIFNMT1QodXBsb2Fk
UHJvZ3Jlc3MocWludDY0LCBxaW50NjQpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgKaW5kZXggNjE2
OTRkNi4uZDNmZDIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaApAQCAtMzUsMjkgKzM1LDQ2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOworY2xhc3MgUU5ldHdvcmtSZXBseUhhbmRsZXI7CisKK2NsYXNzIFFOZXR3b3Jr
UmVwbHlIYW5kbGVyQ2FsbFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBRTmV0d29ya1JlcGx5SGFuZGxl
ckNhbGxRdWV1ZShRTmV0d29ya1JlcGx5SGFuZGxlciogaGFuZGxlciwgYm9vbCBkZWZlclNpZ25h
bHMpOworICAgIGJvb2wgZGVmZXJTaWduYWxzKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlclNpZ25h
bHM7IH0KKyAgICB2b2lkIHNldERlZmVyU2lnbmFscyhib29sKTsKKworICAgIHR5cGVkZWYgdm9p
ZCAoUU5ldHdvcmtSZXBseUhhbmRsZXI6OipFbnF1ZXVlZENhbGwpKCk7CisgICAgdm9pZCBwdXNo
KEVucXVldWVkQ2FsbCBtZXRob2QpOworICAgIHZvaWQgY2xlYXIoKSB7IG1fZW5xdWV1ZWRDYWxs
cy5jbGVhcigpOyB9CisKKyAgICB2b2lkIGxvY2soKTsKKyAgICB2b2lkIHVubG9jaygpOworcHJp
dmF0ZToKKyAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9yZXBseUhhbmRsZXI7CisgICAgaW50
IG1fbG9ja3M7CisgICAgYm9vbCBtX2RlZmVyU2lnbmFsczsKKyAgICBRTGlzdDxFbnF1ZXVlZENh
bGw+IG1fZW5xdWV1ZWRDYWxsczsKK307CiAKIGNsYXNzIFFOZXR3b3JrUmVwbHlXcmFwcGVyIDog
cHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgUU5ldHdvcmtSZXBs
eVdyYXBwZXIoUU5ldHdvcmtSZXBseSosIFFPYmplY3QqIHBhcmVudCA9IDApOworICAgIFFOZXR3
b3JrUmVwbHlXcmFwcGVyKFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlKiBxdWV1ZSwgUU5l
dHdvcmtSZXBseSosIFFPYmplY3QqIHBhcmVudCA9IDApOwogICAgIH5RTmV0d29ya1JlcGx5V3Jh
cHBlcigpOwogCiAgICAgUU5ldHdvcmtSZXBseSogcmVwbHkoKSBjb25zdCB7IHJldHVybiBtX3Jl
cGx5OyB9CiAgICAgUU5ldHdvcmtSZXBseSogcmVsZWFzZSgpOwogCisgICAgdm9pZCBzeW5jaHJv
bm91c0xvYWQoKSB7IHJlY2VpdmVNZXRhRGF0YSgpOyB9CisKICAgICBRVXJsIHJlZGlyZWN0aW9u
VGFyZ2V0VXJsKCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdGlvblRhcmdldFVybDsgfQogICAg
IFFTdHJpbmcgZW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX2VuY29kaW5nOyB9CiAgICAgUVN0
cmluZyBhZHZlcnRpc2VkTWltZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2FkdmVydGlzZWRNaW1l
VHlwZTsgfQogCi1RX1NJR05BTFM6Ci0gICAgdm9pZCBmaW5pc2hlZCgpOwotICAgIHZvaWQgbWV0
YURhdGFDaGFuZ2VkKCk7Ci0gICAgdm9pZCByZWFkeVJlYWQoKTsKLSAgICB2b2lkIHVwbG9hZFBy
b2dyZXNzKHFpbnQ2NCBieXRlc1NlbnQsIHFpbnQ2NCBieXRlc1RvdGFsKTsKLQogcHJpdmF0ZSBR
X1NMT1RTOgogICAgIHZvaWQgcmVjZWl2ZU1ldGFEYXRhKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZl
RmluaXNoZWQoKTsKKyAgICB2b2lkIHJlYWR5UmVhZCgpOwogCiBwcml2YXRlOgogICAgIHZvaWQg
cmVzZXRDb25uZWN0aW9ucygpOwpAQCAtNjcsNiArODQsOCBAQCBwcml2YXRlOgogCiAgICAgUVN0
cmluZyBtX2VuY29kaW5nOwogICAgIFFTdHJpbmcgbV9hZHZlcnRpc2VkTWltZVR5cGU7CisKKyAg
ICBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZSogbV9xdWV1ZTsKIH07CiAKIGNsYXNzIFFO
ZXR3b3JrUmVwbHlIYW5kbGVyIDogcHVibGljIFFPYmplY3QKQEAgLTc5LDcgKzk4LDcgQEAgcHVi
bGljOgogICAgIH07CiAKICAgICBRTmV0d29ya1JlcGx5SGFuZGxlcihSZXNvdXJjZUhhbmRsZSos
IExvYWRUeXBlLCBib29sIGRlZmVycmVkID0gZmFsc2UpOwotICAgIHZvaWQgc2V0TG9hZGluZ0Rl
ZmVycmVkKGJvb2wpOworICAgIHZvaWQgc2V0TG9hZGluZ0RlZmVycmVkKGJvb2wgZGVmZXJyZWQp
IHsgbV9xdWV1ZS5zZXREZWZlclNpZ25hbHMoZGVmZXJyZWQpOyB9CiAKICAgICBRTmV0d29ya1Jl
cGx5KiByZXBseSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwbHlXcmFwcGVyID8gbV9yZXBseVdyYXBw
ZXItPnJlcGx5KCkgOiAwOyB9CiAKQEAgLTk3LDcgKzExNiw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdGFydCgpOwogICAgIHZvaWQgcmVzZXRTdGF0ZSgpOwogICAgIFN0cmluZyBodHRwTWV0aG9k
KCkgY29uc3Q7Ci0gICAgdm9pZCByZXN1bWVEZWZlcnJlZExvYWQoKTsKICAgICB2b2lkIHJlZGly
ZWN0KFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBRVXJsJik7CiAgICAgYm9vbCB3YXNBYm9ydGVk
KCkgY29uc3QgeyByZXR1cm4gIW1fcmVzb3VyY2VIYW5kbGU7IH0KICAgICBRTmV0d29ya1JlcGx5
KiBzZW5kTmV0d29ya1JlcXVlc3QoKTsKQEAgLTEwNSwyMCArMTIzLDE1IEBAIHByaXZhdGU6CiAg
ICAgUU5ldHdvcmtSZXBseVdyYXBwZXIqIG1fcmVwbHlXcmFwcGVyOwogICAgIFJlc291cmNlSGFu
ZGxlKiBtX3Jlc291cmNlSGFuZGxlOwogICAgIGJvb2wgbV9yZWRpcmVjdGVkOwotICAgIGJvb2wg
bV9yZXNwb25zZVNlbnQ7CiAgICAgYm9vbCBtX3Jlc3BvbnNlQ29udGFpbnNEYXRhOwogICAgIExv
YWRUeXBlIG1fbG9hZFR5cGU7CiAgICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpPcGVyYXRpb24g
bV9tZXRob2Q7CiAgICAgUU5ldHdvcmtSZXF1ZXN0IG1fcmVxdWVzdDsKIAotICAgIGJvb2wgbV9k
ZWZlcnJlZDsKLQogICAgIC8vIGRlZmVyIHN0YXRlIGhvbGRpbmcKLSAgICBib29sIG1faGFzU3Rh
cnRlZDsKLSAgICBib29sIG1fY2FsbEZpbmlzaE9uUmVzdW1lOwotICAgIGJvb2wgbV9jYWxsU2Vu
ZFJlc3BvbnNlSWZOZWVkZWRPblJlc3VtZTsKLSAgICBib29sIG1fY2FsbEZvcndhcmREYXRhT25S
ZXN1bWU7CiAgICAgaW50IG1fcmVkaXJlY3Rpb25UcmllczsKKworICAgIFFOZXR3b3JrUmVwbHlI
YW5kbGVyQ2FsbFF1ZXVlIG1fcXVldWU7CiB9OwogCiAvLyBTZWxmIGRlc3RydWN0aW5nIFFJT0Rl
dmljZSBmb3IgRm9ybURhdGEKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89234</attachid>
            <date>2011-04-12 11:46:18 -0700</date>
            <delta_ts>2011-04-12 17:26:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Qt-QNetworkReplyHandler-refactoring-signal-queue.patch</filename>
            <type>text/plain</type>
            <size>18198</size>
            <attacher name="Luiz Agostini">luiz</attacher>
            
              <data encoding="base64">RnJvbSAzYzVjM2RlYmVkMmE2Zjk1YWY1NzM2NTQwNWIyY2NlMmI1NDU5NGEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWl6IEFnb3N0aW5pIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3Nz
YS5vcmc+CkRhdGU6IFR1ZSwgMTIgQXByIDIwMTEgMTU6MTg6MDYgLTAzMDAKU3ViamVjdDogW1BB
VENIXSBbUXRdIFFOZXR3b3JrUmVwbHlIYW5kbGVyIHJlZmFjdG9yaW5nOiBzaWduYWwgcXVldWUK
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzA3NQoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpUaGUgaWRlYSBpcyB0byBtYWtlIGFsbCBzaWduYWxzIHRoYXQg
Y29tZSBmcm9tIHRoZSBRTmV0d29ya1JlcGx5IHRvIHBhc3MgdGhyb3VnaCBhIHF1ZXVlIGFuZCB0
bwpzdG9wIHRoYXQgcXVldWUgd2hlbiBsb2FkaW5nIGlzIGRlZmVycmVkLiBUaGlzIHdheSBhbG1v
c3QgYWxsIHRoZSBkZWZlcnJlZCBsb2dpYyBjYW4gYmUgcmVtb3ZlZApmcm9tIFFOZXR3b3JrUmVw
bHlIYW5kbGVyIGNsYXNzIGFuZCBlbmNhcHN1bGF0ZWQgaW4gaXRzIG93biBjbGFzcy4KClRvIHN0
b3AgdGhlIHF1ZXVlIGR1cmluZyB3cmFwcGVyIG1ldGhvZHMgZXhlY3V0aW9uIGF2b2lkcyBzdGFj
a2luZyBoYW5kbGVyIG1ldGhvZHMgb3ZlciB3cmFwcGVyCm1ldGhvZHMuIEJlY2F1c2Ugb2YgdGhp
cyB0aGVyZSBpcyBubyBjaGFuY2UgZm9yIHRoZSB3cmFwcGVyIHRvIGJlIGRlc3Ryb3llZCBpbnNp
ZGUgb25lIG9mIGl0cyBtZXRob2RzLgpUaGlzIHRvZ2V0aGVyIHdpdGggZW1wdGluZyB0aGUgcXVl
dWUgYXQgd3JhcHBlciBkZXN0cnVjdGlvbiB0aW1lIG1ha2VzIHN1cmUgdGhhdCB0aGUgaGFuZGxl
ciB3aWxsCm5vdCByZWNlaXZlIGNhbGxzIGZyb20gYSBkZWFkIHdyYXBwZXIuCgpUaGUgbmV3IGNs
YXNzIGlzIG5hbWVkIFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlLgoKKiBwbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyQ2FsbFF1ZXVlOjpRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZSk6CihXZWJD
b3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6cHVzaCk6CihXZWJDb3JlOjpRTmV0
d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6bG9jayk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlckNhbGxRdWV1ZTo6dW5sb2NrKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
Q2FsbFF1ZXVlOjpzZXREZWZlclNpZ25hbHMpOgooV2ViQ29yZTo6UXVldWVMb2NrZXI6OlF1ZXVl
TG9ja2VyKToKKFdlYkNvcmU6OlF1ZXVlTG9ja2VyOjp+UXVldWVMb2NrZXIpOgooV2ViQ29yZTo6
UU5ldHdvcmtSZXBseVdyYXBwZXI6OlFOZXR3b3JrUmVwbHlXcmFwcGVyKToKKFdlYkNvcmU6OlFO
ZXR3b3JrUmVwbHlXcmFwcGVyOjp+UU5ldHdvcmtSZXBseVdyYXBwZXIpOgooV2ViQ29yZTo6UU5l
dHdvcmtSZXBseVdyYXBwZXI6OnJlY2VpdmVNZXRhRGF0YSk6CihXZWJDb3JlOjpRTmV0d29ya1Jl
cGx5V3JhcHBlcjo6cmVhZHlSZWFkKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlXcmFwcGVyOjpk
aWRSZWNlaXZlRmluaXNoZWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0
YXRlKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWxlYXNlKToKKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmaW5pc2gpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpmb3J3YXJkRGF0YSk6CihXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQp
OgoqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaDoKKFdlYkNvcmU6
OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlOjpkZWZlclNpZ25hbHMpOgooV2ViQ29yZTo6
UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWU6OmNsZWFyKToKKFdlYkNvcmU6OlFOZXR3b3Jr
UmVwbHlXcmFwcGVyOjpzeW5jaHJvbm91c0xvYWQpOgooV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OnNldExvYWRpbmdEZWZlcnJlZCk6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQ0ICsrKysrCiAuLi4vcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgICB8ICAxOTYgKysrKysrKysrLS0tLS0t
LS0tLS0KIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggICAg
IHwgICA0NSArKystLQogMyBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMTI4IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MTBkNmNmLi45ZTk1MzA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTEtMDQtMTIgIEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5p
QG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1F0XSBRTmV0d29ya1JlcGx5SGFuZGxlciByZWZhY3RvcmluZzogc2lnbmFsIHF1
ZXVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzA3
NQorCisgICAgICAgIFRoZSBpZGVhIGlzIHRvIG1ha2UgYWxsIHNpZ25hbHMgdGhhdCBjb21lIGZy
b20gdGhlIFFOZXR3b3JrUmVwbHkgdG8gcGFzcyB0aHJvdWdoIGEgcXVldWUgYW5kIHRvCisgICAg
ICAgIHN0b3AgdGhhdCBxdWV1ZSB3aGVuIGxvYWRpbmcgaXMgZGVmZXJyZWQuIFRoaXMgd2F5IGFs
bW9zdCBhbGwgdGhlIGRlZmVycmVkIGxvZ2ljIGNhbiBiZSByZW1vdmVkCisgICAgICAgIGZyb20g
UU5ldHdvcmtSZXBseUhhbmRsZXIgY2xhc3MgYW5kIGVuY2Fwc3VsYXRlZCBpbiBpdHMgb3duIGNs
YXNzLgorCisgICAgICAgIFRvIHN0b3AgdGhlIHF1ZXVlIGR1cmluZyB3cmFwcGVyIG1ldGhvZHMg
ZXhlY3V0aW9uIGF2b2lkcyBzdGFja2luZyBoYW5kbGVyIG1ldGhvZHMgb3ZlciB3cmFwcGVyCisg
ICAgICAgIG1ldGhvZHMuIEJlY2F1c2Ugb2YgdGhpcyB0aGVyZSBpcyBubyBjaGFuY2UgZm9yIHRo
ZSB3cmFwcGVyIHRvIGJlIGRlc3Ryb3llZCBpbnNpZGUgb25lIG9mIGl0cyBtZXRob2RzLgorICAg
ICAgICBUaGlzIHRvZ2V0aGVyIHdpdGggZW1wdGluZyB0aGUgcXVldWUgYXQgd3JhcHBlciBkZXN0
cnVjdGlvbiB0aW1lIG1ha2VzIHN1cmUgdGhhdCB0aGUgaGFuZGxlciB3aWxsCisgICAgICAgIG5v
dCByZWNlaXZlIGNhbGxzIGZyb20gYSBkZWFkIHdyYXBwZXIuCisKKyAgICAgICAgVGhlIG5ldyBj
bGFzcyBpcyBuYW1lZCBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZS4KKworICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyQ2FsbFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2Fs
bFF1ZXVlOjpwdXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2Fs
bFF1ZXVlOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5kbGVyQ2Fs
bFF1ZXVlOjp1bmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJD
YWxsUXVldWU6OnNldERlZmVyU2lnbmFscyk6CisgICAgICAgIChXZWJDb3JlOjpRdWV1ZUxvY2tl
cjo6UXVldWVMb2NrZXIpOgorICAgICAgICAoV2ViQ29yZTo6UXVldWVMb2NrZXI6On5RdWV1ZUxv
Y2tlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5V3JhcHBlcjo6UU5ldHdvcmtS
ZXBseVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBwZXI6On5R
TmV0d29ya1JlcGx5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5V3Jh
cHBlcjo6cmVjZWl2ZU1ldGFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlX
cmFwcGVyOjpyZWFkeVJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBw
ZXI6OmRpZFJlY2VpdmVGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5
SGFuZGxlcjo6UU5ldHdvcmtSZXBseUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdv
cmtSZXBseUhhbmRsZXI6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtS
ZXBseUhhbmRsZXI6OnJlbGVhc2UpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OmZpbmlzaCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c2VuZFJlc3BvbnNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhh
bmRsZXI6OmZvcndhcmREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVl
dWU6OmRlZmVyU2lnbmFscyk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFuZGxl
ckNhbGxRdWV1ZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseVdyYXBw
ZXI6OnN5bmNocm9ub3VzTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6c2V0TG9hZGluZ0RlZmVycmVkKToKKwogMjAxMS0wNC0xMSAgQWJoaXNoZWsgQXJ5YSAg
PGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDZlNjMxNDUuLjgxMjhlNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuY3BwCkBAIC0xNDksOSArMTQ5LDYxIEBAIGJvb2wgRm9ybURhdGFJT0RldmljZTo6
aXNTZXF1ZW50aWFsKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUU5ldHdvcmtSZXBs
eVdyYXBwZXI6OlFOZXR3b3JrUmVwbHlXcmFwcGVyKFFOZXR3b3JrUmVwbHkqIHJlcGx5LCBRT2Jq
ZWN0KiBwYXJlbnQpCitRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXJDYWxsUXVldWUoUU5ldHdvcmtSZXBseUhhbmRsZXIqIGhhbmRsZXIsIGJvb2wgZGVm
ZXJTaWduYWxzKQorICAgIDogbV9yZXBseUhhbmRsZXIoaGFuZGxlcikKKyAgICAsIG1fbG9ja3Mo
MCkKKyAgICAsIG1fZGVmZXJTaWduYWxzKGRlZmVyU2lnbmFscykKK3sKKyAgICBRX0FTU0VSVCho
YW5kbGVyKTsKK30KKwordm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6cHVzaChF
bnF1ZXVlZENhbGwgbWV0aG9kKQoreworICAgIGlmIChtX2RlZmVyU2lnbmFscyB8fCBtX2xvY2tz
KSB7CisgICAgICAgIG1fZW5xdWV1ZWRDYWxscy5hcHBlbmQobWV0aG9kKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIChtX3JlcGx5SGFuZGxlci0+Km1ldGhvZCkoKTsKK30KKwordm9p
ZCBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZTo6bG9jaygpCit7CisgICAgKyttX2xvY2tz
OworfQorCit2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlOjp1bmxvY2soKQorewor
ICAgIGlmICghbV9sb2NrcykKKyAgICAgICAgcmV0dXJuOworCisgICAgLS1tX2xvY2tzOworICAg
IHNldERlZmVyU2lnbmFscyhtX2RlZmVyU2lnbmFscyk7Cit9CisKK3ZvaWQgUU5ldHdvcmtSZXBs
eUhhbmRsZXJDYWxsUXVldWU6OnNldERlZmVyU2lnbmFscyhib29sIGRlZmVyKQoreworICAgIG1f
ZGVmZXJTaWduYWxzID0gZGVmZXI7CisKKyAgICBpZiAobV9kZWZlclNpZ25hbHMgfHwgbV9sb2Nr
cykKKyAgICAgICAgcmV0dXJuOworCisgICAgd2hpbGUgKCFtX2VucXVldWVkQ2FsbHMuaXNFbXB0
eSgpKQorICAgICAgICAobV9yZXBseUhhbmRsZXItPioobV9lbnF1ZXVlZENhbGxzLnRha2VGaXJz
dCgpKSkoKTsKK30KKworY2xhc3MgUXVldWVMb2NrZXIgeworcHVibGljOgorICAgIFF1ZXVlTG9j
a2VyKFFOZXR3b3JrUmVwbHlIYW5kbGVyQ2FsbFF1ZXVlKiBxdWV1ZSkgOiBtX3F1ZXVlKHF1ZXVl
KSB7IG1fcXVldWUtPmxvY2soKTsgfQorICAgIH5RdWV1ZUxvY2tlcigpIHsgbV9xdWV1ZS0+dW5s
b2NrKCk7IH0KK3ByaXZhdGU6CisgICAgUU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWUqIG1f
cXVldWU7Cit9OworCitRTmV0d29ya1JlcGx5V3JhcHBlcjo6UU5ldHdvcmtSZXBseVdyYXBwZXIo
UU5ldHdvcmtSZXBseUhhbmRsZXJDYWxsUXVldWUqIHF1ZXVlLCBRTmV0d29ya1JlcGx5KiByZXBs
eSwgUU9iamVjdCogcGFyZW50KQogICAgIDogUU9iamVjdChwYXJlbnQpCiAgICAgLCBtX3JlcGx5
KHJlcGx5KQorICAgICwgbV9xdWV1ZShxdWV1ZSkKIHsKICAgICBRX0FTU0VSVChtX3JlcGx5KTsK
IApAQCAtMTY0LDYgKzIxNiw3IEBAIFFOZXR3b3JrUmVwbHlXcmFwcGVyOjp+UU5ldHdvcmtSZXBs
eVdyYXBwZXIoKQogewogICAgIGlmIChtX3JlcGx5KQogICAgICAgICBtX3JlcGx5LT5kZWxldGVM
YXRlcigpOworICAgIG1fcXVldWUtPmNsZWFyKCk7CiB9CiAKIFFOZXR3b3JrUmVwbHkqIFFOZXR3
b3JrUmVwbHlXcmFwcGVyOjpyZWxlYXNlKCkKQEAgLTE5MCwxMCArMjQzLDEyIEBAIHZvaWQgUU5l
dHdvcmtSZXBseVdyYXBwZXI6OnJlY2VpdmVNZXRhRGF0YSgpCiAgICAgLy8gVGhpcyBzbG90IGlz
IG9ubHkgdXNlZCB0byByZWNlaXZlIHRoZSBmaXJzdCBzaWduYWwgZnJvbSB0aGUgUU5ldHdvcmtS
ZXBseSBvYmplY3QuCiAgICAgcmVzZXRDb25uZWN0aW9ucygpOwogCisgICAgUXVldWVMb2NrZXIg
bG9jayhtX3F1ZXVlKTsKKwogICAgIG1fcmVkaXJlY3Rpb25UYXJnZXRVcmwgPSBtX3JlcGx5LT5h
dHRyaWJ1dGUoUU5ldHdvcmtSZXF1ZXN0OjpSZWRpcmVjdGlvblRhcmdldEF0dHJpYnV0ZSkudG9V
cmwoKTsKICAgICBpZiAobV9yZWRpcmVjdGlvblRhcmdldFVybC5pc1ZhbGlkKCkpIHsKLSAgICAg
ICAgZW1pdCBtZXRhRGF0YUNoYW5nZWQoKTsKLSAgICAgICAgZW1pdCBmaW5pc2hlZCgpOworICAg
ICAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3BvbnNlSWZO
ZWVkZWQpOworICAgICAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6Zmlu
aXNoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjAxLDMyICsyNTYsMzEgQEAgdm9p
ZCBRTmV0d29ya1JlcGx5V3JhcHBlcjo6cmVjZWl2ZU1ldGFEYXRhKCkKICAgICBtX2VuY29kaW5n
ID0gZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKTsKICAgICBtX2FkdmVy
dGlzZWRNaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUp
OwogCi0gICAgYm9vbCBoYXNEYXRhID0gbV9yZXBseS0+Ynl0ZXNBdmFpbGFibGUoKTsKLSAgICBi
b29sIGlzRmluaXNoZWQgPSBtX3JlcGx5LT5pc0ZpbmlzaGVkKCk7Ci0KLSAgICBpZiAoIWlzRmlu
aXNoZWQpIHsKLSAgICAgICAgLy8gSWYgbm90IGZpbmlzaGVkLCBjb25uZWN0IHRvIHRoZSBzbG90
cyB0aGF0IHdpbGwgYmUgdXNlZCBmcm9tIHRoaXMgcG9pbnQgb24uCi0gICAgICAgIGNvbm5lY3Qo
bV9yZXBseSwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywgU0lHTkFMKHJlYWR5UmVhZCgpKSk7
Ci0gICAgICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKGZpbmlzaGVkKCkpLCB0aGlzLCBTTE9U
KGRpZFJlY2VpdmVGaW5pc2hlZCgpKSk7Ci0gICAgfQotCi0gICAgZW1pdCBtZXRhRGF0YUNoYW5n
ZWQoKTsKKyAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2VuZFJlc3Bv
bnNlSWZOZWVkZWQpOwogCi0gICAgaWYgKGhhc0RhdGEpCi0gICAgICAgIGVtaXQgcmVhZHlSZWFk
KCk7CisgICAgaWYgKG1fcmVwbHktPmJ5dGVzQXZhaWxhYmxlKCkpCisgICAgICAgIG1fcXVldWUt
PnB1c2goJlFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmb3J3YXJkRGF0YSk7CiAKLSAgICBpZiAoaXNG
aW5pc2hlZCkgewotICAgICAgICBlbWl0IGZpbmlzaGVkKCk7CisgICAgaWYgKG1fcmVwbHktPmlz
RmluaXNoZWQoKSkgeworICAgICAgICBtX3F1ZXVlLT5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxl
cjo6ZmluaXNoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIElmIG5vdCBmaW5p
c2hlZCwgY29ubmVjdCB0byB0aGUgc2xvdHMgdGhhdCB3aWxsIGJlIHVzZWQgZnJvbSB0aGlzIHBv
aW50IG9uLgorICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywg
U0xPVChyZWFkeVJlYWQoKSkpOworICAgIGNvbm5lY3QobV9yZXBseSwgU0lHTkFMKGZpbmlzaGVk
KCkpLCB0aGlzLCBTTE9UKGRpZFJlY2VpdmVGaW5pc2hlZCgpKSk7Cit9CisKK3ZvaWQgUU5ldHdv
cmtSZXBseVdyYXBwZXI6OnJlYWR5UmVhZCgpCit7CisgICAgbV9xdWV1ZS0+cHVzaCgmUU5ldHdv
cmtSZXBseUhhbmRsZXI6OmZvcndhcmREYXRhKTsKIH0KIAogdm9pZCBRTmV0d29ya1JlcGx5V3Jh
cHBlcjo6ZGlkUmVjZWl2ZUZpbmlzaGVkKCkKIHsKICAgICAvLyBEaXNjb25uZWN0aW5nIHdpbGwg
bWFrZSBzdXJlIHRoYXQgbm90aGluZyB3aWxsIGhhcHBlbiBhZnRlciBlbWl0dGluZyB0aGUgZmlu
aXNoZWQgc2lnbmFsLgogICAgIHJlc2V0Q29ubmVjdGlvbnMoKTsKLSAgICBlbWl0IGZpbmlzaGVk
KCk7CisgICAgbV9xdWV1ZS0+cHVzaCgmUU5ldHdvcmtSZXBseUhhbmRsZXI6OmZpbmlzaCk7CiB9
CiAKIFN0cmluZyBRTmV0d29ya1JlcGx5SGFuZGxlcjo6aHR0cE1ldGhvZCgpIGNvbnN0CkBAIC0y
NTUsOCArMzA5LDggQEAgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVy
KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExvYWRUeXBlIGxvYWQKICAgICAsIG1fcmVwbHlXcmFw
cGVyKDApCiAgICAgLCBtX3Jlc291cmNlSGFuZGxlKGhhbmRsZSkKICAgICAsIG1fbG9hZFR5cGUo
bG9hZFR5cGUpCi0gICAgLCBtX2RlZmVycmVkKGRlZmVycmVkKQogICAgICwgbV9yZWRpcmVjdGlv
blRyaWVzKGdNYXhSZWRpcmVjdGlvbnMpCisgICAgLCBtX3F1ZXVlKHRoaXMsIGRlZmVycmVkKQog
ewogICAgIHJlc2V0U3RhdGUoKTsKIApAQCAtMjgxLDU0ICszMzUsMjAgQEAgUU5ldHdvcmtSZXBs
eUhhbmRsZXI6OlFOZXR3b3JrUmVwbHlIYW5kbGVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIExv
YWRUeXBlIGxvYWQKIAogICAgIG1fcmVxdWVzdCA9IHIudG9OZXR3b3JrUmVxdWVzdChvcmlnaW5h
dGluZ09iamVjdCk7CiAKLSAgICBpZiAoIW1fZGVmZXJyZWQpCi0gICAgICAgIHN0YXJ0KCk7Cisg
ICAgbV9xdWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogfQogCiB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZXNldFN0YXRlKCkKIHsKICAgICBtX3JlZGlyZWN0ZWQg
PSBmYWxzZTsKLSAgICBtX3Jlc3BvbnNlU2VudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VDb250
YWluc0RhdGEgPSBmYWxzZTsKLSAgICBtX2hhc1N0YXJ0ZWQgPSBmYWxzZTsKLSAgICBtX2NhbGxG
aW5pc2hPblJlc3VtZSA9IGZhbHNlOwotICAgIG1fY2FsbFNlbmRSZXNwb25zZUlmTmVlZGVkT25S
ZXN1bWUgPSBmYWxzZTsKLSAgICBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lID0gZmFsc2U7CiAK
ICAgICBpZiAobV9yZXBseVdyYXBwZXIpIHsKLSAgICAgICAgbV9yZXBseVdyYXBwZXItPmRlbGV0
ZUxhdGVyKCk7CisgICAgICAgIGRlbGV0ZSBtX3JlcGx5V3JhcHBlcjsKICAgICAgICAgbV9yZXBs
eVdyYXBwZXIgPSAwOwogICAgIH0KIH0KIAotdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c2V0
TG9hZGluZ0RlZmVycmVkKGJvb2wgZGVmZXJyZWQpCi17Ci0gICAgbV9kZWZlcnJlZCA9IGRlZmVy
cmVkOwotCi0gICAgaWYgKCFkZWZlcnJlZCkKLSAgICAgICAgcmVzdW1lRGVmZXJyZWRMb2FkKCk7
Ci19Ci0KLXZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnJlc3VtZURlZmVycmVkTG9hZCgpCi17
Ci0gICAgaWYgKCFtX2hhc1N0YXJ0ZWQpIHsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxTZW5kUmVz
cG9uc2VJZk5lZWRlZE9uUmVzdW1lKTsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxGb3J3YXJkRGF0
YU9uUmVzdW1lKTsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxGaW5pc2hPblJlc3VtZSk7Ci0gICAg
ICAgIHN0YXJ0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9jYWxsU2Vu
ZFJlc3BvbnNlSWZOZWVkZWRPblJlc3VtZSkKLSAgICAgICAgc2VuZFJlc3BvbnNlSWZOZWVkZWQo
KTsKLQotICAgIGlmIChtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lKQotICAgICAgICBmb3J3YXJk
RGF0YSgpOwotCi0gICAgaWYgKG1fY2FsbEZpbmlzaE9uUmVzdW1lKQotICAgICAgICBmaW5pc2go
KTsKLX0KLQogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6YWJvcnQoKQogewogICAgIG1fcmVz
b3VyY2VIYW5kbGUgPSAwOwpAQCAtMzQ1LDcgKzM2NSw3IEBAIFFOZXR3b3JrUmVwbHkqIFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpyZWxlYXNlKCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBRTmV0
d29ya1JlcGx5KiByZXBseSA9IG1fcmVwbHlXcmFwcGVyLT5yZWxlYXNlKCk7Ci0gICAgbV9yZXBs
eVdyYXBwZXItPmRlbGV0ZUxhdGVyKCk7CisgICAgZGVsZXRlIG1fcmVwbHlXcmFwcGVyOwogICAg
IG1fcmVwbHlXcmFwcGVyID0gMDsKICAgICByZXR1cm4gcmVwbHk7CiB9CkBAIC0zNjUsMzEgKzM4
NSwxOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVIdHRwRXJyb3IoUU5ldHdvcmtSZXBseSog
cmVwbHksIGJvb2wgcmVjZWl2ZWREYXRhKQogCiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpm
aW5pc2goKQogewotICAgIEFTU0VSVChtX2hhc1N0YXJ0ZWQpOwotCi0gICAgbV9jYWxsRmluaXNo
T25SZXN1bWUgPSBtX2RlZmVycmVkOwotICAgIGlmIChtX2RlZmVycmVkKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoIW1fcmVwbHlXcmFwcGVyIHx8ICFtX3JlcGx5V3JhcHBlci0+cmVwbHko
KSkKLSAgICAgICAgcmV0dXJuOwotCi0KLSAgICBzZW5kUmVzcG9uc2VJZk5lZWRlZCgpOwotCi0g
ICAgaWYgKHdhc0Fib3J0ZWQoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX3JlcGx5
V3JhcHBlciAmJiBtX3JlcGx5V3JhcHBlci0+cmVwbHkoKSAmJiAhd2FzQWJvcnRlZCgpKTsKIAog
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX3Jlc291cmNlSGFuZGxlLT5jbGll
bnQoKTsKICAgICBpZiAoIWNsaWVudCkgewotICAgICAgICBtX3JlcGx5V3JhcHBlci0+ZGVsZXRl
TGF0ZXIoKTsKKyAgICAgICAgZGVsZXRlIG1fcmVwbHlXcmFwcGVyOwogICAgICAgICBtX3JlcGx5
V3JhcHBlciA9IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobV9yZWRpcmVj
dGVkKSB7CiAgICAgICAgIHJlc2V0U3RhdGUoKTsKLSAgICAgICAgc3RhcnQoKTsKKyAgICAgICAg
bV9xdWV1ZS5wdXNoKCZRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC00MDksMzIgKzQxNiwxOCBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpmaW5pc2goKQogICAgIH0KIAogICAgIGlmIChtX3JlcGx5V3JhcHBlcikgewotICAgICAg
ICBtX3JlcGx5V3JhcHBlci0+ZGVsZXRlTGF0ZXIoKTsKKyAgICAgICAgZGVsZXRlIG1fcmVwbHlX
cmFwcGVyOwogICAgICAgICBtX3JlcGx5V3JhcHBlciA9IDA7CiAgICAgfQogfQogCiB2b2lkIFFO
ZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiB7Ci0gICAgQVNTRVJU
KG1faGFzU3RhcnRlZCk7Ci0KLSAgICBtX2NhbGxTZW5kUmVzcG9uc2VJZk5lZWRlZE9uUmVzdW1l
ID0gbV9kZWZlcnJlZDsKLSAgICBpZiAobV9kZWZlcnJlZCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKCFtX3JlcGx5V3JhcHBlciB8fCAhbV9yZXBseVdyYXBwZXItPnJlcGx5KCkpCi0gICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZXBseVdyYXBwZXIgJiYgbV9yZXBseVdyYXBwZXIt
PnJlcGx5KCkgJiYgIXdhc0Fib3J0ZWQoKSk7CiAKICAgICBpZiAobV9yZXBseVdyYXBwZXItPnJl
cGx5KCktPmVycm9yKCkgJiYgIXNob3VsZElnbm9yZUh0dHBFcnJvcihtX3JlcGx5V3JhcHBlci0+
cmVwbHkoKSwgbV9yZXNwb25zZUNvbnRhaW5zRGF0YSkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmICh3YXNBYm9ydGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3Jlc3BvbnNl
U2VudCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fcmVzcG9uc2VTZW50ID0gdHJ1ZTsKLQogICAg
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBtX3Jlc291cmNlSGFuZGxlLT5jbGllbnQo
KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMzLDI3ICs1MjYsMTMg
QEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6cmVkaXJlY3QoUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFFVcmwmIHJlZGkKIAogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6
Zm9yd2FyZERhdGEoKQogewotICAgIEFTU0VSVChtX2hhc1N0YXJ0ZWQpOwotCi0gICAgbV9jYWxs
Rm9yd2FyZERhdGFPblJlc3VtZSA9IG1fZGVmZXJyZWQ7Ci0gICAgaWYgKG1fZGVmZXJyZWQpCi0g
ICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9yZXBseVdyYXBwZXIgJiYgbV9yZXBseVdyYXBw
ZXItPnJlcGx5KCkgJiYgIXdhc0Fib3J0ZWQoKSk7CiAKLSAgICBpZiAoIW1fcmVwbHlXcmFwcGVy
IHx8ICFtX3JlcGx5V3JhcHBlci0+cmVwbHkoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VCghbV9yZWRpcmVjdGVkKTsKIAogICAgIGlmIChtX3JlcGx5V3JhcHBlci0+cmVwbHkoKS0+Ynl0
ZXNBdmFpbGFibGUoKSkKICAgICAgICAgbV9yZXNwb25zZUNvbnRhaW5zRGF0YSA9IHRydWU7CiAK
LSAgICBzZW5kUmVzcG9uc2VJZk5lZWRlZCgpOwotCi0gICAgLy8gZG9uJ3QgZW1pdCB0aGUgIkRv
Y3VtZW50IGhhcyBtb3ZlZCBoZXJlIiB0eXBlIG9mIEhUTUwKLSAgICBpZiAobV9yZWRpcmVjdGVk
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAod2FzQWJvcnRlZCgpKQotICAgICAgICByZXR1
cm47Ci0KICAgICBRQnl0ZUFycmF5IGRhdGEgPSBtX3JlcGx5V3JhcHBlci0+cmVwbHkoKS0+cmVh
ZChtX3JlcGx5V3JhcHBlci0+cmVwbHkoKS0+Ynl0ZXNBdmFpbGFibGUoKSk7CiAKICAgICBSZXNv
dXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gbV9yZXNvdXJjZUhhbmRsZS0+Y2xpZW50KCk7CkBA
IC02MzksMjQgKzYxOCwxNyBAQCBRTmV0d29ya1JlcGx5KiBRTmV0d29ya1JlcGx5SGFuZGxlcjo6
c2VuZE5ldHdvcmtSZXF1ZXN0KCkKIAogdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6c3RhcnQo
KQogewotICAgIEFTU0VSVCghbV9oYXNTdGFydGVkKTsKLSAgICBtX2hhc1N0YXJ0ZWQgPSB0cnVl
OwotCiAgICAgUU5ldHdvcmtSZXBseSogcmVwbHkgPSBzZW5kTmV0d29ya1JlcXVlc3QoKTsKICAg
ICBpZiAoIXJlcGx5KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3JlcGx5V3JhcHBlciA9IG5l
dyBRTmV0d29ya1JlcGx5V3JhcHBlcihyZXBseSwgdGhpcyk7CisgICAgbV9yZXBseVdyYXBwZXIg
PSBuZXcgUU5ldHdvcmtSZXBseVdyYXBwZXIoJm1fcXVldWUsIHJlcGx5LCB0aGlzKTsKIAogICAg
IGlmIChtX2xvYWRUeXBlID09IFN5bmNocm9ub3VzTG9hZCAmJiBtX3JlcGx5V3JhcHBlci0+cmVw
bHkoKS0+aXNGaW5pc2hlZCgpKSB7CiAgICAgICAgIC8vIElmIHN1cHBvcnRlZCwgYSBzeW5jaHJv
bm91cyByZXF1ZXN0IHdpbGwgYmUgZmluaXNoZWQgYXQgdGhpcyBwb2ludCwgbm8gbmVlZCB0byBo
b29rIHVwIHRoZSBzaWduYWxzLgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29ubmVj
dChtX3JlcGx5V3JhcHBlciwgU0lHTkFMKGZpbmlzaGVkKCkpLCB0aGlzLCBTTE9UKGZpbmlzaCgp
KSk7Ci0gICAgY29ubmVjdChtX3JlcGx5V3JhcHBlciwgU0lHTkFMKG1ldGFEYXRhQ2hhbmdlZCgp
KSwgdGhpcywgU0xPVChzZW5kUmVzcG9uc2VJZk5lZWRlZCgpKSk7Ci0gICAgY29ubmVjdChtX3Jl
cGx5V3JhcHBlciwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgdGhpcywgU0xPVChmb3J3YXJkRGF0YSgp
KSk7Ci0KICAgICBpZiAobV9yZXNvdXJjZUhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVwb3J0VXBs
b2FkUHJvZ3Jlc3MoKSkKICAgICAgICAgY29ubmVjdChtX3JlcGx5V3JhcHBlci0+cmVwbHkoKSwg
U0lHTkFMKHVwbG9hZFByb2dyZXNzKHFpbnQ2NCwgcWludDY0KSksIHRoaXMsIFNMT1QodXBsb2Fk
UHJvZ3Jlc3MocWludDY0LCBxaW50NjQpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmgKaW5kZXggNjE2
OTRkNi4uOWQ3OTUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuaApAQCAtMzUsMjkgKzM1LDQ2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOworY2xhc3MgUU5ldHdvcmtSZXBseUhhbmRsZXI7CisKK2NsYXNzIFFOZXR3b3Jr
UmVwbHlIYW5kbGVyQ2FsbFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBRTmV0d29ya1JlcGx5SGFuZGxl
ckNhbGxRdWV1ZShRTmV0d29ya1JlcGx5SGFuZGxlciosIGJvb2wgZGVmZXJTaWduYWxzKTsKKyAg
ICBib29sIGRlZmVyU2lnbmFscygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXJTaWduYWxzOyB9Cisg
ICAgdm9pZCBzZXREZWZlclNpZ25hbHMoYm9vbCk7CisKKyAgICB0eXBlZGVmIHZvaWQgKFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjoqRW5xdWV1ZWRDYWxsKSgpOworICAgIHZvaWQgcHVzaChFbnF1ZXVl
ZENhbGwgbWV0aG9kKTsKKyAgICB2b2lkIGNsZWFyKCkgeyBtX2VucXVldWVkQ2FsbHMuY2xlYXIo
KTsgfQorCisgICAgdm9pZCBsb2NrKCk7CisgICAgdm9pZCB1bmxvY2soKTsKK3ByaXZhdGU6Cisg
ICAgUU5ldHdvcmtSZXBseUhhbmRsZXIqIG1fcmVwbHlIYW5kbGVyOworICAgIGludCBtX2xvY2tz
OworICAgIGJvb2wgbV9kZWZlclNpZ25hbHM7CisgICAgUUxpc3Q8RW5xdWV1ZWRDYWxsPiBtX2Vu
cXVldWVkQ2FsbHM7Cit9OwogCiBjbGFzcyBRTmV0d29ya1JlcGx5V3JhcHBlciA6IHB1YmxpYyBR
T2JqZWN0IHsKICAgICBRX09CSkVDVAogcHVibGljOgotICAgIFFOZXR3b3JrUmVwbHlXcmFwcGVy
KFFOZXR3b3JrUmVwbHkqLCBRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKyAgICBRTmV0d29ya1JlcGx5
V3JhcHBlcihRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1ZSosIFFOZXR3b3JrUmVwbHkqLCBR
T2JqZWN0KiBwYXJlbnQgPSAwKTsKICAgICB+UU5ldHdvcmtSZXBseVdyYXBwZXIoKTsKIAogICAg
IFFOZXR3b3JrUmVwbHkqIHJlcGx5KCkgY29uc3QgeyByZXR1cm4gbV9yZXBseTsgfQogICAgIFFO
ZXR3b3JrUmVwbHkqIHJlbGVhc2UoKTsKIAorICAgIHZvaWQgc3luY2hyb25vdXNMb2FkKCkgeyBy
ZWNlaXZlTWV0YURhdGEoKTsgfQorCiAgICAgUVVybCByZWRpcmVjdGlvblRhcmdldFVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVkaXJlY3Rpb25UYXJnZXRVcmw7IH0KICAgICBRU3RyaW5nIGVuY29k
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9lbmNvZGluZzsgfQogICAgIFFTdHJpbmcgYWR2ZXJ0aXNl
ZE1pbWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9hZHZlcnRpc2VkTWltZVR5cGU7IH0KIAotUV9T
SUdOQUxTOgotICAgIHZvaWQgZmluaXNoZWQoKTsKLSAgICB2b2lkIG1ldGFEYXRhQ2hhbmdlZCgp
OwotICAgIHZvaWQgcmVhZHlSZWFkKCk7Ci0gICAgdm9pZCB1cGxvYWRQcm9ncmVzcyhxaW50NjQg
Ynl0ZXNTZW50LCBxaW50NjQgYnl0ZXNUb3RhbCk7Ci0KIHByaXZhdGUgUV9TTE9UUzoKICAgICB2
b2lkIHJlY2VpdmVNZXRhRGF0YSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZpbmlzaGVkKCk7Cisg
ICAgdm9pZCByZWFkeVJlYWQoKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0Q29ubmVjdGlv
bnMoKTsKQEAgLTY3LDYgKzg0LDggQEAgcHJpdmF0ZToKIAogICAgIFFTdHJpbmcgbV9lbmNvZGlu
ZzsKICAgICBRU3RyaW5nIG1fYWR2ZXJ0aXNlZE1pbWVUeXBlOworCisgICAgUU5ldHdvcmtSZXBs
eUhhbmRsZXJDYWxsUXVldWUqIG1fcXVldWU7CiB9OwogCiBjbGFzcyBRTmV0d29ya1JlcGx5SGFu
ZGxlciA6IHB1YmxpYyBRT2JqZWN0CkBAIC03OSw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIoUmVzb3VyY2VIYW5kbGUqLCBMb2FkVHlwZSwgYm9v
bCBkZWZlcnJlZCA9IGZhbHNlKTsKLSAgICB2b2lkIHNldExvYWRpbmdEZWZlcnJlZChib29sKTsK
KyAgICB2b2lkIHNldExvYWRpbmdEZWZlcnJlZChib29sIGRlZmVycmVkKSB7IG1fcXVldWUuc2V0
RGVmZXJTaWduYWxzKGRlZmVycmVkKTsgfQogCiAgICAgUU5ldHdvcmtSZXBseSogcmVwbHkoKSBj
b25zdCB7IHJldHVybiBtX3JlcGx5V3JhcHBlciA/IG1fcmVwbHlXcmFwcGVyLT5yZXBseSgpIDog
MDsgfQogCkBAIC05Nyw3ICsxMTYsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnQoKTsKICAg
ICB2b2lkIHJlc2V0U3RhdGUoKTsKICAgICBTdHJpbmcgaHR0cE1ldGhvZCgpIGNvbnN0OwotICAg
IHZvaWQgcmVzdW1lRGVmZXJyZWRMb2FkKCk7CiAgICAgdm9pZCByZWRpcmVjdChSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUVVybCYpOwogICAgIGJvb2wgd2FzQWJvcnRlZCgpIGNvbnN0IHsgcmV0
dXJuICFtX3Jlc291cmNlSGFuZGxlOyB9CiAgICAgUU5ldHdvcmtSZXBseSogc2VuZE5ldHdvcmtS
ZXF1ZXN0KCk7CkBAIC0xMDUsMjAgKzEyMywxNSBAQCBwcml2YXRlOgogICAgIFFOZXR3b3JrUmVw
bHlXcmFwcGVyKiBtX3JlcGx5V3JhcHBlcjsKICAgICBSZXNvdXJjZUhhbmRsZSogbV9yZXNvdXJj
ZUhhbmRsZTsKICAgICBib29sIG1fcmVkaXJlY3RlZDsKLSAgICBib29sIG1fcmVzcG9uc2VTZW50
OwogICAgIGJvb2wgbV9yZXNwb25zZUNvbnRhaW5zRGF0YTsKICAgICBMb2FkVHlwZSBtX2xvYWRU
eXBlOwogICAgIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6T3BlcmF0aW9uIG1fbWV0aG9kOwogICAg
IFFOZXR3b3JrUmVxdWVzdCBtX3JlcXVlc3Q7CiAKLSAgICBib29sIG1fZGVmZXJyZWQ7Ci0KICAg
ICAvLyBkZWZlciBzdGF0ZSBob2xkaW5nCi0gICAgYm9vbCBtX2hhc1N0YXJ0ZWQ7Ci0gICAgYm9v
bCBtX2NhbGxGaW5pc2hPblJlc3VtZTsKLSAgICBib29sIG1fY2FsbFNlbmRSZXNwb25zZUlmTmVl
ZGVkT25SZXN1bWU7Ci0gICAgYm9vbCBtX2NhbGxGb3J3YXJkRGF0YU9uUmVzdW1lOwogICAgIGlu
dCBtX3JlZGlyZWN0aW9uVHJpZXM7CisKKyAgICBRTmV0d29ya1JlcGx5SGFuZGxlckNhbGxRdWV1
ZSBtX3F1ZXVlOwogfTsKIAogLy8gU2VsZiBkZXN0cnVjdGluZyBRSU9EZXZpY2UgZm9yIEZvcm1E
YXRhCi0tIAoxLjcuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>