<?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>28682</bug_id>
          
          <creation_ts>2009-08-24 13:12:16 -0700</creation_ts>
          <short_desc>[Qt] QtWebKit Persistent API</short_desc>
          <delta_ts>2009-09-08 06:56:22 -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>WebKit Qt</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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142381</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-24 13:12:16 -0700</bug_when>
    <thetext>This bug is to track and review QtWebKit persistent API - as it has been discussed on #qtwebkit.

Directions from Simon regarding QtWebKit persistency 
 - By default QtWebKit should not store any data persistently
 - There should be an easy way (that is one call) to enable WebKit persistency - that is enable all the features that might create persistent data
 - Would be nice to have a function which sets up the base directory path for all persistent data
 - Would be nice to have a default for the base directory path so that clients can just enable persistency, without worrying about the path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142416</commentid>
    <comment_count>1</comment_count>
      <attachid>38500</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-08-24 14:28:22 -0700</bug_when>
    <thetext>Created attachment 38500
first try.

Putting this up for review to collect feedback. Patch implements the followings:

- Disable LocalStorage, ApplicationCache, HTML5 offline storage by default
- If persistency is enabled the default directory for LocalStorage and ApplicationCache is now based on QDesktopServices::DataLocation and not QDesktopServices::CacheLocation
- If persistency is enabled initialize HTML5 offline storage as well - this fixed offline Storage for QtLauncher (it is crashing now)

Looking for feedback on
 - function name and signature for enablePersistentStorage
 - Is there a need/can we maintain a disablePersistentStorage function (other WebKit ports does not seems to have this option)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144166</commentid>
    <comment_count>2</comment_count>
      <attachid>38500</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 02:49:34 -0700</bug_when>
    <thetext>Comment on attachment 38500
first try.

Your changelog doesn&apos;t really have nearly enough description of what you&apos;re doing.

Doesn&apos;t QtWebKit have a policy of adding unit tests for changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144370</commentid>
    <comment_count>3</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-02 19:11:13 -0700</bug_when>
    <thetext>Just to capture some of the discussion (in person/from IRC) with Simon and Kenneth.

One idea was to add an enum argument so that this function can be used to configure not only the default for all persistent data but also for each individual persistent feature as well. One issue with that is that some persistent features are per page (more precisely per pageGroup) some other are static for the QtWebKit instance. 

I think the function that initializes persistent directory for all persistent features needs to be static.

Also I would like to highlight that most of these persistent features - once enabled - can not be easily turned off. The test case that I proposed in https://bugs.webkit.org/show_bug.cgi?id=28836 highlight some of the specifics of the problem.

I would propose that we &quot;position&quot; this API as some sort of initialization API that is expected to be called only once of a lifetime of a QtWebKit instance. In fact we might want to actually enforce that so the function is a no-op for all the subsequent calls - as far as I can tell most of all the other WebKit ports already behave that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144572</commentid>
    <comment_count>4</comment_count>
      <attachid>39003</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-03 12:56:00 -0700</bug_when>
    <thetext>Created attachment 39003
second try

Filled out ChangeLog properly as Simon indicated this API looks quite good already. I&apos;m not sure if this needs a test case as this API does not add new functionality. It is merely a convenience function that server a use-case that most QtWebKit client would want - that is to enable all persistent features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144797</commentid>
    <comment_count>5</comment_count>
      <attachid>39003</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2009-09-04 06:33:16 -0700</bug_when>
    <thetext>Comment on attachment 39003
second try

Looks good, except that we need a unit test (no matter how simple it is). It&apos;s a matter of checking all settings before calling enablePersistentStorage, and then checking everything again after. Sanity checks only, but hey, it&apos;s better to do it than to regret it later :)

r- until the test is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144924</commentid>
    <comment_count>6</comment_count>
      <attachid>39090</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-04 14:15:50 -0700</bug_when>
    <thetext>Created attachment 39090
3rd. try

Added autotest as requested by Eric and Ariya.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145314</commentid>
    <comment_count>7</comment_count>
      <attachid>39090</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-09-08 03:33:01 -0700</bug_when>
    <thetext>Comment on attachment 39090
3rd. try

r=me

&gt; +++ WebKit/qt/QtLauncher/main.cpp	(working copy)
&gt; @@ -443,7 +443,7 @@ int main(int argc, char **argv)
&gt;  
&gt;      QWebSettings::globalSettings()-&gt;setAttribute(QWebSettings::PluginsEnabled, true);
&gt;      QWebSettings::globalSettings()-&gt;setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
&gt; -    QWebSettings::globalSettings()-&gt;setAttribute(QWebSettings::LocalStorageEnabled, true);
&gt; +    QWebSettings::globalSettings()-&gt;enablePersistentStorage();
&gt;  

&gt; @@ -152,6 +151,7 @@ DumpRenderTree::DumpRenderTree()
&gt;      , m_notifier(0)
&gt;  {
&gt;      qt_drt_overwritePluginDirectories();
&gt; +    QWebSettings::globalSettings()-&gt;enablePersistentStorage();
&gt;  
&gt;      m_controller = new LayoutTestController(this);
&gt;      connect(m_controller, SIGNAL(done()), this, SLOT(dump()));

When landing, please change these to use QWebSettings::enablePersistentStorage() instead of QWebSettings::globalSettings()-&gt;enablePersistentStorage().

One could argue that DumpRenderTree should not share the persistent storage files/path with the default browser location,
to avoid possible side-effects (towards either side :). But that&apos;s a minor detail :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145329</commentid>
    <comment_count>8</comment_count>
      <attachid>39090</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-08 06:29:07 -0700</bug_when>
    <thetext>Comment on attachment 39090
3rd. try

Committed as http://trac.webkit.org/changeset/48151</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38500</attachid>
            <date>2009-08-24 14:28:22 -0700</date>
            <delta_ts>2009-09-03 12:56:00 -0700</delta_ts>
            <desc>first try.</desc>
            <filename>patch_28682.txt</filename>
            <type>text/plain</type>
            <size>9949</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDc3MjgpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDgtMjQgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUXRXZWJLaXQgUGVyc2lzdGVudCBBUEkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NjgyCisKKyAgICAgICAgKiBBcGkv
cXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUp
OgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRpbmdz
OjpRV2ViU2V0dGluZ3MpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50
U3RvcmFnZSk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOgorICAgICAgICAqIFF0TGF1
bmNoZXIvbWFpbi5jcHA6CisgICAgICAgIChtYWluKToKKwogMjAwOS0wOC0yMiAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCA0NzY4NC4gIFdlJ3JlIGdv
aW5nIHRvIGRvIHRoaXMgbGF0ZXIgb25jZSBjbGllbnRzIGhhdmUgaGFkIGEKSW5kZXg6IFdlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBh
Z2UuY3BwCShyZXZpc2lvbiA0NzcyMSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw2IEBACiAjaW5jbHVkZSA8UUJhc2ljVGltZXI+CiAj
aW5jbHVkZSA8UUJpdEFycmF5PgogI2luY2x1ZGUgPFFEZWJ1Zz4KLSNpbmNsdWRlIDxRRGVza3Rv
cFNlcnZpY2VzPgogI2luY2x1ZGUgPFFEcmFnRW50ZXJFdmVudD4KICNpbmNsdWRlIDxRRHJhZ0xl
YXZlRXZlbnQ+CiAjaW5jbHVkZSA8UURyYWdNb3ZlRXZlbnQ+CkBAIC0yNjUsMzcgKzI2NCw2IEBA
IHN0YXRpYyBpbmxpbmUgUXQ6OkRyb3BBY3Rpb24gZHJhZ09wVG9Ecm8KICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi1zdGF0aWMgUVN0cmluZyBkZWZhdWx0Q2FjaGVQYXRoKCkKLXsKLSAgICAvLyBE
ZXRlcm1pbmUgdGhlIGRlZmF1bHQgY2FjaGUgbG9jYXRpb24KLSAgICBRU3RyaW5nIGNhY2hlUGF0
aDsKLSAgICAKLSNpZiBRVF9WRVJTSU9OID49IDB4MDQwNTAwCi0gICAgY2FjaGVQYXRoID0gUURl
c2t0b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9j
YXRpb24pOwotI2Vsc2UKLSAgICBjYWNoZVBhdGggPSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdl
TG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0YUxvY2F0aW9uKTsKLSNlbmRpZgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICBpZiAoY2FjaGVQYXRoLmlzRW1wdHkoKSkK
LSAgICAgICAgY2FjaGVQYXRoID0gUURpcjo6aG9tZVBhdGgoKSArIFFMYXRpbjFTdHJpbmcoIi8u
IikgKyBRQ29yZUFwcGxpY2F0aW9uOjphcHBsaWNhdGlvbk5hbWUoKTsKLSAgICAgICAgCi0gICBy
ZXR1cm4gY2FjaGVQYXRoOwotfQotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplQXBwbGljYXRpb25D
YWNoZVBhdGhJZk5lY2Vzc2FyeSgpCi17Ci0KLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9
IGZhbHNlOwotICAgIAotICAgIGlmIChpbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgLy8gU2V0IEhUTUw1IEFwcGxpY2F0aW9uIENhY2hlIGRlZmF1bHQgbG9jYXRpb24KLSAgICBR
V2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aChkZWZhdWx0Q2Fj
aGVQYXRoKCkpOwotICAgIAotICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKLX0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLQogUVdlYlBhZ2VQcml2YXRlOjpR
V2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIDogcShxcSkKICAgICAsIHZpZXcoMCkK
QEAgLTMwNCw3ICsyNzIsNiBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2Vi
UGFnCiAgICAgV2ViQ29yZTo6SW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7
CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OnNldExvY2FsTG9hZFBvbGljeShXZWJDb3JlOjpGcmFtZUxvYWRlcjo6QWxsb3dMb2NhbExv
YWRzRm9yTG9jYWxBbmRTdWJzdGl0dXRlRGF0YSk7Ci0gICAgaW5pdGlhbGl6ZUFwcGxpY2F0aW9u
Q2FjaGVQYXRoSWZOZWNlc3NhcnkoKTsKIAogICAgIGNocm9tZUNsaWVudCA9IG5ldyBDaHJvbWVD
bGllbnRRdChxKTsKICAgICBjb250ZXh0TWVudUNsaWVudCA9IG5ldyBDb250ZXh0TWVudUNsaWVu
dFF0KCk7CkBAIC0zMTYsOSArMjgzLDYgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZh
dGUoUVdlYlBhZwogICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKCJpc28tODg1OS0xIik7CiAKICAgICBzZXR0aW5ncyA9IG5ldyBRV2ViU2V0dGluZ3MocGFn
ZS0+c2V0dGluZ3MoKSk7Ci0gICAgCi0gICAgLy8gU2V0IEhUTUw1IGxvY2FsU3RvcmFnZSBkZWZh
dWx0IGxvY2F0aW9uCi0gICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFnZVBhdGgoV2ViQ29yZTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRlZmF1bHRDYWNoZVBhdGgoKSwgIkxvY2FsU3RvcmFn
ZSIpKTsKIAogI2lmbmRlZiBRVF9OT19VTkRPU1RBQ0sKICAgICB1bmRvU3RhY2sgPSAwOwpJbmRl
eDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9x
dC9BcGkvcXdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gNDc3MjEpCisrKyBXZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDExIEBACiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAj
aW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogCisj
aW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFEZXNrdG9wU2VydmljZXM+CisjaW5j
bHVkZSA8UURpcj4KICNpbmNsdWRlIDxRSGFzaD4KICNpbmNsdWRlIDxRU2hhcmVkRGF0YT4KICNp
bmNsdWRlIDxRVXJsPgpAQCAtMzI2LDkgKzMzMCw5IEBAIFFXZWJTZXR0aW5ncyogUVdlYlNldHRp
bmdzOjpnbG9iYWxTZXR0aW4KICAgICBcdmFsdWUgUHJpbnRFbGVtZW50QmFja2dyb3VuZHMgU3Bl
Y2lmaWVzIHdoZXRoZXIgdGhlIGJhY2tncm91bmQgY29sb3IgYW5kIGltYWdlcwogICAgICAgICBh
cmUgYWxzbyBkcmF3biB3aGVuIHRoZSBwYWdlIGlzIHByaW50ZWQuCiAgICAgXHZhbHVlIE9mZmxp
bmVTdG9yYWdlRGF0YWJhc2VFbmFibGVkIFNwZWNpZmllcyB3aGV0aGVyIHN1cHBvcnQgZm9yIHRo
ZSBIVE1MIDUKLSAgICAgICAgb2ZmbGluZSBzdG9yYWdlIGZlYXR1cmUgaXMgZW5hYmxlZCBvciBu
b3QuCisgICAgICAgIG9mZmxpbmUgc3RvcmFnZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90LiBE
aXNhYmxlZCBieSBkZWZhdWx0LgogICAgIFx2YWx1ZSBPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQgU3BlY2lmaWVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgdGhlIEhUTUwgNQotICAgICAg
ICB3ZWIgYXBwbGljYXRpb24gY2FjaGUgZmVhdHVyZSBpcyBlbmFibGVkIG9yIG5vdC4KKyAgICAg
ICAgd2ViIGFwcGxpY2F0aW9uIGNhY2hlIGZlYXR1cmUgaXMgZW5hYmxlZCBvciBub3QuIERpc2Fi
bGVkIGJ5IGRlZmF1bHQuCiAgICAgXHZhbHVlIExvY2FsU3RvcmFnZUVuYWJsZWQgU3BlY2lmaWVz
IHdoZXRoZXIgc3VwcG9ydCBmb3IgdGhlIEhUTUwgNQogICAgICAgICBsb2NhbCBzdG9yYWdlIGZl
YXR1cmUgaXMgZW5hYmxlZCBvciBub3QuIERpc2FibGVkIGJ5IGRlZmF1bHQuCiAgICAgXHZhbHVl
IExvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMgU3BlY2lmaWVzIHdoZXRoZXIgbG9jYWxs
eSBsb2FkZWQgZG9jdW1lbnRzIGFyZSBhbGxvd2VkIHRvIGFjY2VzcyByZW1vdGUgdXJscy4KQEAg
LTM1OCw4ICszNjIsOCBAQCBRV2ViU2V0dGluZ3M6OlFXZWJTZXR0aW5ncygpCiAgICAgZC0+YXR0
cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluLCB0
cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Olpvb21UZXh0T25s
eSwgZmFsc2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6UHJpbnRF
bGVtZW50QmFja2dyb3VuZHMsIHRydWUpOwotICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJT
ZXR0aW5nczo6T2ZmbGluZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsIHRydWUpOwotICAgIGQtPmF0
dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVF
bmFibGVkLCB0cnVlKTsKKyAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6Ok9m
ZmxpbmVTdG9yYWdlRGF0YWJhc2VFbmFibGVkLCBmYWxzZSk7CisgICAgZC0+YXR0cmlidXRlcy5p
bnNlcnQoUVdlYlNldHRpbmdzOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsIGZh
bHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFn
ZUVuYWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6
OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIHRydWUpOwogICAgIGQtPm9mZmxpbmVT
dG9yYWdlRGVmYXVsdFF1b3RhID0gNSAqIDEwMjQgKiAxMDI0OwpAQCAtODk3LDEwICs5MDEsNiBA
QCB2b2lkIFFXZWJTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlUGF0aChjCiAKICAgICBSZXR1cm5z
IHRoZSBwYXRoIGZvciBIVE1MNSBsb2NhbCBzdG9yYWdlLgogICAgIAotICAgIFRoZSBwYXRoIGlz
IGluaXRpYWxpemVkIHRvIGEgZGlyZWN0b3J5IGNhbGxlZCBMb2NhbFN0b3JhZ2UgdW5kZXIKLSAg
ICB0aGUgdXNlci1zcGVjaWZpYyBjYWNoZSBkYXRhIGxvY2F0aW9uIHNwZWNpZmllZCBieQotICAg
IFxse1FEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRpb259e0NhY2hlTG9jYXRpb259LgotICAg
IAogICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VQYXRoKCkKICovCiBRU3RyaW5nIFFXZWJTZXR0aW5n
czo6bG9jYWxTdG9yYWdlUGF0aCgpIGNvbnN0CkBAIC05MDksNiArOTA5LDM5IEBAIFFTdHJpbmcg
UVdlYlNldHRpbmdzOjpsb2NhbFN0b3JhZ2VQYXRoKCkKIH0KIAogLyohCisgICAgXHNpbmNlIDQu
NgorICAgIFxyZWxhdGVzIFFXZWJTZXR0aW5ncworCisgICAgRW5hYmxlcyBXZWJLaXQgcGVyc2lz
dGVudCBkYXRhIGFuZCBzZXRzIHRoZSBwYXRoIHRvIFxhIHBhdGguCisgICAgSWYgdGhlIFxhIHBh
dGggaXMgZW1wdHkgdGhlIHBhdGggZm9yIHBlcnNpc3RlbnQgZGF0YSBpcyBzZXQgdG8gdGhlIAor
ICAgIHVzZXItc3BlY2lmaWMgZGF0YSBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgCisgICAgXGx7UURl
c2t0b3BTZXJ2aWNlczo6RGF0YUxvY2F0aW9ufXtEYXRhTG9jYXRpb259LgorICAgIAorICAgIFxz
YSBsb2NhbFN0b3JhZ2VQYXRoKCkKKyovCit2b2lkIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lz
dGVudFN0b3JhZ2UoY29uc3QgUVN0cmluZyYgcGF0aCkKK3sKKyAgICBRU3RyaW5nIHN0b3JhZ2VQ
YXRoOworCisgICAgaWYgKHBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIHN0b3JhZ2VQYXRoID0g
UURlc2t0b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkRhdGFM
b2NhdGlvbik7CisKKyAgICAgICAgaWYgKHN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHN0b3JhZ2VQYXRoID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFFEaXI6
OmhvbWVQYXRoKCksIFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgc3RvcmFnZVBhdGggPSBwYXRoOworCisgICAgUVdlYlNldHRpbmdzOjpz
ZXRJY29uRGF0YWJhc2VQYXRoKFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9y
YWdlUGF0aCwgIkljb25EYXRhYmFzZSIpKTsKKyAgICBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVT
dG9yYWdlUGF0aChXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZVBhdGgs
ICJXZWJEYXRhYmFzZSIpKTsKKyAgICBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlUGF0aChXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZVBh
dGgsICJBcHBsaWNhdGlvbkNhY2hlIikpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGlu
Z3MoKS0+c2V0TG9jYWxTdG9yYWdlUGF0aChXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoc3RvcmFnZVBhdGgsICJMb2NhbFN0b3JhZ2UiKSk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9i
YWxTZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFi
bGVkLCB0cnVlKTsKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJp
YnV0ZShRV2ViU2V0dGluZ3M6Ok9mZmxpbmVTdG9yYWdlRGF0YWJhc2VFbmFibGVkLCB0cnVlKTsK
KyAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0
dGluZ3M6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwgdHJ1ZSk7Cit9CisKKwor
LyohCiAgICAgXGZuIFFXZWJTZXR0aW5nc1ByaXZhdGUqIFFXZWJTZXR0aW5nczo6aGFuZGxlKCkg
Y29uc3QKICAgICBcaW50ZXJuYWwKICovCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmgJKHJldmlzaW9u
IDQ3NzIxKQorKysgV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMTMxLDYgKzEzMSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVtb3J5
Q2FjaGVzKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBlbmFibGVQZXJzaXN0ZW50U3RvcmFnZShjb25z
dCBRU3RyaW5nJiBwYXRoID0gUVN0cmluZygpKTsKKwogICAgIGlubGluZSBRV2ViU2V0dGluZ3NQ
cml2YXRlKiBoYW5kbGUoKSBjb25zdCB7IHJldHVybiBkOyB9CiAKIHByaXZhdGU6CkluZGV4OiBX
ZWJLaXQvcXQvUXRMYXVuY2hlci9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvUXRM
YXVuY2hlci9tYWluLmNwcAkocmV2aXNpb24gNDc3MjEpCisrKyBXZWJLaXQvcXQvUXRMYXVuY2hl
ci9tYWluLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQzLDcgKzQ0Myw3IEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICoqYXJndikKIAogICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3Mo
KS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUpOwogICAg
IFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5n
czo6RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgUVdlYlNldHRpbmdzOjpnbG9i
YWxTZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFi
bGVkLCB0cnVlKTsKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPmVuYWJsZVBl
cnNpc3RlbnRTdG9yYWdlKCk7CiAKICAgICBjb25zdCBRU3RyaW5nTGlzdCBhcmdzID0gYXBwLmFy
Z3VtZW50cygpOwogCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NzcyOCkKKysrIFdlYktpdFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA4LTI0ICBMYXN6
bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFF0V2ViS2l0IFBlcnNpc3RlbnQg
QVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODY4
MgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpEdW1w
UmVuZGVyVHJlZTo6RHVtcFJlbmRlclRyZWUpOgorCiAyMDA5LTA4LTIzICBKYW4gTWljaGFlbCBB
bG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZS5jcHAJKHJldmlzaW9uIDQ3NzIxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDYg
QEAgV2ViUGFnZTo6V2ViUGFnZShRV2lkZ2V0ICpwYXJlbnQsIER1bXBSZQogICAgIHNldHRpbmdz
KCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQsIHRydWUpOwogICAgIHNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6Okxp
bmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4sIGZhbHNlKTsKICAgICBzZXR0aW5ncygpLT5zZXRBdHRy
aWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgc2V0dGluZ3Mo
KS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdlRW5hYmxlZCwgdHJ1ZSk7
CiAgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwoZ2VvbWV0cnlDaGFuZ2VSZXF1ZXN0ZWQoY29uc3Qg
UVJlY3QgJikpLAogICAgICAgICAgICAgdGhpcywgU0xPVChzZXRWaWV3R2VvbWV0cnkoY29uc3Qg
UVJlY3QgJiApKSk7CiAKQEAgLTE1MCw2ICsxNDksNyBAQCBEdW1wUmVuZGVyVHJlZTo6RHVtcFJl
bmRlclRyZWUoKQogICAgICwgbV9ub3RpZmllcigwKQogewogICAgIHF0X2RydF9vdmVyd3JpdGVQ
bHVnaW5EaXJlY3RvcmllcygpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+
ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UoKTsKIAogICAgIG1fY29udHJvbGxlciA9IG5ldyBMYXlv
dXRUZXN0Q29udHJvbGxlcih0aGlzKTsKICAgICBjb25uZWN0KG1fY29udHJvbGxlciwgU0lHTkFM
KGRvbmUoKSksIHRoaXMsIFNMT1QoZHVtcCgpKSk7Cg==
</data>
<flag name="review"
          id="19516"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39003</attachid>
            <date>2009-09-03 12:56:00 -0700</date>
            <delta_ts>2009-09-04 14:15:50 -0700</delta_ts>
            <desc>second try</desc>
            <filename>patch_28682.txt</filename>
            <type>text/plain</type>
            <size>10731</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDgwMjcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMDktMDMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUXRXZWJLaXQgc2luZ2xlIEFQSSB0byBlbmFibGUgcGVyc2lzdGVu
Y3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4Njgy
CisKKyAgICAgICAgRGlzYWJsZSBMb2NhbFN0b3JhZ2UsIEFwcGxpY2F0aW9uQ2FjaGUsIEhUTUw1
IG9mZmxpbmUgc3RvcmFnZSBieQorICAgICAgICBkZWZhdWx0LgorCisgICAgICAgIElmIHBlcnNp
c3RlbmN5IGlzIGVuYWJsZWQgdGhlIGRlZmF1bHQgZGlyZWN0b3J5IGZvciBMb2NhbFN0b3JhZ2Ug
YW5kCisgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUgaXMgbm93IGJhc2VkIG9uIFFEZXNrdG9wU2Vy
dmljZXM6OkRhdGFMb2NhdGlvbiBhbmQgbm90CisgICAgICAgIFFEZXNrdG9wU2VydmljZXM6OkNh
Y2hlTG9jYXRpb24gKGFzIGl0IGlzIGV4cGVjdGVkIHRvIGtlZXAgdGhpcyBkYXRhCisgICAgICAg
IGFyb3VuZCBhZnRlciBhIHJlYm9vdCkuCisKKyAgICAgICAgSWYgcGVyc2lzdGVuY3kgaXMgZW5h
YmxlZCBpbml0aWFsaXplIEhUTUw1IG9mZmxpbmUgc3RvcmFnZSBhcyB3ZWxsIC0gdGhpcworICAg
ICAgICBmaXhlZCBvZmZsaW5lIFN0b3JhZ2UgZm9yIFF0TGF1bmNoZXIuCisKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZh
dGUpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRp
bmdzOjpRV2ViU2V0dGluZ3MpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0
ZW50U3RvcmFnZSk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOiBBZGQgYSBuZXcgQVBJ
IGNhbGxlZCBlbmFibGVQZXJzaXN0ZW50U3RvcmFnZQorICAgICAgICAqIFF0TGF1bmNoZXIvbWFp
bi5jcHA6IFVzZSB0aGUgbmV3IGVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlIEFQSQorICAgICAgICAo
bWFpbik6CisKIDIwMDktMDktMDMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9r
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2VicGFn
ZS5jcHAJKHJldmlzaW9uIDQ4MDI0KQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDYgQEAKICNpbmNsdWRlIDxRQmFzaWNUaW1lcj4KICNp
bmNsdWRlIDxRQml0QXJyYXk+CiAjaW5jbHVkZSA8UURlYnVnPgotI2luY2x1ZGUgPFFEZXNrdG9w
U2VydmljZXM+CiAjaW5jbHVkZSA8UURyYWdFbnRlckV2ZW50PgogI2luY2x1ZGUgPFFEcmFnTGVh
dmVFdmVudD4KICNpbmNsdWRlIDxRRHJhZ01vdmVFdmVudD4KQEAgLTI2NSwzNyArMjY0LDYgQEAg
c3RhdGljIGlubGluZSBRdDo6RHJvcEFjdGlvbiBkcmFnT3BUb0RybwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLXN0YXRpYyBRU3RyaW5nIGRlZmF1bHRDYWNoZVBhdGgoKQotewotICAgIC8vIERl
dGVybWluZSB0aGUgZGVmYXVsdCBjYWNoZSBsb2NhdGlvbgotICAgIFFTdHJpbmcgY2FjaGVQYXRo
OwotICAgIAotI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA1MDAKLSAgICBjYWNoZVBhdGggPSBRRGVz
a3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6Q2FjaGVMb2Nh
dGlvbik7Ci0jZWxzZQotICAgIGNhY2hlUGF0aCA9IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VM
b2NhdGlvbihRRGVza3RvcFNlcnZpY2VzOjpEYXRhTG9jYXRpb24pOwotI2VuZGlmCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgIGlmIChjYWNoZVBhdGguaXNFbXB0eSgpKQot
ICAgICAgICBjYWNoZVBhdGggPSBRRGlyOjpob21lUGF0aCgpICsgUUxhdGluMVN0cmluZygiLy4i
KSArIFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpOwotICAgICAgICAKLSAgIHJl
dHVybiBjYWNoZVBhdGg7Ci19Ci0KLXN0YXRpYyB2b2lkIGluaXRpYWxpemVBcHBsaWNhdGlvbkNh
Y2hlUGF0aElmTmVjZXNzYXJ5KCkKLXsKLQotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0g
ZmFsc2U7Ci0gICAgCi0gICAgaWYgKGluaXRpYWxpemVkKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICAvLyBTZXQgSFRNTDUgQXBwbGljYXRpb24gQ2FjaGUgZGVmYXVsdCBsb2NhdGlvbgotICAgIFFX
ZWJTZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoKGRlZmF1bHRDYWNo
ZVBhdGgoKSk7Ci0gICAgCi0gICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotfSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotCiBRV2ViUGFnZVByaXZhdGU6OlFX
ZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgOiBxKHFxKQogICAgICwgdmlldygwKQpA
QCAtMzA0LDcgKzI3Miw2IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQ
YWcKICAgICBXZWJDb3JlOjpJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsK
ICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6c2V0TG9jYWxMb2FkUG9saWN5KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpBbGxvd0xvY2FsTG9h
ZHNGb3JMb2NhbEFuZFN1YnN0aXR1dGVEYXRhKTsKLSAgICBpbml0aWFsaXplQXBwbGljYXRpb25D
YWNoZVBhdGhJZk5lY2Vzc2FyeSgpOwogCiAgICAgY2hyb21lQ2xpZW50ID0gbmV3IENocm9tZUNs
aWVudFF0KHEpOwogICAgIGNvbnRleHRNZW51Q2xpZW50ID0gbmV3IENvbnRleHRNZW51Q2xpZW50
UXQoKTsKQEAgLTMxNiw5ICsyODMsNiBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0
ZShRV2ViUGFnCiAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05h
bWUoImlzby04ODU5LTEiKTsKIAogICAgIHNldHRpbmdzID0gbmV3IFFXZWJTZXR0aW5ncyhwYWdl
LT5zZXR0aW5ncygpKTsKLSAgICAKLSAgICAvLyBTZXQgSFRNTDUgbG9jYWxTdG9yYWdlIGRlZmF1
bHQgbG9jYXRpb24KLSAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlUGF0aChXZWJDb3JlOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGVmYXVsdENhY2hlUGF0aCgpLCAiTG9jYWxTdG9yYWdl
IikpOwogCiAjaWZuZGVmIFFUX05PX1VORE9TVEFDSwogICAgIHVuZG9TdGFjayA9IDA7CkluZGV4
OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0
L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lvbiA0ODAyNCkKKysrIFdlYktpdC9xdC9BcGkv
cXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsMTEgQEAKICNpbmNs
dWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNp
bmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAKKyNp
bmNsdWRlIDxRQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNlcz4KKyNpbmNs
dWRlIDxRRGlyPgogI2luY2x1ZGUgPFFIYXNoPgogI2luY2x1ZGUgPFFTaGFyZWREYXRhPgogI2lu
Y2x1ZGUgPFFVcmw+CkBAIC0zMzAsOSArMzM0LDkgQEAgUVdlYlNldHRpbmdzKiBRV2ViU2V0dGlu
Z3M6Omdsb2JhbFNldHRpbgogICAgIFx2YWx1ZSBQcmludEVsZW1lbnRCYWNrZ3JvdW5kcyBTcGVj
aWZpZXMgd2hldGhlciB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgaW1hZ2VzCiAgICAgICAgIGFy
ZSBhbHNvIGRyYXduIHdoZW4gdGhlIHBhZ2UgaXMgcHJpbnRlZC4KICAgICBcdmFsdWUgT2ZmbGlu
ZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQgU3BlY2lmaWVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgdGhl
IEhUTUwgNQotICAgICAgICBvZmZsaW5lIHN0b3JhZ2UgZmVhdHVyZSBpcyBlbmFibGVkIG9yIG5v
dC4KKyAgICAgICAgb2ZmbGluZSBzdG9yYWdlIGZlYXR1cmUgaXMgZW5hYmxlZCBvciBub3QuIERp
c2FibGVkIGJ5IGRlZmF1bHQuCiAgICAgXHZhbHVlIE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZCBTcGVjaWZpZXMgd2hldGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1Ci0gICAgICAg
IHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90LgorICAgICAg
ICB3ZWIgYXBwbGljYXRpb24gY2FjaGUgZmVhdHVyZSBpcyBlbmFibGVkIG9yIG5vdC4gRGlzYWJs
ZWQgYnkgZGVmYXVsdC4KICAgICBcdmFsdWUgTG9jYWxTdG9yYWdlRW5hYmxlZCBTcGVjaWZpZXMg
d2hldGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1CiAgICAgICAgIGxvY2FsIHN0b3JhZ2UgZmVh
dHVyZSBpcyBlbmFibGVkIG9yIG5vdC4gRGlzYWJsZWQgYnkgZGVmYXVsdC4KICAgICBcdmFsdWUg
TG9jYWxDb250ZW50Q2FuQWNjZXNzUmVtb3RlVXJscyBTcGVjaWZpZXMgd2hldGhlciBsb2NhbGx5
IGxvYWRlZCBkb2N1bWVudHMgYXJlIGFsbG93ZWQgdG8gYWNjZXNzIHJlbW90ZSB1cmxzLgpAQCAt
MzY0LDggKzM2OCw4IEBAIFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKCkKICAgICBkLT5hdHRy
aWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OkxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4sIHRy
dWUpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6Wm9vbVRleHRPbmx5
LCBmYWxzZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpQcmludEVs
ZW1lbnRCYWNrZ3JvdW5kcywgdHJ1ZSk7Ci0gICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNl
dHRpbmdzOjpPZmZsaW5lU3RvcmFnZURhdGFiYXNlRW5hYmxlZCwgdHJ1ZSk7Ci0gICAgZC0+YXR0
cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVu
YWJsZWQsIHRydWUpOworICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6T2Zm
bGluZVN0b3JhZ2VEYXRhYmFzZUVuYWJsZWQsIGZhbHNlKTsKKyAgICBkLT5hdHRyaWJ1dGVzLmlu
c2VydChRV2ViU2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwgZmFs
c2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6TG9jYWxTdG9yYWdl
RW5hYmxlZCwgZmFsc2UpOwogICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6
TG9jYWxDb250ZW50Q2FuQWNjZXNzUmVtb3RlVXJscywgZmFsc2UpOwogICAgIGQtPmF0dHJpYnV0
ZXMuaW5zZXJ0KFFXZWJTZXR0aW5nczo6U2Vzc2lvblN0b3JhZ2VFbmFibGVkLCB0cnVlKTsKQEAg
LTkwNCwxMCArOTA4LDYgQEAgdm9pZCBRV2ViU2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVBhdGgo
YwogCiAgICAgUmV0dXJucyB0aGUgcGF0aCBmb3IgSFRNTDUgbG9jYWwgc3RvcmFnZS4KICAgICAK
LSAgICBUaGUgcGF0aCBpcyBpbml0aWFsaXplZCB0byBhIGRpcmVjdG9yeSBjYWxsZWQgTG9jYWxT
dG9yYWdlIHVuZGVyCi0gICAgdGhlIHVzZXItc3BlY2lmaWMgY2FjaGUgZGF0YSBsb2NhdGlvbiBz
cGVjaWZpZWQgYnkKLSAgICBcbHtRRGVza3RvcFNlcnZpY2VzOjpDYWNoZUxvY2F0aW9ufXtDYWNo
ZUxvY2F0aW9ufS4KLSAgICAKICAgICBcc2Egc2V0TG9jYWxTdG9yYWdlUGF0aCgpCiAqLwogUVN0
cmluZyBRV2ViU2V0dGluZ3M6OmxvY2FsU3RvcmFnZVBhdGgoKSBjb25zdApAQCAtOTE2LDYgKzkx
NiwzOCBAQCBRU3RyaW5nIFFXZWJTZXR0aW5nczo6bG9jYWxTdG9yYWdlUGF0aCgpCiB9CiAKIC8q
IQorICAgIFxzaW5jZSA0LjYKKyAgICBccmVsYXRlcyBRV2ViU2V0dGluZ3MKKworICAgIEVuYWJs
ZXMgV2ViS2l0IHBlcnNpc3RlbnQgZGF0YSBhbmQgc2V0cyB0aGUgcGF0aCB0byBcYSBwYXRoLgor
ICAgIElmIHRoZSBcYSBwYXRoIGlzIGVtcHR5IHRoZSBwYXRoIGZvciBwZXJzaXN0ZW50IGRhdGEg
aXMgc2V0IHRvIHRoZSAKKyAgICB1c2VyLXNwZWNpZmljIGRhdGEgbG9jYXRpb24gc3BlY2lmaWVk
IGJ5IAorICAgIFxse1FEZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlvbn17RGF0YUxvY2F0aW9u
fS4KKyAgICAKKyAgICBcc2EgbG9jYWxTdG9yYWdlUGF0aCgpCisqLwordm9pZCBRV2ViU2V0dGlu
Z3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFFTdHJpbmcmIHBhdGgpCit7CisgICAg
UVN0cmluZyBzdG9yYWdlUGF0aDsKKworICAgIGlmIChwYXRoLmlzRW1wdHkoKSkgeworICAgICAg
ICBzdG9yYWdlUGF0aCA9IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3Rv
cFNlcnZpY2VzOjpEYXRhTG9jYXRpb24pOworCisgICAgICAgIGlmIChzdG9yYWdlUGF0aC5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBzdG9yYWdlUGF0aCA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChRRGlyOjpob21lUGF0aCgpLCBRQ29yZUFwcGxpY2F0aW9uOjphcHBsaWNhdGlv
bk5hbWUoKSk7CisgICAgfSBlbHNlCisgICAgICAgIHN0b3JhZ2VQYXRoID0gcGF0aDsKKworICAg
IFFXZWJTZXR0aW5nczo6c2V0SWNvbkRhdGFiYXNlUGF0aChXZWJDb3JlOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoc3RvcmFnZVBhdGgsICJJY29uRGF0YWJhc2UiKSk7CisgICAgUVdlYlNldHRp
bmdzOjpzZXRPZmZsaW5lU3RvcmFnZVBhdGgoV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHN0b3JhZ2VQYXRoLCAiV2ViRGF0YWJhc2UiKSk7CisgICAgUVdlYlNldHRpbmdzOjpzZXRP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGgoV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KHN0b3JhZ2VQYXRoLCAiQXBwbGljYXRpb25DYWNoZSIpKTsKKyAgICBRV2ViU2V0dGlu
Z3M6Omdsb2JhbFNldHRpbmdzKCktPnNldExvY2FsU3RvcmFnZVBhdGgoV2ViQ29yZTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VQYXRoLCAiTG9jYWxTdG9yYWdlIikpOworICAgIFFX
ZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6
TG9jYWxTdG9yYWdlRW5hYmxlZCwgdHJ1ZSk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0
aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpPZmZsaW5lU3RvcmFnZURhdGFiYXNl
RW5hYmxlZCwgdHJ1ZSk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5zZXRB
dHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQs
IHRydWUpOworfQorCisvKiEKICAgICBcZm4gUVdlYlNldHRpbmdzUHJpdmF0ZSogUVdlYlNldHRp
bmdzOjpoYW5kbGUoKSBjb25zdAogICAgIFxpbnRlcm5hbAogKi8KSW5kZXg6IFdlYktpdC9xdC9B
cGkvcXdlYnNldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGlu
Z3MuaAkocmV2aXNpb24gNDgwMjQpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZv
aWQgY2xlYXJNZW1vcnlDYWNoZXMoKTsKIAorICAgIHN0YXRpYyB2b2lkIGVuYWJsZVBlcnNpc3Rl
bnRTdG9yYWdlKGNvbnN0IFFTdHJpbmcmIHBhdGggPSBRU3RyaW5nKCkpOworCiAgICAgaW5saW5l
IFFXZWJTZXR0aW5nc1ByaXZhdGUqIGhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIGQ7IH0KIAogcHJp
dmF0ZToKSW5kZXg6IFdlYktpdC9xdC9RdExhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9RdExhdW5jaGVyL21haW4uY3BwCShyZXZpc2lvbiA0ODAyNCkKKysrIFdlYktp
dC9xdC9RdExhdW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsNyArNDQzLDcg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgICAgUVdlYlNldHRpbmdzOjpn
bG9iYWxTZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxl
ZCwgdHJ1ZSk7CiAgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5zZXRBdHRyaWJ1
dGUoUVdlYlNldHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCB0cnVlKTsKLSAgICBRV2Vi
U2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6Okxv
Y2FsU3RvcmFnZUVuYWJsZWQsIHRydWUpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGlu
Z3MoKS0+ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UoKTsKIAogICAgIGNvbnN0IFFTdHJpbmdMaXN0
IGFyZ3MgPSBhcHAuYXJndW1lbnRzKCk7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MDI3KQorKysg
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MDktMDktMDMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gUXRXZWJL
aXQgc2luZ2xlIEFQSSB0byBlbmFibGUgcGVyc2lzdGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NjgyCisKKyAgICAgICAgVXNlIHRoZSBuZXcg
ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UgQVBJIGluc3RlYWQgCisgICAgICAgIG9mIGVuYWJsaW5n
IGFsbCBwZXJzaXN0ZW50IGZlYXR1cmVzIG9uZS1ieS1vbmUuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdl
OjpXZWJQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjpEdW1wUmVuZGVy
VHJlZSk6CisKIDIwMDktMDktMDIgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
IAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8yODg4MD4gc3ZuLWFwcGx5IC0tZm9yY2Ug
ZG9lc24ndCBhY3R1YWxseSB3b3JrCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiA0ODAyNCkKKysrIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA5LDcgKzEwOSw2IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUVdpZGdldCAqcGFyZW50LCBEdW1w
UmUKICAgICBzZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpKYXZhc2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkLCB0cnVlKTsKICAgICBzZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUo
UVdlYlNldHRpbmdzOjpMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluLCBmYWxzZSk7CiAgICAgc2V0
dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHRydWUp
OwotICAgIHNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFn
ZUVuYWJsZWQsIHRydWUpOwogICAgIHNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGlu
Z3M6OkxvY2FsQ29udGVudENhbkFjY2Vzc1JlbW90ZVVybHMsIHRydWUpOwogCiAgICAgY29ubmVj
dCh0aGlzLCBTSUdOQUwoZ2VvbWV0cnlDaGFuZ2VSZXF1ZXN0ZWQoY29uc3QgUVJlY3QgJikpLApA
QCAtMTUyLDYgKzE1MSw3IEBAIER1bXBSZW5kZXJUcmVlOjpEdW1wUmVuZGVyVHJlZSgpCiAgICAg
LCBtX25vdGlmaWVyKDApCiB7CiAgICAgcXRfZHJ0X292ZXJ3cml0ZVBsdWdpbkRpcmVjdG9yaWVz
KCk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5lbmFibGVQZXJzaXN0ZW50
U3RvcmFnZSgpOwogCiAgICAgbV9jb250cm9sbGVyID0gbmV3IExheW91dFRlc3RDb250cm9sbGVy
KHRoaXMpOwogICAgIGNvbm5lY3QobV9jb250cm9sbGVyLCBTSUdOQUwoZG9uZSgpKSwgdGhpcywg
U0xPVChkdW1wKCkpKTsK
</data>
<flag name="review"
          id="20023"
          type_id="1"
          status="-"
          setter="ariya.hidayat"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39090</attachid>
            <date>2009-09-04 14:15:50 -0700</date>
            <delta_ts>2009-09-08 06:29:06 -0700</delta_ts>
            <desc>3rd. try</desc>
            <filename>patch_28682.txt</filename>
            <type>text/plain</type>
            <size>12503</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNDgwMzcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMDktMDQgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUXRXZWJLaXQgc2luZ2xlIEFQSSB0byBlbmFibGUgcGVyc2lzdGVu
Y3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4Njgy
CisKKyAgICAgICAgRGlzYWJsZSBMb2NhbFN0b3JhZ2UsIEFwcGxpY2F0aW9uQ2FjaGUsIEhUTUw1
IG9mZmxpbmUgc3RvcmFnZSBieQorICAgICAgICBkZWZhdWx0LgorCisgICAgICAgIElmIHBlcnNp
c3RlbmN5IGlzIGVuYWJsZWQgdGhlIGRlZmF1bHQgZGlyZWN0b3J5IGZvciBMb2NhbFN0b3JhZ2Ug
YW5kCisgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUgaXMgbm93IGJhc2VkIG9uIFFEZXNrdG9wU2Vy
dmljZXM6OkRhdGFMb2NhdGlvbiBhbmQgbm90CisgICAgICAgIFFEZXNrdG9wU2VydmljZXM6OkNh
Y2hlTG9jYXRpb24gKGFzIGl0IGlzIGV4cGVjdGVkIHRvIGtlZXAgdGhpcyBkYXRhCisgICAgICAg
IGFyb3VuZCBhZnRlciBhIHJlYm9vdCkuCisKKyAgICAgICAgSWYgcGVyc2lzdGVuY3kgaXMgZW5h
YmxlZCBpbml0aWFsaXplIEhUTUw1IG9mZmxpbmUgc3RvcmFnZSBhcyB3ZWxsIC0gdGhpcworICAg
ICAgICBmaXhlZCBvZmZsaW5lIFN0b3JhZ2UgZm9yIFF0TGF1bmNoZXIuCisKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZh
dGUpOgorICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAoUVdlYlNldHRp
bmdzOjpRV2ViU2V0dGluZ3MpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0
ZW50U3RvcmFnZSk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5oOiBBZGQgYSBuZXcgQVBJ
IGNhbGxlZCBlbmFibGVQZXJzaXN0ZW50U3RvcmFnZQorICAgICAgICAqIFF0TGF1bmNoZXIvbWFp
bi5jcHA6IFVzZSB0aGUgbmV3IGVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlIEFQSQorICAgICAgICAo
bWFpbik6CisKIDIwMDktMDktMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBlcmljQHdlYmtpdC5vcmcuCkluZGV4OiBXZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAko
cmV2aXNpb24gNDgwMjQpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzYsNyArNzYsNiBAQAogI2luY2x1ZGUgPFFCYXNpY1RpbWVyPgogI2luY2x1ZGUg
PFFCaXRBcnJheT4KICNpbmNsdWRlIDxRRGVidWc+Ci0jaW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNl
cz4KICNpbmNsdWRlIDxRRHJhZ0VudGVyRXZlbnQ+CiAjaW5jbHVkZSA8UURyYWdMZWF2ZUV2ZW50
PgogI2luY2x1ZGUgPFFEcmFnTW92ZUV2ZW50PgpAQCAtMjY1LDM3ICsyNjQsNiBAQCBzdGF0aWMg
aW5saW5lIFF0OjpEcm9wQWN0aW9uIGRyYWdPcFRvRHJvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotc3RhdGljIFFTdHJpbmcgZGVmYXVsdENhY2hlUGF0aCgpCi17Ci0gICAgLy8gRGV0ZXJtaW5l
IHRoZSBkZWZhdWx0IGNhY2hlIGxvY2F0aW9uCi0gICAgUVN0cmluZyBjYWNoZVBhdGg7Ci0gICAg
Ci0jaWYgUVRfVkVSU0lPTiA+PSAweDA0MDUwMAotICAgIGNhY2hlUGF0aCA9IFFEZXNrdG9wU2Vy
dmljZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3RvcFNlcnZpY2VzOjpDYWNoZUxvY2F0aW9uKTsK
LSNlbHNlCi0gICAgY2FjaGVQYXRoID0gUURlc2t0b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9u
KFFEZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlvbik7Ci0jZW5kaWYKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCi0gICAgaWYgKGNhY2hlUGF0aC5pc0VtcHR5KCkpCi0gICAgICAg
IGNhY2hlUGF0aCA9IFFEaXI6OmhvbWVQYXRoKCkgKyBRTGF0aW4xU3RyaW5nKCIvLiIpICsgUUNv
cmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCk7Ci0gICAgICAgIAotICAgcmV0dXJuIGNh
Y2hlUGF0aDsKLX0KLQotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUFwcGxpY2F0aW9uQ2FjaGVQYXRo
SWZOZWNlc3NhcnkoKQotewotCi0gICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsK
LSAgICAKLSAgICBpZiAoaW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFNl
dCBIVE1MNSBBcHBsaWNhdGlvbiBDYWNoZSBkZWZhdWx0IGxvY2F0aW9uCi0gICAgUVdlYlNldHRp
bmdzOjpzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGgoZGVmYXVsdENhY2hlUGF0aCgp
KTsKLSAgICAKLSAgICBpbml0aWFsaXplZCA9IHRydWU7Ci19ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0KIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQ
cml2YXRlKFFXZWJQYWdlICpxcSkKICAgICA6IHEocXEpCiAgICAgLCB2aWV3KDApCkBAIC0zMDQs
NyArMjcyLDYgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZwogICAg
IFdlYkNvcmU6OkluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSgpOwogICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzZXRM
b2NhbExvYWRQb2xpY3koV2ViQ29yZTo6RnJhbWVMb2FkZXI6OkFsbG93TG9jYWxMb2Fkc0Zvckxv
Y2FsQW5kU3Vic3RpdHV0ZURhdGEpOwotICAgIGluaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlUGF0
aElmTmVjZXNzYXJ5KCk7CiAKICAgICBjaHJvbWVDbGllbnQgPSBuZXcgQ2hyb21lQ2xpZW50UXQo
cSk7CiAgICAgY29udGV4dE1lbnVDbGllbnQgPSBuZXcgQ29udGV4dE1lbnVDbGllbnRRdCgpOwpA
QCAtMzE2LDkgKzI4Myw2IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQ
YWcKICAgICBwYWdlLT5zZXR0aW5ncygpLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgiaXNv
LTg4NTktMSIpOwogCiAgICAgc2V0dGluZ3MgPSBuZXcgUVdlYlNldHRpbmdzKHBhZ2UtPnNldHRp
bmdzKCkpOwotICAgIAotICAgIC8vIFNldCBIVE1MNSBsb2NhbFN0b3JhZ2UgZGVmYXVsdCBsb2Nh
dGlvbgotICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VQYXRoKFdlYkNvcmU6OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudChkZWZhdWx0Q2FjaGVQYXRoKCksICJMb2NhbFN0b3JhZ2UiKSk7CiAK
ICNpZm5kZWYgUVRfTk9fVU5ET1NUQUNLCiAgICAgdW5kb1N0YWNrID0gMDsKSW5kZXg6IFdlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5jcHAJKHJldmlzaW9uIDQ4MDI0KQorKysgV2ViS2l0L3F0L0FwaS9xd2Vic2V0
dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNywxMSBAQAogI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUg
IkRhdGFiYXNlVHJhY2tlci5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKIAorI2luY2x1ZGUg
PFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGVza3RvcFNlcnZpY2VzPgorI2luY2x1ZGUgPFFE
aXI+CiAjaW5jbHVkZSA8UUhhc2g+CiAjaW5jbHVkZSA8UVNoYXJlZERhdGE+CiAjaW5jbHVkZSA8
UVVybD4KQEAgLTMzMCw5ICszMzQsOSBAQCBRV2ViU2V0dGluZ3MqIFFXZWJTZXR0aW5nczo6Z2xv
YmFsU2V0dGluCiAgICAgXHZhbHVlIFByaW50RWxlbWVudEJhY2tncm91bmRzIFNwZWNpZmllcyB3
aGV0aGVyIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBpbWFnZXMKICAgICAgICAgYXJlIGFsc28g
ZHJhd24gd2hlbiB0aGUgcGFnZSBpcyBwcmludGVkLgogICAgIFx2YWx1ZSBPZmZsaW5lU3RvcmFn
ZURhdGFiYXNlRW5hYmxlZCBTcGVjaWZpZXMgd2hldGhlciBzdXBwb3J0IGZvciB0aGUgSFRNTCA1
Ci0gICAgICAgIG9mZmxpbmUgc3RvcmFnZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90LgorICAg
ICAgICBvZmZsaW5lIHN0b3JhZ2UgZmVhdHVyZSBpcyBlbmFibGVkIG9yIG5vdC4gRGlzYWJsZWQg
YnkgZGVmYXVsdC4KICAgICBcdmFsdWUgT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVk
IFNwZWNpZmllcyB3aGV0aGVyIHN1cHBvcnQgZm9yIHRoZSBIVE1MIDUKLSAgICAgICAgd2ViIGFw
cGxpY2F0aW9uIGNhY2hlIGZlYXR1cmUgaXMgZW5hYmxlZCBvciBub3QuCisgICAgICAgIHdlYiBh
cHBsaWNhdGlvbiBjYWNoZSBmZWF0dXJlIGlzIGVuYWJsZWQgb3Igbm90LiBEaXNhYmxlZCBieSBk
ZWZhdWx0LgogICAgIFx2YWx1ZSBMb2NhbFN0b3JhZ2VFbmFibGVkIFNwZWNpZmllcyB3aGV0aGVy
IHN1cHBvcnQgZm9yIHRoZSBIVE1MIDUKICAgICAgICAgbG9jYWwgc3RvcmFnZSBmZWF0dXJlIGlz
IGVuYWJsZWQgb3Igbm90LiBEaXNhYmxlZCBieSBkZWZhdWx0LgogICAgIFx2YWx1ZSBMb2NhbENv
bnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzIFNwZWNpZmllcyB3aGV0aGVyIGxvY2FsbHkgbG9hZGVk
IGRvY3VtZW50cyBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgcmVtb3RlIHVybHMuCkBAIC0zNjQsOCAr
MzY4LDggQEAgUVdlYlNldHRpbmdzOjpRV2ViU2V0dGluZ3MoKQogICAgIGQtPmF0dHJpYnV0ZXMu
aW5zZXJ0KFFXZWJTZXR0aW5nczo6TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbiwgdHJ1ZSk7CiAg
ICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpab29tVGV4dE9ubHksIGZhbHNl
KTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OlByaW50RWxlbWVudEJh
Y2tncm91bmRzLCB0cnVlKTsKLSAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6
Ok9mZmxpbmVTdG9yYWdlRGF0YWJhc2VFbmFibGVkLCB0cnVlKTsKLSAgICBkLT5hdHRyaWJ1dGVz
Lmluc2VydChRV2ViU2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwg
dHJ1ZSk7CisgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpPZmZsaW5lU3Rv
cmFnZURhdGFiYXNlRW5hYmxlZCwgZmFsc2UpOworICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFX
ZWJTZXR0aW5nczo6T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkLCBmYWxzZSk7CiAg
ICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VFbmFibGVk
LCBmYWxzZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpMb2NhbENv
bnRlbnRDYW5BY2Nlc3NSZW1vdGVVcmxzLCBmYWxzZSk7CiAgICAgZC0+YXR0cmlidXRlcy5pbnNl
cnQoUVdlYlNldHRpbmdzOjpTZXNzaW9uU3RvcmFnZUVuYWJsZWQsIHRydWUpOwpAQCAtOTA0LDEw
ICs5MDgsNiBAQCB2b2lkIFFXZWJTZXR0aW5nczo6c2V0TG9jYWxTdG9yYWdlUGF0aChjCiAKICAg
ICBSZXR1cm5zIHRoZSBwYXRoIGZvciBIVE1MNSBsb2NhbCBzdG9yYWdlLgogICAgIAotICAgIFRo
ZSBwYXRoIGlzIGluaXRpYWxpemVkIHRvIGEgZGlyZWN0b3J5IGNhbGxlZCBMb2NhbFN0b3JhZ2Ug
dW5kZXIKLSAgICB0aGUgdXNlci1zcGVjaWZpYyBjYWNoZSBkYXRhIGxvY2F0aW9uIHNwZWNpZmll
ZCBieQotICAgIFxse1FEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRpb259e0NhY2hlTG9jYXRp
b259LgotICAgIAogICAgIFxzYSBzZXRMb2NhbFN0b3JhZ2VQYXRoKCkKICovCiBRU3RyaW5nIFFX
ZWJTZXR0aW5nczo6bG9jYWxTdG9yYWdlUGF0aCgpIGNvbnN0CkBAIC05MTYsNiArOTE2LDQwIEBA
IFFTdHJpbmcgUVdlYlNldHRpbmdzOjpsb2NhbFN0b3JhZ2VQYXRoKCkKIH0KIAogLyohCisgICAg
XHNpbmNlIDQuNgorICAgIFxyZWxhdGVzIFFXZWJTZXR0aW5ncworCisgICAgRW5hYmxlcyBXZWJL
aXQgcGVyc2lzdGVudCBkYXRhIGFuZCBzZXRzIHRoZSBwYXRoIHRvIFxhIHBhdGguCisgICAgSWYg
dGhlIFxhIHBhdGggaXMgZW1wdHkgdGhlIHBhdGggZm9yIHBlcnNpc3RlbnQgZGF0YSBpcyBzZXQg
dG8gdGhlIAorICAgIHVzZXItc3BlY2lmaWMgZGF0YSBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgCisg
ICAgXGx7UURlc2t0b3BTZXJ2aWNlczo6RGF0YUxvY2F0aW9ufXtEYXRhTG9jYXRpb259LgorICAg
IAorICAgIFxzYSBsb2NhbFN0b3JhZ2VQYXRoKCkKKyovCit2b2lkIFFXZWJTZXR0aW5nczo6ZW5h
YmxlUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgUVN0cmluZyYgcGF0aCkKK3sKKyAgICBRU3RyaW5n
IHN0b3JhZ2VQYXRoOworCisgICAgaWYgKHBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIHN0b3Jh
Z2VQYXRoID0gUURlc2t0b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2Vydmlj
ZXM6OkRhdGFMb2NhdGlvbik7CisKKyAgICAgICAgaWYgKHN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHN0b3JhZ2VQYXRoID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KFFEaXI6OmhvbWVQYXRoKCksIFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RvcmFnZVBhdGggPSBwYXRoOworCisgICAgV2ViQ29y
ZTo6bWFrZUFsbERpcmVjdG9yaWVzKHN0b3JhZ2VQYXRoKTsKKworICAgIFFXZWJTZXR0aW5nczo6
c2V0SWNvbkRhdGFiYXNlUGF0aChzdG9yYWdlUGF0aCk7CisgICAgUVdlYlNldHRpbmdzOjpzZXRP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGgoc3RvcmFnZVBhdGgpOworICAgIFFXZWJTZXR0
aW5nczo6c2V0T2ZmbGluZVN0b3JhZ2VQYXRoKFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChzdG9yYWdlUGF0aCwgIkRhdGFiYXNlcyIpKTsKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2Jh
bFNldHRpbmdzKCktPnNldExvY2FsU3RvcmFnZVBhdGgoV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHN0b3JhZ2VQYXRoLCAiTG9jYWxTdG9yYWdlIikpOworICAgIFFXZWJTZXR0aW5n
czo6Z2xvYmFsU2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6TG9jYWxTdG9y
YWdlRW5hYmxlZCwgdHJ1ZSk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5z
ZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpPZmZsaW5lU3RvcmFnZURhdGFiYXNlRW5hYmxlZCwg
dHJ1ZSk7CisgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUo
UVdlYlNldHRpbmdzOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsIHRydWUpOwor
fQorCisvKiEKICAgICBcZm4gUVdlYlNldHRpbmdzUHJpdmF0ZSogUVdlYlNldHRpbmdzOjpoYW5k
bGUoKSBjb25zdAogICAgIFxpbnRlcm5hbAogKi8KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnNl
dHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAkocmV2
aXNpb24gNDgwMjQpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzIsNiArMTMyLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJN
ZW1vcnlDYWNoZXMoKTsKIAorICAgIHN0YXRpYyB2b2lkIGVuYWJsZVBlcnNpc3RlbnRTdG9yYWdl
KGNvbnN0IFFTdHJpbmcmIHBhdGggPSBRU3RyaW5nKCkpOworCiAgICAgaW5saW5lIFFXZWJTZXR0
aW5nc1ByaXZhdGUqIGhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIGQ7IH0KIAogcHJpdmF0ZToKSW5k
ZXg6IFdlYktpdC9xdC9RdExhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9x
dC9RdExhdW5jaGVyL21haW4uY3BwCShyZXZpc2lvbiA0ODAyNCkKKysrIFdlYktpdC9xdC9RdExh
dW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsNyArNDQzLDcgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0
aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCwgdHJ1ZSk7
CiAgICAgUVdlYlNldHRpbmdzOjpnbG9iYWxTZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNl
dHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCB0cnVlKTsKLSAgICBRV2ViU2V0dGluZ3M6
Omdsb2JhbFNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFn
ZUVuYWJsZWQsIHRydWUpOworICAgIFFXZWJTZXR0aW5nczo6Z2xvYmFsU2V0dGluZ3MoKS0+ZW5h
YmxlUGVyc2lzdGVudFN0b3JhZ2UoKTsKIAogICAgIGNvbnN0IFFTdHJpbmdMaXN0IGFyZ3MgPSBh
cHAuYXJndW1lbnRzKCk7CiAKSW5kZXg6IFdlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdl
YnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdl
YnBhZ2UuY3BwCShyZXZpc2lvbiA0ODAyNCkKKysrIFdlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDcgQEAgcHJpdmF0
ZSBzbG90czoKICAgICB2b2lkIHByb3RlY3RCaW5kaW5nc1J1bnRpbWVPYmplY3RzRnJvbUNvbGxl
Y3RvcigpOwogICAgIHZvaWQgbG9jYWxVUkxTY2hlbWVzKCk7CiAgICAgdm9pZCB0ZXN0T3B0aW9u
YWxKU09iamVjdHMoKTsKKyAgICB2b2lkIHRlc3RFbmFibGVQZXJzaXN0ZW50U3RvcmFnZSgpOwog
CiBwcml2YXRlOgogCkBAIC0xMjQ1LDUgKzEyNDYsMjkgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OnRl
c3RPcHRpb25hbEpTT2JqZWN0cwogICAgIFFDT01QQVJFKHRlc3RGbGFnKHdlYlBhZ2UyLCBRV2Vi
U2V0dGluZ3M6OlNlc3Npb25TdG9yYWdlRW5hYmxlZCwgInNlc3Npb25TdG9yYWdlIiwgZmFsc2Up
LCB0cnVlKTsKIH0KIAordm9pZCB0c3RfUVdlYlBhZ2U6OnRlc3RFbmFibGVQZXJzaXN0ZW50U3Rv
cmFnZSgpCit7CisgICAgUVdlYlBhZ2Ugd2ViUGFnZTsKKworICAgIC8vIEJ5IGRlZmF1bHQgYWxs
IHBlcnNpc3RlbnQgb3B0aW9ucyBzaG91bGQgYmUgZGlzYWJsZWQKKyAgICBRQ09NUEFSRSh3ZWJQ
YWdlLnNldHRpbmdzKCktPnRlc3RBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpMb2NhbFN0b3JhZ2VF
bmFibGVkKSwgZmFsc2UpOworICAgIFFDT01QQVJFKHdlYlBhZ2Uuc2V0dGluZ3MoKS0+dGVzdEF0
dHJpYnV0ZShRV2ViU2V0dGluZ3M6Ok9mZmxpbmVTdG9yYWdlRGF0YWJhc2VFbmFibGVkKSwgZmFs
c2UpOworICAgIFFDT01QQVJFKHdlYlBhZ2Uuc2V0dGluZ3MoKS0+dGVzdEF0dHJpYnV0ZShRV2Vi
U2V0dGluZ3M6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCksIGZhbHNlKTsKKyAg
ICBRVkVSSUZZKHdlYlBhZ2Uuc2V0dGluZ3MoKS0+aWNvbkRhdGFiYXNlUGF0aCgpLmlzRW1wdHko
KSk7CisKKyAgICBRV2ViU2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKCk7CisKKyAg
ICAvLyBHaXZlIGl0IHNvbWUgdGltZSB0byBpbml0aWFsaXplIC0gaWNvbiBkYXRhYmFzZSBuZWVk
cyBpdAorICAgIFFUZXN0OjpxV2FpdCgxMDAwKTsKKworICAgIFFDT01QQVJFKHdlYlBhZ2Uuc2V0
dGluZ3MoKS0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkxvY2FsU3RvcmFnZUVuYWJsZWQp
LCB0cnVlKTsKKyAgICBRQ09NUEFSRSh3ZWJQYWdlLnNldHRpbmdzKCktPnRlc3RBdHRyaWJ1dGUo
UVdlYlNldHRpbmdzOjpPZmZsaW5lU3RvcmFnZURhdGFiYXNlRW5hYmxlZCksIHRydWUpOworICAg
IFFDT01QQVJFKHdlYlBhZ2Uuc2V0dGluZ3MoKS0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6
Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCksIHRydWUpOworCisgICAgUVZFUklG
WSghd2ViUGFnZS5zZXR0aW5ncygpLT5vZmZsaW5lU3RvcmFnZVBhdGgoKS5pc0VtcHR5KCkpOwor
ICAgIFFWRVJJRlkoIXdlYlBhZ2Uuc2V0dGluZ3MoKS0+b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVQYXRoKCkuaXNFbXB0eSgpKTsKKyAgICBRVkVSSUZZKCF3ZWJQYWdlLnNldHRpbmdzKCktPmlj
b25EYXRhYmFzZVBhdGgoKS5pc0VtcHR5KCkpOworfQorCiBRVEVTVF9NQUlOKHRzdF9RV2ViUGFn
ZSkKICNpbmNsdWRlICJ0c3RfcXdlYnBhZ2UubW9jIgpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwMjcp
CisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAwOS0wOS0wNCAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBR
dFdlYktpdCBzaW5nbGUgQVBJIHRvIGVuYWJsZSBwZXJzaXN0ZW5jeQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODIKKworICAgICAgICBVc2UgdGhl
IG5ldyBlbmFibGVQZXJzaXN0ZW50U3RvcmFnZSBBUEkgaW5zdGVhZCAKKyAgICAgICAgb2YgZW5h
YmxpbmcgYWxsIHBlcnNpc3RlbnQgZmVhdHVyZXMgb25lLWJ5LW9uZS4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6OkR1bXBS
ZW5kZXJUcmVlKToKKwogMjAwOS0wOS0wMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzI4ODgwPiBzdm4tYXBwbHkgLS1m
b3JjZSBkb2Vzbid0IGFjdHVhbGx5IHdvcmsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5jcHAJKHJldmlzaW9uIDQ4MDI0KQorKysgV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDksNyArMTA5LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShRV2lkZ2V0ICpwYXJlbnQs
IER1bXBSZQogICAgIHNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFz
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIHRydWUpOwogICAgIHNldHRpbmdzKCktPnNldEF0dHJp
YnV0ZShRV2ViU2V0dGluZ3M6OkxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4sIGZhbHNlKTsKICAg
ICBzZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpQbHVnaW5zRW5hYmxlZCwg
dHJ1ZSk7Ci0gICAgc2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6TG9jYWxT
dG9yYWdlRW5hYmxlZCwgdHJ1ZSk7CiAgICAgc2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJT
ZXR0aW5nczo6TG9jYWxDb250ZW50Q2FuQWNjZXNzUmVtb3RlVXJscywgdHJ1ZSk7CiAKICAgICBj
b25uZWN0KHRoaXMsIFNJR05BTChnZW9tZXRyeUNoYW5nZVJlcXVlc3RlZChjb25zdCBRUmVjdCAm
KSksCkBAIC0xNTIsNiArMTUxLDcgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKCkK
ICAgICAsIG1fbm90aWZpZXIoMCkKIHsKICAgICBxdF9kcnRfb3ZlcndyaXRlUGx1Z2luRGlyZWN0
b3JpZXMoKTsKKyAgICBRV2ViU2V0dGluZ3M6Omdsb2JhbFNldHRpbmdzKCktPmVuYWJsZVBlcnNp
c3RlbnRTdG9yYWdlKCk7CiAKICAgICBtX2NvbnRyb2xsZXIgPSBuZXcgTGF5b3V0VGVzdENvbnRy
b2xsZXIodGhpcyk7CiAgICAgY29ubmVjdChtX2NvbnRyb2xsZXIsIFNJR05BTChkb25lKCkpLCB0
aGlzLCBTTE9UKGR1bXAoKSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>