<?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>44734</bug_id>
          
          <creation_ts>2010-08-26 16:58:40 -0700</creation_ts>
          <short_desc>Add LocalFileSystem.requestFileSystem interface to DOMWindow</short_desc>
          <delta_ts>2010-08-31 20:27:21 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42903</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dumi</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>jianli</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>270220</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-26 16:58:40 -0700</bug_when>
    <thetext>DOMWindow needs to expose LocalFileSystem.requestFileSystem interface if FileSystem API is enabled.
http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#widl-LocalFileSystem-requestFileSystem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270839</commentid>
    <comment_count>1</comment_count>
      <attachid>65794</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-27 17:13:20 -0700</bug_when>
    <thetext>Created attachment 65794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270936</commentid>
    <comment_count>2</comment_count>
      <attachid>65794</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-08-27 23:26:24 -0700</bug_when>
    <thetext>Comment on attachment 65794
Patch

WebCore/page/DOMWindow.cpp:740
 +          errorCallback-&gt;handleEvent(FileError::create(INVALID_STATE_ERR).get());
i asked this question on the other code review, but shouldn&apos;t these dom events be
dispatched asynchronously?  otherwise, we end up nesting JS -&gt; C++ -&gt; JS calls,
which is never a great thing to do.  does the spec say anything about this?  it
seems like it would be nice to always dispatch callbacks asynchronously for
consistency.

WebCore/page/DOMWindow.cpp:759
 +  #define COMPILE_ASSERT_MATCHING_ENUM(domwindowname, asyncfsname) \
since there are only two enum values being compared here, it might not be worth defining the macro:

  COMPILE_ASSERT(int(DOMWindow::TEMPORARY) == int(AsyncFileSystem::Temporary), enum_mismatch);
  COMPILE_ASSERT(int(DOMWindow::PERSISTENT) == int(AsyncFileSystem::Persistent), enum_mismatch);

WebCore/page/Settings.h:243
 +  #if ENABLE(FILE_SYSTEM)
i don&apos;t know that this setting needs to be protected by the ifdef.
afterall, localStorageDatabasePath is not protected by ENABLE(DOM_STORAGE).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271111</commentid>
    <comment_count>3</comment_count>
      <attachid>65846</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-28 21:32:55 -0700</bug_when>
    <thetext>Created attachment 65846
Patch

This change depends on the the other change for bug 44732</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271112</commentid>
    <comment_count>4</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-28 21:33:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 65794 [details])
&gt; WebCore/page/DOMWindow.cpp:740
&gt;  +          errorCallback-&gt;handleEvent(FileError::create(INVALID_STATE_ERR).get());
&gt; i asked this question on the other code review, but shouldn&apos;t these dom events be
&gt; dispatched asynchronously?  otherwise, we end up nesting JS -&gt; C++ -&gt; JS calls,
&gt; which is never a great thing to do.  does the spec say anything about this?  it
&gt; seems like it would be nice to always dispatch callbacks asynchronously for
&gt; consistency.

Fixed.  (The fix depends on the other change for bug 44732)

&gt; WebCore/page/DOMWindow.cpp:759
&gt;  +  #define COMPILE_ASSERT_MATCHING_ENUM(domwindowname, asyncfsname) \
&gt; since there are only two enum values being compared here, it might not be worth defining the macro:

Fixed.

&gt; WebCore/page/Settings.h:243
&gt;  +  #if ENABLE(FILE_SYSTEM)
&gt; i don&apos;t know that this setting needs to be protected by the ifdef.
&gt; afterall, localStorageDatabasePath is not protected by ENABLE(DOM_STORAGE).

Removed the ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272321</commentid>
    <comment_count>5</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 13:32:39 -0700</bug_when>
    <thetext>Could someone review this one?  Thanks,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272338</commentid>
    <comment_count>6</comment_count>
      <attachid>65846</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-31 13:53:50 -0700</bug_when>
    <thetext>Comment on attachment 65846
Patch

&gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:141
&gt; +    static bool requestFileSystemEnabled() { return isFileSystemEnabled; }
Why do we need requestFileSystemEnabled? What&apos;s the difference between fileSystemEnabled and requestFileSystemEnabled?

&gt; WebCore/page/DOMWindow.h:83
&gt; +#if ENABLE(FILE_SYSTEM)
Normally we do not need to guard this.

&gt; WebCore/page/DOMWindow.h:86
&gt; +    class ErrorCallback;
Please sort these.

&gt; WebCore/page/Settings.h:244
&gt; +        const String&amp; fileSystemRootPath() const { return m_fileSystemRootPath; }
Do you need to guard these?

&gt; WebKit/chromium/ChangeLog:15
&gt; +2010-08-27  Kinuko Yasuda  &lt;kinuko@chromium.org&gt;
Why do you produce 2 ChangeLog entries?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272409</commentid>
    <comment_count>7</comment_count>
      <attachid>66117</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 14:54:43 -0700</bug_when>
    <thetext>Created attachment 66117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272419</commentid>
    <comment_count>8</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 15:02:11 -0700</bug_when>
    <thetext>Thanks!

(In reply to comment #6)
&gt; (From update of attachment 65846 [details])
&gt; &gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:141
&gt; &gt; +    static bool requestFileSystemEnabled() { return isFileSystemEnabled; }
&gt; Why do we need requestFileSystemEnabled? What&apos;s the difference between fileSystemEnabled and requestFileSystemEnabled?

We need someIdlNameEnabled() method to dynamically enable someIdlName at the binding time.  I basically followed what the other code does here (have one boolean flag for the feature and associate the flag with multiple methods - though for now we have only one method associated with the flag).

&gt; &gt; WebCore/page/DOMWindow.h:83
&gt; &gt; +#if ENABLE(FILE_SYSTEM)
&gt; Normally we do not need to guard this.

Removed.

&gt; &gt; WebCore/page/DOMWindow.h:86
&gt; &gt; +    class ErrorCallback;
&gt; Please sort these.

Fixed.

&gt; &gt; WebCore/page/Settings.h:244
&gt; &gt; +        const String&amp; fileSystemRootPath() const { return m_fileSystemRootPath; }
&gt; Do you need to guard these?

Darin suggested that we may not need the ifdefs here.

&gt; &gt; WebKit/chromium/ChangeLog:15
&gt; &gt; +2010-08-27  Kinuko Yasuda  &lt;kinuko@chromium.org&gt;
&gt; Why do you produce 2 ChangeLog entries?

Mistake... fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272422</commentid>
    <comment_count>9</comment_count>
      <attachid>66121</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 15:04:41 -0700</bug_when>
    <thetext>Created attachment 66121
Patch

Fixed ChangeLog date</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272470</commentid>
    <comment_count>10</comment_count>
      <attachid>66121</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-31 16:22:21 -0700</bug_when>
    <thetext>Comment on attachment 66121
Patch

&gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:141
&gt; +    static bool requestFileSystemEnabled() { return isFileSystemEnabled; }
I still don&apos;t understand your comment. requestFileSystemEnabled() seems to be identical to fileSystemEnabled(). By looking into the name, I do not know what requestFileSystemEnabled is used for.

&gt; WebCore/page/DOMWindow.cpp:742
&gt; +    if (!document) {
Can this check be moved to the beginning of this method? That is, can we still call m_localFileSystem-&gt;requestFileSystem if document is gone?

&gt; WebCore/page/DOMWindow.cpp:759
&gt; +    m_localFileSystem-&gt;requestFileSystem(document, static_cast&lt;AsyncFileSystem::Type&gt;(type), size, successCallback, errorCallback);
This could be merged with the first call of &quot;m_localFileSystem-&gt;requestFileSystem&quot;, like:
    if (!m_localFileSystem) {
       // Create m_localFileSystem
       ...
    }
    m_localFileSystem-&gt;requestFileSystem(document, static_cast&lt;AsyncFileSystem::Type&gt;(type), size, successCallback, errorCallback);

&gt; WebCore/page/DOMWindow.h:86
&gt; +    class LocalFileSystem;
Please move all these forward declarations to the right place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272474</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-31 16:25:15 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 66121 [details])
&gt; &gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:141
&gt; &gt; +    static bool requestFileSystemEnabled() { return isFileSystemEnabled; }
&gt; I still don&apos;t understand your comment. requestFileSystemEnabled() seems to be identical to fileSystemEnabled(). By looking into the name, I do not know what requestFileSystemEnabled is used for.

This is a function of how runtime enablement works in the v8 bindings layer. The IDL compiler generates c++ code with a particular signature based on the name of the attribute/method that is tagged as being [EnabledAtRuntime].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272496</commentid>
    <comment_count>12</comment_count>
      <attachid>66139</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 16:43:40 -0700</bug_when>
    <thetext>Created attachment 66139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272515</commentid>
    <comment_count>13</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 17:05:16 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 66121 [details])
&gt; &gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:141
&gt; &gt; +    static bool requestFileSystemEnabled() { return isFileSystemEnabled; }
&gt; I still don&apos;t understand your comment. requestFileSystemEnabled() seems to be identical to fileSystemEnabled(). By looking into the name, I do not know what requestFileSystemEnabled is used for.

(I think Michael&apos;s comment is explaining things better...)

requestFileSystemEnabled() is there to dynamically enable requestFileSystem() interface defined in DOMWindow.idl annotated with [EnabledAtRuntime].   fileSystemEnabled() and isFileSystemEnabled() is supposed to be a flag for the entire feature and requestFileSystem is one of the feature&apos;s methods that needs to be exposed if the feature is enabled.

If we have more methods to be enabled at runtime for the feature (actually the FileSystem API defines one more DOMWindow method that hasn&apos;t been added yet) we&apos;ll have similar xxxEnabled() methods that will look identical to fileSystemEnabled(). 
(And again, I don&apos;t have strong opinion here and basically am trying to follow other code.)

&gt; &gt; WebCore/page/DOMWindow.cpp:742
&gt; &gt; +    if (!document) {
&gt; Can this check be moved to the beginning of this method? That is, can we still call m_localFileSystem-&gt;requestFileSystem if document is gone?

Do you mean we shouldn&apos;t call requestFileSystem if the document is gone?
That&apos;s true I moved the check to the beginning.

&gt; &gt; WebCore/page/DOMWindow.cpp:759
&gt; &gt; +    m_localFileSystem-&gt;requestFileSystem(document, static_cast&lt;AsyncFileSystem::Type&gt;(type), size, successCallback, errorCallback);
&gt; This could be merged with the first call of &quot;m_localFileSystem-&gt;requestFileSystem&quot;, like:

Fixed.
 
&gt; &gt; WebCore/page/DOMWindow.h:86
&gt; &gt; +    class LocalFileSystem;
&gt; Please move all these forward declarations to the right place.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272541</commentid>
    <comment_count>14</comment_count>
      <attachid>66139</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-31 17:56:19 -0700</bug_when>
    <thetext>Comment on attachment 66139
Patch

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

&gt; WebCore/page/DOMWindow.cpp:738
&gt; +        // No context?  Not firing the errorCallback.
I do not think we need to add any comment here, like what we do in other DOMWindow method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272610</commentid>
    <comment_count>15</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-31 20:27:21 -0700</bug_when>
    <thetext>Committed r66570: &lt;http://trac.webkit.org/changeset/66570&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65794</attachid>
            <date>2010-08-27 17:13:20 -0700</date>
            <delta_ts>2010-08-28 21:32:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44734-20100827171319.patch</filename>
            <type>text/plain</type>
            <size>11701</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDUyMjM5ZDhjZTM3ZWU1MGQ3MzAyZmU1YWM4OTRkZTgwNzdjM2UxNC4uZWIyYTAzMGZkNzNkYjc5
MDJjNWZkZmVjM2ExMjEwYTA0NzFkZDZkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOC0yNyAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExvY2FsRmlsZVN5c3RlbS5yZXF1ZXN0Rmls
ZVN5c3RlbSBpbnRlcmZhY2UgdG8gRE9NV2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczNAorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGVz
dHMgd2lsbCBiZSBhZGRlZCBsYXRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRGaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXF1ZXN0RmlsZVN5c3RlbUVuYWJsZWQpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVx
dWVzdEZpbGVTeXN0ZW0pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNl
dEZpbGVTeXN0ZW1Sb290UGF0aCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OmZpbGVTeXN0ZW1Sb290UGF0aCk6CisKIDIwMTAtMDgtMjcg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBl
ZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCA2NmRlMGY5YjY1OTZhYzk2NjQ5YmY2OTBiNmFm
YjliY2NlMWMzMDU4Li5hMTVmZDZkMDgwMmZiZWVmMTEwOWZjYTljOWQzYjJmM2QzMDIwYzA0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwCkBAIC01NSw2ICs1NSwxMCBAQCBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Omlz
U3BlZWNoSW5wdXRFbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
aXNYSFJSZXNwb25zZUJsb2JFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShG
SUxFX1NZU1RFTSkKK2Jvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNGaWxlU3lzdGVtRW5h
YmxlZCA9IGZhbHNlOworI2VuZGlmCisKICNpZiBFTkFCTEUoVklERU8pCiAKIGJvb2wgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6YXVkaW9FbmFibGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGNjNTUzNjQ1NjkzNzc4NjE1
Njk3YjM2MTE2MjkzMjg5YTA4MWRjMDMuLmZiNDNmM2Y3YjcwNTgzZGQ3YzQ5YTg4ZTVmNjI5NjQ2
OWY4MWMwMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaApAQCAtMTM1LDYgKzEzNSwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgYXNCbG9iRW5hYmxlZCgpICB7IHJldHVybiBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7IH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHN0YXRpYyBib29sIGZpbGVT
eXN0ZW1FbmFibGVkKCkgeyByZXR1cm4gaXNGaWxlU3lzdGVtRW5hYmxlZDsgfQorICAgIHN0YXRp
YyB2b2lkIHNldEZpbGVTeXN0ZW1FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IGlzRmlsZVN5c3Rl
bUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCByZXF1ZXN0RmlsZVN5c3Rl
bUVuYWJsZWQoKSB7IHJldHVybiBpc0ZpbGVTeXN0ZW1FbmFibGVkOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICAvLyBOZXZlciBpbnN0YW50aWF0ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzKCkgeyB9CkBAIC0xNTQsNiArMTYwLDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFhIUl9S
RVNQT05TRV9CTE9CKQogICAgIHN0YXRpYyBib29sIGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZDsK
ICNlbmRpZgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHN0YXRpYyBib29sIGlzRmls
ZVN5c3RlbUVuYWJsZWQ7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggYWY0M2E1NTBkMTQ2ZDBlZjM3MWQzYWJhMzhmZTZkN2QyYmE1MDI5MC4u
ZTRlNzI4MzRmYmUwNjQ4YjA4NmY5NTc1MzdiOGMxM2RlNWVhYzFjOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
QEAgLTg3LDYgKzg3LDE0IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisjaW5jbHVk
ZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRXJyb3JDYWxsYmFjay5oIgorI2luY2x1
ZGUgIkZpbGVFcnJvci5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxsYmFjay5oIgorI2luY2x1
ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgorI2VuZGlmCisKIHVzaW5nIHN0ZDo6bWluOwogdXNpbmcg
c3RkOjptYXg7CiAKQEAgLTcxOSw2ICs3MjcsNDIgQEAgSURCS2V5UmFuZ2UqIERPTVdpbmRvdzo6
aURCS2V5UmFuZ2UoKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0p
Cit2b2lkIERPTVdpbmRvdzo6cmVxdWVzdEZpbGVTeXN0ZW0oaW50IHR5cGUsIGxvbmcgbG9uZyBz
aXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNz
UmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgaWYgKG1fbG9jYWxG
aWxlU3lzdGVtKSB7CisgICAgICAgIG1fbG9jYWxGaWxlU3lzdGVtLT5yZXF1ZXN0RmlsZVN5c3Rl
bShkb2N1bWVudCgpLCBzdGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBz
aXplLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICBp
ZiAoIWRvY3VtZW50KSB7CisgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KEZpbGVF
cnJvcjo6Y3JlYXRlKElOVkFMSURfU1RBVEVfRVJSKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBGSVhNRTogU2VlIGlmIGFjY2VzcyBpcyBhbGxvd2VkLgorCisgICAg
UGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAg
IGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KEZpbGVFcnJvcjo6Y3JlYXRlKElOVkFMSURfU1RB
VEVfRVJSKS5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTog
R2V0IHRoZSBxdW90YSBzZXR0aW5ncyBhcyB3ZWxsLgorICAgIFN0cmluZyBwYXRoID0gcGFnZS0+
c2V0dGluZ3MoKS0+ZmlsZVN5c3RlbVJvb3RQYXRoKCk7CisgICAgbV9sb2NhbEZpbGVTeXN0ZW0g
PSBMb2NhbEZpbGVTeXN0ZW06OmNyZWF0ZShwYXRoKTsKKworICAgIG1fbG9jYWxGaWxlU3lzdGVt
LT5yZXF1ZXN0RmlsZVN5c3RlbShkb2N1bWVudCwgc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVt
OjpUeXBlPih0eXBlKSwgc2l6ZSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30K
KworI2RlZmluZSBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKGRvbXdpbmRvd25hbWUsIGFz
eW5jZnNuYW1lKSBcCisgICAgQ09NUElMRV9BU1NFUlQoaW50KERPTVdpbmRvdzo6ZG9td2luZG93
bmFtZSkgPT0gaW50KEFzeW5jRmlsZVN5c3RlbTo6YXN5bmNmc25hbWUpLCBET01XaW5kb3dBbmRB
c3luY0ZpbGVTeXN0ZW1NdXN0SGF2ZVNhbWVUeXBlVmFsdWVzXyMjYXN5bmNmc25hbWUpCitDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFRFTVBPUkFSWSwgVGVtcG9yYXJ5KTsKK0NPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oUEVSU0lTVEVOVCwgUGVyc2lzdGVudCk7CisKKyNlbmRpZgor
CiB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiBwb3J0LCBjb25zdCBTdHJpbmcmIHRhcmdldE9y
aWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIE1lc3Nh
Z2VQb3J0QXJyYXkgcG9ydHM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmgg
Yi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggOGQ1N2RjYzE0YmZmM2RjODVhNzc2OThh
YjcyN2Q0OGQ5M2MyNWRmOS4uNmMxMDg1NjcyMTkyZTZkZTY4Y2MxMGRkOGY4OTlkMWJjNjQ5MGZi
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaApAQCAtODAsNiArODAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIERPTUFwcGxpY2F0aW9uQ2FjaGU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZ
U1RFTSkKKyAgICBjbGFzcyBMb2NhbEZpbGVTeXN0ZW07CisgICAgY2xhc3MgRmlsZVN5c3RlbUNh
bGxiYWNrOworICAgIGNsYXNzIEVycm9yQ2FsbGJhY2s7CisjZW5kaWYKKwogICAgIHR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7CiAKICAgICBjbGFzcyBET01XaW5kb3cgOiBwdWJsaWMgUmVmQ291
bnRlZDxET01XaW5kb3c+LCBwdWJsaWMgRXZlbnRUYXJnZXQgewpAQCAtMjM2LDYgKzI0MiwxNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIElEQktleVJhbmdlKiBpREJLZXlSYW5nZSgp
IGNvbnN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgICAgIC8vIFRo
ZXkgYXJlIHBsYWNlZCBoZXJlIGFuZCBpbiBhbGwgY2FwaXRhbCBsZXR0ZXJzIHRvIGVuZm9yY2Ug
Y29tcGlsZS10aW1lIGVudW0gY2hlY2tpbmcuCisgICAgICAgIGVudW0gRmlsZVN5c3RlbVR5cGUg
eworICAgICAgICAgICAgVEVNUE9SQVJZLAorICAgICAgICAgICAgUEVSU0lTVEVOVCwKKyAgICAg
ICAgfTsKKyAgICAgICAgdm9pZCByZXF1ZXN0RmlsZVN5c3RlbShpbnQgdHlwZSwgbG9uZyBsb25n
IHNpemUsIFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNh
bGxiYWNrPik7CisjZW5kaWYKKwogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBjb25zdCBNZXNzYWdlUG9ydEFycmF5Kiwg
Y29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3aGVuIHdlIHVwZGF0ZSB0aGUg
T2JqQyBiaW5kaW5ncyAoYnVnICMyODc3NCkuCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiwgY29u
c3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2Rl
Jik7CkBAIC00MjgsNiArNDQzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBtdXRh
YmxlIFJlZlB0cjxJREJGYWN0b3J5PiBtX2lkYkZhY3Rvcnk7CiAgICAgICAgIG11dGFibGUgUmVm
UHRyPElEQktleVJhbmdlPiBtX2lkYktleVJhbmdlOwogI2VuZGlmCisjaWYgRU5BQkxFKEZJTEVf
U1lTVEVNKQorICAgICAgICBtdXRhYmxlIFJlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IG1fbG9jYWxG
aWxlU3lzdGVtOworI2VuZGlmCiAKICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJn
ZXREYXRhOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDE5YmNiZWU2ZWIyOWIxYWQzNmEzYTU4YTA4MDFm
N2YxNWI3NzBkOTYuLjY1OGRiNjgzZmQ3NThkNGU0NzMxNWYzYzM5NGY5OGU2NzM0M2IwNWIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCkBAIC0xNzYsNiArMTc2LDExIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZhY3RvcnkgaW5kZXhl
ZERCOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQktl
eVJhbmdlIElEQktleVJhbmdlOwogI2VuZGlmCisjaWYgZGVmaW5lZChFTkFCTEVfRklMRV9TWVNU
RU0pICYmIEVOQUJMRV9GSUxFX1NZU1RFTQorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBU
RU1QT1JBUlkgPSAwOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJTSVNURU5UID0g
MTsKKyAgICAgICAgW0VuYWJsZWRBdFJ1bnRpbWVdIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oaW4g
dW5zaWduZWQgc2hvcnQgdHlwZSwgaW4gbG9uZyBsb25nIHNpemUsIGluIFtDYWxsYmFjaywgT3B0
aW9uYWxdIEZpbGVTeXN0ZW1DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtDYWxsYmFjaywg
T3B0aW9uYWxdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisjZW5kaWYKIAogI2lmIGRl
ZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VW
RU5UUwogICAgICAgICAvLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24gaW4gZGVn
cmVlcy4gU29tZSBleGFtcGxlcyBhcmU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAxMGU2ZjNlN2ZmOGM4MjVi
ZmI3NzVjN2U5MDVmMWU3NjVlNmE2YzMzLi43MDA0N2VkZmJiN2Q0MDAyYjM1ZmFjYmMyNGY4Zjcw
NTcyOTU2Y2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTQ4Myw2ICs0ODMsMTMgQEAgdm9pZCBTZXR0aW5n
czo6c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICBt
X2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCA9IHBhdGg7CiB9CiAKKyNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCit2b2lkIFNldHRpbmdzOjpzZXRGaWxlU3lzdGVtUm9vdFBhdGgoY29uc3QgU3RyaW5n
JiBwYXRoKQoreworICAgIG1fZmlsZVN5c3RlbVJvb3RQYXRoID0gcGF0aDsKK30KKyNlbmRpZgor
CiB2b2lkIFNldHRpbmdzOjpzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCBtb2RlKQogewog
ICAgIG1faW5BcHBsaWNhdGlvbkNocm9tZU1vZGUgPSBtb2RlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA2OTNjYzU0
ZTUxMjlkYTYyODA3YTM2Y2RmNzQ3YjQ5ODE0YzE3ZjYwLi5lYTIwN2FkMTk1YjAxNTk3NjI3ZTQx
MGU3MGFmMTYxODk1NzU2ZmQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAor
KysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjM5LDcgKzIzOSwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgo
Y29uc3QgU3RyaW5nJik7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGF0YWJh
c2VQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg7IH0KLSAg
ICAgICAgCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgICAgIHZvaWQgc2V0RmlsZVN5
c3RlbVJvb3RQYXRoKGNvbnN0IFN0cmluZyYpOworICAgICAgICBjb25zdCBTdHJpbmcmIGZpbGVT
eXN0ZW1Sb290UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZVN5c3RlbVJvb3RQYXRoOyB9Cisj
ZW5kaWYKKwogICAgICAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZShib29sKTsKICAg
ICAgICAgYm9vbCBpbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5B
cHBsaWNhdGlvbkNocm9tZU1vZGU7IH0KIApAQCAtMzI4LDEwICszMzMsMTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGFnZSogbV9wYWdlOwotICAgICAg
ICAKKwogICAgICAgICBTdHJpbmcgbV9kZWZhdWx0VGV4dEVuY29kaW5nTmFtZTsKICAgICAgICAg
U3RyaW5nIG1fZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRoOwogICAgICAgICBTdHJpbmcgbV9sb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGg7CisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgICAgICBT
dHJpbmcgbV9maWxlU3lzdGVtUm9vdFBhdGg7CisjZW5kaWYKICAgICAgICAgS1VSTCBtX3VzZXJT
dHlsZVNoZWV0TG9jYXRpb247CiAgICAgICAgIEF0b21pY1N0cmluZyBtX3N0YW5kYXJkRm9udEZh
bWlseTsKICAgICAgICAgQXRvbWljU3RyaW5nIG1fZml4ZWRGb250RmFtaWx5OwpAQCAtNDEyLDcg
KzQyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgICAgICBib29sIG1fbWVt
b3J5SW5mb0VuYWJsZWQ6IDE7CiAgICAgICAgIGJvb2wgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0
aW9uOiAxOwotICAgIAorCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgc3RhdGljIGJv
b2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGE2
NGUxYTk4M2E3OTVlMWJhYzFmNWZhYjBhMzc3YzhiNzFlMmIwNzIuLjVmODYxYjAwOThkYjZhMzQ1
NmFmMzljMDU1MjJjMjlhYjJlYzRmZmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAy
MDEwLTA4LTI3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTG9jYWxGaWxlU3lz
dGVtLnJlcXVlc3RGaWxlU3lzdGVtIGludGVyZmFjZSB0byBET01XaW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzM0CisKKyAgICAgICAgKiBw
dWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmg6CisgICAgICAgICogc3JjL1dlYlJ1bnRpbWVGZWF0
dXJlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRmls
ZVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6aXNGaWxlU3lz
dGVtRW5hYmxlZCk6CisKKzIwMTAtMDgtMjcgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21p
dW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IER1bWl0cnUgRGFuaWxpdWMuCiAKICAgICAg
ICAgW2Nocm9taXVtXSBBZGQgY2hyb21pdW0tc2lkZSBvZiBBc3luY0ZpbGVTeXN0ZW0gaW1wbGVt
ZW50YXRpb24KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZl
YXR1cmVzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCmlu
ZGV4IGUyODI4NjRhODMyNTQ4MzJiMzI4ZjM2MTAyNzRhMmExMjExZTIxMDAuLjU1MzdlZTIxYjg2
ZjUwNDgzMzFlYTUyODljNDlmNWI5YjIxZmU5YzYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJSdW50aW1lRmVhdHVyZXMuaApAQCAtODksNiArODksOSBAQCBwdWJsaWM6CiAgICAgV0VC
S0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVYSFJSZXNwb25zZUJsb2IoYm9vbCk7CiAgICAgV0VC
S0lUX0FQSSBzdGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQoKTsKIAorICAgIFdF
QktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlRmlsZVN5c3RlbShib29sKTsKKyAgICBXRUJLSVRf
QVBJIHN0YXRpYyBib29sIGlzRmlsZVN5c3RlbUVuYWJsZWQoKTsKKwogcHJpdmF0ZToKICAgICBX
ZWJSdW50aW1lRmVhdHVyZXMoKTsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVG
ZWF0dXJlcy5jcHAKaW5kZXggOWUxZTRkZTAxNGE4OTUwNGIzN2ZmOWQ0NzkyOGFkZDU0ZTc3ZGMy
Yi4uMjI3OWVlYmQwZDMzYzRjNDM4MmUxN2JlMGJlNzA3MDUwNWVlZGM0ZiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcApAQCAtMjcyLDQgKzI3MiwyMCBAQCBi
b29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCkKICNlbmRp
ZgogfQogCit2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRmlsZVN5c3RlbShib29sIGVu
YWJsZSkKK3sKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2V0RmlsZVN5c3RlbUVuYWJsZWQoZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29sIFdl
YlJ1bnRpbWVGZWF0dXJlczo6aXNGaWxlU3lzdGVtRW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQorICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpmaWxlU3lzdGVt
RW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65846</attachid>
            <date>2010-08-28 21:32:55 -0700</date>
            <delta_ts>2010-08-31 14:54:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44734-20100828213254.patch</filename>
            <type>text/plain</type>
            <size>11882</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDUyMjM5ZDhjZTM3ZWU1MGQ3MzAyZmU1YWM4OTRkZTgwNzdjM2UxNC4uZWIyYTAzMGZkNzNkYjc5
MDJjNWZkZmVjM2ExMjEwYTA0NzFkZDZkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOC0yNyAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExvY2FsRmlsZVN5c3RlbS5yZXF1ZXN0Rmls
ZVN5c3RlbSBpbnRlcmZhY2UgdG8gRE9NV2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczNAorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGVz
dHMgd2lsbCBiZSBhZGRlZCBsYXRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRGaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXF1ZXN0RmlsZVN5c3RlbUVuYWJsZWQpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVx
dWVzdEZpbGVTeXN0ZW0pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNl
dEZpbGVTeXN0ZW1Sb290UGF0aCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OmZpbGVTeXN0ZW1Sb290UGF0aCk6CisKIDIwMTAtMDgtMjcg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBl
ZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCA2NmRlMGY5YjY1OTZhYzk2NjQ5YmY2OTBiNmFm
YjliY2NlMWMzMDU4Li5hMTVmZDZkMDgwMmZiZWVmMTEwOWZjYTljOWQzYjJmM2QzMDIwYzA0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwCkBAIC01NSw2ICs1NSwxMCBAQCBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Omlz
U3BlZWNoSW5wdXRFbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
aXNYSFJSZXNwb25zZUJsb2JFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShG
SUxFX1NZU1RFTSkKK2Jvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNGaWxlU3lzdGVtRW5h
YmxlZCA9IGZhbHNlOworI2VuZGlmCisKICNpZiBFTkFCTEUoVklERU8pCiAKIGJvb2wgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6YXVkaW9FbmFibGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGNjNTUzNjQ1NjkzNzc4NjE1
Njk3YjM2MTE2MjkzMjg5YTA4MWRjMDMuLmZiNDNmM2Y3YjcwNTgzZGQ3YzQ5YTg4ZTVmNjI5NjQ2
OWY4MWMwMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaApAQCAtMTM1LDYgKzEzNSwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgYXNCbG9iRW5hYmxlZCgpICB7IHJldHVybiBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7IH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHN0YXRpYyBib29sIGZpbGVT
eXN0ZW1FbmFibGVkKCkgeyByZXR1cm4gaXNGaWxlU3lzdGVtRW5hYmxlZDsgfQorICAgIHN0YXRp
YyB2b2lkIHNldEZpbGVTeXN0ZW1FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IGlzRmlsZVN5c3Rl
bUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCByZXF1ZXN0RmlsZVN5c3Rl
bUVuYWJsZWQoKSB7IHJldHVybiBpc0ZpbGVTeXN0ZW1FbmFibGVkOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICAvLyBOZXZlciBpbnN0YW50aWF0ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzKCkgeyB9CkBAIC0xNTQsNiArMTYwLDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFhIUl9S
RVNQT05TRV9CTE9CKQogICAgIHN0YXRpYyBib29sIGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZDsK
ICNlbmRpZgorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHN0YXRpYyBib29sIGlzRmls
ZVN5c3RlbUVuYWJsZWQ7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggYWY0M2E1NTBkMTQ2ZDBlZjM3MWQzYWJhMzhmZTZkN2QyYmE1MDI5MC4u
ODE0OTVjNmEzYmQ1MGFlZGQ2NDE3ODg2NTA2OTZmZGI1ZTJjNzQwZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
QEAgLTg3LDYgKzg3LDE1IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisjaW5jbHVk
ZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRE9NRmlsZVN5c3RlbS5oIgorI2luY2x1
ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJGaWxlRXJyb3IuaCIKKyNpbmNsdWRlICJG
aWxlU3lzdGVtQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKKyNlbmRp
ZgorCiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0ZDo6bWF4OwogCkBAIC03MTksNiArNzI4LDQw
IEBAIElEQktleVJhbmdlKiBET01XaW5kb3c6OmlEQktleVJhbmdlKCkgY29uc3QKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQordm9pZCBET01XaW5kb3c6OnJlcXVlc3RGaWxl
U3lzdGVtKGludCB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lzdGVtQ2Fs
bGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNh
bGxiYWNrKQoreworICAgIGlmIChtX2xvY2FsRmlsZVN5c3RlbSkgeworICAgICAgICBtX2xvY2Fs
RmlsZVN5c3RlbS0+cmVxdWVzdEZpbGVTeXN0ZW0oZG9jdW1lbnQoKSwgc3RhdGljX2Nhc3Q8QXN5
bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgc2l6ZSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNh
bGxiYWNrKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICAvLyBO
byBjb250ZXh0PyAgTm90IGZpcmluZyB0aGUgZXJyb3JDYWxsYmFjay4KKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIEZJWE1FOiBTZWUgaWYgYWNjZXNzIGlzIGFsbG93ZWQuCisKKyAg
ICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAg
ICAgRE9NRmlsZVN5c3RlbTo6c2NoZWR1bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFj
aywgRmlsZUVycm9yOjpjcmVhdGUoSU5WQUxJRF9TVEFURV9FUlIpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIEZJWE1FOiBHZXQgdGhlIHF1b3RhIHNldHRpbmdzIGFzIHdlbGwu
CisgICAgU3RyaW5nIHBhdGggPSBwYWdlLT5zZXR0aW5ncygpLT5maWxlU3lzdGVtUm9vdFBhdGgo
KTsKKyAgICBtX2xvY2FsRmlsZVN5c3RlbSA9IExvY2FsRmlsZVN5c3RlbTo6Y3JlYXRlKHBhdGgp
OworCisgICAgbV9sb2NhbEZpbGVTeXN0ZW0tPnJlcXVlc3RGaWxlU3lzdGVtKGRvY3VtZW50LCBz
dGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBzdWNjZXNzQ2Fs
bGJhY2ssIGVycm9yQ2FsbGJhY2spOworfQorCitDT01QSUxFX0FTU0VSVChpbnQoRE9NV2luZG93
OjpURU1QT1JBUlkpID09IGludChBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSksIGVudW1fbWlz
bWF0Y2gpOworQ09NUElMRV9BU1NFUlQoaW50KERPTVdpbmRvdzo6UEVSU0lTVEVOVCkgPT0gaW50
KEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCksIGVudW1fbWlzbWF0Y2gpOworCisjZW5kaWYK
Kwogdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCogcG9ydCwgY29uc3QgU3RyaW5nJiB0YXJnZXRP
cmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBNZXNz
YWdlUG9ydEFycmF5IHBvcnRzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
IGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDhkNTdkY2MxNGJmZjNkYzg1YTc3Njk4
YWI3MjdkNDhkOTNjMjVkZjkuLjZjMTA4NTY3MjE5MmU2ZGU2OGNjMTBkZDhmODk5ZDFiYzY0OTBm
YjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKQEAgLTgwLDYgKzgwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCisgICAgY2xhc3MgTG9jYWxGaWxlU3lzdGVtOworICAgIGNsYXNzIEZpbGVTeXN0ZW1D
YWxsYmFjazsKKyAgICBjbGFzcyBFcnJvckNhbGxiYWNrOworI2VuZGlmCisKICAgICB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiAgICAgY2xhc3MgRE9NV2luZG93IDogcHVibGljIFJlZkNv
dW50ZWQ8RE9NV2luZG93PiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKQEAgLTIzNiw2ICsyNDIsMTUg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBJREJLZXlSYW5nZSogaURCS2V5UmFuZ2Uo
KSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgICAgICAvLyBU
aGV5IGFyZSBwbGFjZWQgaGVyZSBhbmQgaW4gYWxsIGNhcGl0YWwgbGV0dGVycyB0byBlbmZvcmNl
IGNvbXBpbGUtdGltZSBlbnVtIGNoZWNraW5nLgorICAgICAgICBlbnVtIEZpbGVTeXN0ZW1UeXBl
IHsKKyAgICAgICAgICAgIFRFTVBPUkFSWSwKKyAgICAgICAgICAgIFBFUlNJU1RFTlQsCisgICAg
ICAgIH07CisgICAgICAgIHZvaWQgcmVxdWVzdEZpbGVTeXN0ZW0oaW50IHR5cGUsIGxvbmcgbG9u
ZyBzaXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JD
YWxsYmFjaz4pOworI2VuZGlmCisKICAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgTWVzc2FnZVBvcnRBcnJheSos
IGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9u
Q29kZSYpOwogICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhl
IE9iakMgYmluZGluZ3MgKGJ1ZyAjMjg3NzQpLgogICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCosIGNv
bnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29k
ZSYpOwpAQCAtNDI4LDYgKzQ0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8SURCRmFjdG9yeT4gbV9pZGJGYWN0b3J5OwogICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxJREJLZXlSYW5nZT4gbV9pZGJLZXlSYW5nZTsKICNlbmRpZgorI2lmIEVOQUJMRShGSUxF
X1NZU1RFTSkKKyAgICAgICAgbXV0YWJsZSBSZWZQdHI8TG9jYWxGaWxlU3lzdGVtPiBtX2xvY2Fs
RmlsZVN5c3RlbTsKKyNlbmRpZgogCiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFy
Z2V0RGF0YTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAxOWJjYmVlNmViMjliMWFkMzZhM2E1OGEwODAx
ZjdmMTViNzcwZDk2Li42NThkYjY4M2ZkNzU4ZDRlNDczMTVmM2MzOTRmOThlNjczNDNiMDViIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbApAQCAtMTc2LDYgKzE3NiwxMSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJGYWN0b3J5IGluZGV4
ZWREQjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJL
ZXlSYW5nZSBJREJLZXlSYW5nZTsKICNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX0ZJTEVfU1lT
VEVNKSAmJiBFTkFCTEVfRklMRV9TWVNURU0KKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
VEVNUE9SQVJZID0gMDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUEVSU0lTVEVOVCA9
IDE7CisgICAgICAgIFtFbmFibGVkQXRSdW50aW1lXSB2b2lkIHJlcXVlc3RGaWxlU3lzdGVtKGlu
IHVuc2lnbmVkIHNob3J0IHR5cGUsIGluIGxvbmcgbG9uZyBzaXplLCBpbiBbQ2FsbGJhY2ssIE9w
dGlvbmFsXSBGaWxlU3lzdGVtQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbQ2FsbGJhY2ss
IE9wdGlvbmFsXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworI2VuZGlmCiAKICNpZiBk
ZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9F
VkVOVFMKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRl
Z3JlZXMuIFNvbWUgZXhhbXBsZXMgYXJlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggMTBlNmYzZTdmZjhjODI1
YmZiNzc1YzdlOTA1ZjFlNzY1ZTZhNmMzMy4uMzZiY2NlMjIyODZmOTFjZTRiYzFmNzgzMDZkZDdl
Njg2MDM5MTUwYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00ODMsNiArNDgzLDExIEBAIHZvaWQgU2V0dGlu
Z3M6OnNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAg
bV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggPSBwYXRoOwogfQogCit2b2lkIFNldHRpbmdzOjpz
ZXRGaWxlU3lzdGVtUm9vdFBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIG1fZmlsZVN5
c3RlbVJvb3RQYXRoID0gcGF0aDsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0QXBwbGljYXRpb25D
aHJvbWVNb2RlKGJvb2wgbW9kZSkKIHsKICAgICBtX2luQXBwbGljYXRpb25DaHJvbWVNb2RlID0g
bW9kZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKaW5kZXggNjkzY2M1NGU1MTI5ZGE2MjgwN2EzNmNkZjc0N2I0OTgxNGMxN2Y2
MC4uMGJiNTVmNmNmZTU5ZTY1MThmZmQwOTkyZTkyYmE1MmYzYzM2YTMyYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAg
LTIzOSw3ICsyMzksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc2V0
TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBjb25zdCBT
dHJpbmcmIGxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxT
dG9yYWdlRGF0YWJhc2VQYXRoOyB9Ci0gICAgICAgIAorCisgICAgICAgIHZvaWQgc2V0RmlsZVN5
c3RlbVJvb3RQYXRoKGNvbnN0IFN0cmluZyYpOworICAgICAgICBjb25zdCBTdHJpbmcmIGZpbGVT
eXN0ZW1Sb290UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZVN5c3RlbVJvb3RQYXRoOyB9CisK
ICAgICAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNocm9tZU1vZGUoYm9vbCk7CiAgICAgICAgIGJv
b2wgaW5BcHBsaWNhdGlvbkNocm9tZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2luQXBwbGljYXRp
b25DaHJvbWVNb2RlOyB9CiAKQEAgLTMyOCwxMCArMzMxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKLSAgICAgICAgCisKICAg
ICAgICAgU3RyaW5nIG1fZGVmYXVsdFRleHRFbmNvZGluZ05hbWU7CiAgICAgICAgIFN0cmluZyBt
X2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aDsKICAgICAgICAgU3RyaW5nIG1fbG9jYWxTdG9yYWdl
RGF0YWJhc2VQYXRoOworICAgICAgICBTdHJpbmcgbV9maWxlU3lzdGVtUm9vdFBhdGg7CiAgICAg
ICAgIEtVUkwgbV91c2VyU3R5bGVTaGVldExvY2F0aW9uOwogICAgICAgICBBdG9taWNTdHJpbmcg
bV9zdGFuZGFyZEZvbnRGYW1pbHk7CiAgICAgICAgIEF0b21pY1N0cmluZyBtX2ZpeGVkRm9udEZh
bWlseTsKQEAgLTQxMiw3ICs0MTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICAg
ICAgICAgYm9vbCBtX21lbW9yeUluZm9FbmFibGVkOiAxOwogICAgICAgICBib29sIG1faW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbjogMTsKLSAgICAKKwogI2lmIFVTRShTQUZBUklfVEhFTUUpCiAg
ICAgICAgIHN0YXRpYyBib29sIGdTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBhNjRlMWE5ODNhNzk1ZTFiYWMxZjVmYWIwYTM3N2M4YjcxZTJiMDcyLi5h
MTBiMzQyZmFjZTUyZTk3ZTNhZGEwYWM0OTFjN2E5YWZhYjI5NmNmIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOSBAQAorMjAxMC0wOC0yOCAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BraW51a28y
LW1hY3Byby5tdHYuY29ycC5nb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHJlcXVlc3RGaWxlU3lzdGVtCisKKyAgICAgICAgQWRkIExv
Y2FsRmlsZVN5c3RlbS5yZXF1ZXN0RmlsZVN5c3RlbSBpbnRlcmZhY2UgdG8gRE9NV2luZG93Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczNAorCisg
ICAgICAgICogcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oOgorICAgICAgICAqIHNyYy9XZWJS
dW50aW1lRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6
OmVuYWJsZUZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6
OmlzRmlsZVN5c3RlbUVuYWJsZWQpOgorCisyMDEwLTA4LTI3ICBLaW51a28gWWFzdWRhICA8a2lu
dWtvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgTG9jYWxGaWxlU3lzdGVtLnJlcXVlc3RGaWxlU3lzdGVtIGludGVyZmFj
ZSB0byBET01XaW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ0NzM0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmg6Cisg
ICAgICAgICogc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJ1bnRpbWVGZWF0dXJlczo6aXNGaWxlU3lzdGVtRW5hYmxlZCk6CisKIDIwMTAtMDgtMjcgIEtp
bnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IER1bWl0cnUgRGFuaWxpdWMuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlJ1bnRpbWVGZWF0dXJlcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVh
dHVyZXMuaAppbmRleCBlMjgyODY0YTgzMjU0ODMyYjMyOGYzNjEwMjc0YTJhMTIxMWUyMTAwLi41
NTM3ZWUyMWI4NmY1MDQ4MzMxZWE1Mjg5YzQ5ZjViOWIyMWZlOWM2IDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKQEAgLTg5LDYgKzg5LDkgQEAgcHVibGlj
OgogICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlWEhSUmVzcG9uc2VCbG9iKGJvb2wp
OwogICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCk7
CiAKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZUZpbGVTeXN0ZW0oYm9vbCk7Cisg
ICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc0ZpbGVTeXN0ZW1FbmFibGVkKCk7CisKIHByaXZh
dGU6CiAgICAgV2ViUnVudGltZUZlYXR1cmVzKCk7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJSdW50aW1lRmVhdHVyZXMuY3BwCmluZGV4IDllMWU0ZGUwMTRhODk1MDRiMzdmZjlkNDc5Mjhh
ZGQ1NGU3N2RjMmIuLjIyNzllZWJkMGQzM2M0YzQzODJlMTdiZTBiZTcwNzA1MDVlZWRjNGYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKQEAgLTI3Miw0ICsy
NzIsMjAgQEAgYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzWEhSUmVzcG9uc2VCbG9iRW5hYmxl
ZCgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZUZpbGVTeXN0
ZW0oYm9vbCBlbmFibGUpCit7CisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNldEZpbGVTeXN0ZW1FbmFibGVkKGVuYWJsZSk7CisjZW5kaWYKK30K
KworYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzRmlsZVN5c3RlbUVuYWJsZWQoKQoreworI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
ZmlsZVN5c3RlbUVuYWJsZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66117</attachid>
            <date>2010-08-31 14:54:43 -0700</date>
            <delta_ts>2010-08-31 15:04:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44734-20100831145442.patch</filename>
            <type>text/plain</type>
            <size>11386</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTg4NjM5YjgzNWM4NjYwN2I4Yzg1ZjZjYTJlN2Y3YmRiNDJlNzBiYy4uMTNjOGVlNjM5M2ZhZjMz
NjExODhjNTU5MjQyNmJhYmY4MzYyYmMxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOC0yNyAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExvY2FsRmlsZVN5c3RlbS5yZXF1ZXN0Rmls
ZVN5c3RlbSBpbnRlcmZhY2UgdG8gRE9NV2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczNAorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGVz
dHMgd2lsbCBiZSBhZGRlZCBsYXRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRGaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXF1ZXN0RmlsZVN5c3RlbUVuYWJsZWQpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVx
dWVzdEZpbGVTeXN0ZW0pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNl
dEZpbGVTeXN0ZW1Sb290UGF0aCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OmZpbGVTeXN0ZW1Sb290UGF0aCk6CisKIDIwMTAtMDgtMzEg
IEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlciBhbmQgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXggNjZkZTBmOWI2NTk2YWM5NjY0
OWJmNjkwYjZhZmI5YmNjZTFjMzA1OC4uYTE1ZmQ2ZDA4MDJmYmVlZjExMDlmY2E5YzlkM2IyZjNk
MzAyMGMwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcApAQCAtNTUsNiArNTUsMTAgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjppc1NwZWVjaElucHV0RW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCitib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRmls
ZVN5c3RlbUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVPKQogCiBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBjYzU1MzY0
NTY5Mzc3ODYxNTY5N2IzNjExNjI5MzI4OWEwODFkYzAzLi5mYjQzZjNmN2I3MDU4M2RkN2M0OWE4
OGU1ZjYyOTY0NjlmODFjMDBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEzNSw2ICsxMzUsMTIgQEAgcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFzQmxvYkVuYWJsZWQoKSAgeyByZXR1cm4gaXNYSFJSZXNwb25zZUJsb2JF
bmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBzdGF0aWMg
Ym9vbCBmaWxlU3lzdGVtRW5hYmxlZCgpIHsgcmV0dXJuIGlzRmlsZVN5c3RlbUVuYWJsZWQ7IH0K
KyAgICBzdGF0aWMgdm9pZCBzZXRGaWxlU3lzdGVtRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBp
c0ZpbGVTeXN0ZW1FbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgcmVxdWVz
dEZpbGVTeXN0ZW1FbmFibGVkKCkgeyByZXR1cm4gaXNGaWxlU3lzdGVtRW5hYmxlZDsgfQorI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlcygpIHsgfQpAQCAtMTU0LDYgKzE2MCwxMCBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKICAgICBzdGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxv
YkVuYWJsZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBzdGF0aWMg
Ym9vbCBpc0ZpbGVTeXN0ZW1FbmFibGVkOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGE2ZThiNDA5ZjJlYjY4MDVmYTU5MjM3M2YzMzg1YWUx
ZTYxNGJiZDIuLmJjMjk3NDVjZjY2Y2QwZjBiYjYwMDU5MzI4M2I5OTdmOWEwMmUzM2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC04OCw2ICs4OCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVN
KQorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0u
aCIKKyNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVt
LmgiCisjZW5kaWYKKwogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKIApAQCAtNzIx
LDYgKzczMCw0MCBAQCBJREJLZXlSYW5nZSogRE9NV2luZG93OjppREJLZXlSYW5nZSgpIGNvbnN0
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKK3ZvaWQgRE9NV2luZG93Ojpy
ZXF1ZXN0RmlsZVN5c3RlbShpbnQgdHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8Rmls
ZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAobV9sb2NhbEZpbGVTeXN0ZW0pIHsKKyAgICAg
ICAgbV9sb2NhbEZpbGVTeXN0ZW0tPnJlcXVlc3RGaWxlU3lzdGVtKGRvY3VtZW50KCksIHN0YXRp
Y19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIHN1Y2Nlc3NDYWxsYmFj
aywgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAg
ICAgICAgLy8gTm8gY29udGV4dD8gIE5vdCBmaXJpbmcgdGhlIGVycm9yQ2FsbGJhY2suCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogU2VlIGlmIGFjY2VzcyBpcyBhbGxv
d2VkLgorCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdl
KSB7CisgICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxlQ2FsbGJhY2soZG9jdW1lbnQsIGVy
cm9yQ2FsbGJhY2ssIEZpbGVFcnJvcjo6Y3JlYXRlKElOVkFMSURfU1RBVEVfRVJSKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogR2V0IHRoZSBxdW90YSBzZXR0aW5n
cyBhcyB3ZWxsLgorICAgIFN0cmluZyBwYXRoID0gcGFnZS0+c2V0dGluZ3MoKS0+ZmlsZVN5c3Rl
bVJvb3RQYXRoKCk7CisgICAgbV9sb2NhbEZpbGVTeXN0ZW0gPSBMb2NhbEZpbGVTeXN0ZW06OmNy
ZWF0ZShwYXRoKTsKKworICAgIG1fbG9jYWxGaWxlU3lzdGVtLT5yZXF1ZXN0RmlsZVN5c3RlbShk
b2N1bWVudCwgc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgc2l6ZSwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30KKworQ09NUElMRV9BU1NFUlQoaW50
KERPTVdpbmRvdzo6VEVNUE9SQVJZKSA9PSBpbnQoQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3Jhcnkp
LCBlbnVtX21pc21hdGNoKTsKK0NPTVBJTEVfQVNTRVJUKGludChET01XaW5kb3c6OlBFUlNJU1RF
TlQpID09IGludChBc3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQpLCBlbnVtX21pc21hdGNoKTsK
KworI2VuZGlmCisKIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA5YTYzMTVmMzcwNGEy
NWJmM2M5YmRkNDE0ZWRhYzYzNGZhYWI2YjYwLi5hNTlkZWYzMmZkYzZkMDEwOTc0NmViNDkxYjJl
N2E3ZDI0MDUwNzVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04MSw2ICs4MSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgRE9NQXBwbGljYXRpb25DYWNoZTsKICNlbmRpZgogCisgICAgY2xh
c3MgRXJyb3JDYWxsYmFjazsKKyAgICBjbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2s7CisgICAgY2xh
c3MgTG9jYWxGaWxlU3lzdGVtOworCiAgICAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAog
ICAgIGNsYXNzIERPTVdpbmRvdyA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVdpbmRvdz4sIHB1Ymxp
YyBFdmVudFRhcmdldCB7CkBAIC0yMzgsNiArMjQyLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgSURCS2V5UmFuZ2UqIGlEQktleVJhbmdlKCkgY29uc3Q7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICAgICAgLy8gVGhleSBhcmUgcGxhY2VkIGhlcmUgYW5k
IGluIGFsbCBjYXBpdGFsIGxldHRlcnMgdG8gZW5mb3JjZSBjb21waWxlLXRpbWUgZW51bSBjaGVj
a2luZy4KKyAgICAgICAgZW51bSBGaWxlU3lzdGVtVHlwZSB7CisgICAgICAgICAgICBURU1QT1JB
UlksCisgICAgICAgICAgICBQRVJTSVNURU5ULAorICAgICAgICB9OworICAgICAgICB2b2lkIHJl
cXVlc3RGaWxlU3lzdGVtKGludCB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxl
U3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKKyNlbmRpZgorCiAg
ICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9y
aWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgLy8gRklY
TUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4
Nzc0KS4KICAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdp
biwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTQzNSw2ICs0NDgsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPElEQkZhY3Rvcnk+
IG1faWRiRmFjdG9yeTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8SURCS2V5UmFuZ2U+IG1faWRi
S2V5UmFuZ2U7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgICAgIG11dGFi
bGUgUmVmUHRyPExvY2FsRmlsZVN5c3RlbT4gbV9sb2NhbEZpbGVTeXN0ZW07CisjZW5kaWYKIAog
ICAgICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
aW5kZXggODRjMjEwODBmZDQzMWIzYzc3YjAwYjA1NzkyZWQ1ZGZkMjQ0YmY5OC4uYzc3NWFlNjBk
MTc5OTk2YzM2YzU4ODE2ZDk2NzFhMzRhZDU5ZDdlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3Niw2
ICsxNzYsMTEgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
RW5hYmxlZEF0UnVudGltZV0gSURCRmFjdG9yeSBpbmRleGVkREI7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2UgSURCS2V5UmFuZ2U7CiAj
ZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJiYgRU5BQkxFX0ZJTEVfU1lT
VEVNCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAxOworICAgICAgICBbRW5hYmxlZEF0
UnVudGltZV0gdm9pZCByZXF1ZXN0RmlsZVN5c3RlbShpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCBp
biBsb25nIGxvbmcgc2l6ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRmlsZVN5c3RlbUNhbGxi
YWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRXJyb3JDYWxsYmFj
ayBlcnJvckNhbGxiYWNrKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAgIC8vIFRoaXMg
aXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFy
ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCmluZGV4IDEwZTZmM2U3ZmY4YzgyNWJmYjc3NWM3ZTkwNWYxZTc2NWU2YTZj
MzMuLjM2YmNjZTIyMjg2ZjkxY2U0YmMxZjc4MzA2ZGQ3ZTY4NjAzOTE1MGIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cApAQCAtNDgzLDYgKzQ4MywxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoID0gcGF0aDsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0RmlsZVN5c3RlbVJvb3RQYXRoKGNv
bnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2ZpbGVTeXN0ZW1Sb290UGF0aCA9IHBhdGg7Cit9
CisKIHZvaWQgU2V0dGluZ3M6OnNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZShib29sIG1vZGUpCiB7
CiAgICAgbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSA9IG1vZGU7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDY5M2Nj
NTRlNTEyOWRhNjI4MDdhMzZjZGY3NDdiNDk4MTRjMTdmNjAuLjBiYjU1ZjZjZmU1OWU2NTE4ZmZk
MDk5MmU5MmJhNTJmM2MzNmEzMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0yMzksNyArMjM5LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aChjb25zdCBTdHJpbmcmKTsKICAgICAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQot
ICAgICAgICAKKworICAgICAgICB2b2lkIHNldEZpbGVTeXN0ZW1Sb290UGF0aChjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBmaWxlU3lzdGVtUm9vdFBhdGgoKSBjb25zdCB7
IHJldHVybiBtX2ZpbGVTeXN0ZW1Sb290UGF0aDsgfQorCiAgICAgICAgIHZvaWQgc2V0QXBwbGlj
YXRpb25DaHJvbWVNb2RlKGJvb2wpOwogICAgICAgICBib29sIGluQXBwbGljYXRpb25DaHJvbWVN
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZTsgfQogCkBAIC0z
MjgsMTAgKzMzMSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBQYWdlKiBtX3BhZ2U7Ci0gICAgICAgIAorCiAgICAgICAgIFN0cmluZyBtX2RlZmF1bHRU
ZXh0RW5jb2RpbmdOYW1lOwogICAgICAgICBTdHJpbmcgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBh
dGg7CiAgICAgICAgIFN0cmluZyBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKKyAgICAgICAg
U3RyaW5nIG1fZmlsZVN5c3RlbVJvb3RQYXRoOwogICAgICAgICBLVVJMIG1fdXNlclN0eWxlU2hl
ZXRMb2NhdGlvbjsKICAgICAgICAgQXRvbWljU3RyaW5nIG1fc3RhbmRhcmRGb250RmFtaWx5Owog
ICAgICAgICBBdG9taWNTdHJpbmcgbV9maXhlZEZvbnRGYW1pbHk7CkBAIC00MTIsNyArNDE2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9tZW1vcnlJbmZv
RW5hYmxlZDogMTsKICAgICAgICAgYm9vbCBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb246IDE7
Ci0gICAgCisKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hv
dWxkUGFpbnROYXRpdmVDb250cm9sczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWY1YjJmN2Ix
ZTYwYzI3YzlhM2M5YWFlYmIxODRiMzhlMDNlZGJjYS4uNzc4NTE5YmUzMjhmZmRiNzRlYTY1MTAy
Y2YzZjM0ZjNjN2EzM2NjYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgt
MzEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBMb2NhbEZpbGVTeXN0ZW0ucmVx
dWVzdEZpbGVTeXN0ZW0gaW50ZXJmYWNlIHRvIERPTVdpbmRvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MzQKKworICAgICAgICAqIHB1YmxpYy9X
ZWJSdW50aW1lRmVhdHVyZXMuaDoKKyAgICAgICAgKiBzcmMvV2ViUnVudGltZUZlYXR1cmVzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVGaWxlU3lzdGVt
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjppc0ZpbGVTeXN0ZW1FbmFi
bGVkKToKKwogMjAxMC0wOC0yNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCmluZGV4IGUyODI4NjRhODMyNTQ4MzJiMzI4ZjM2MTAy
NzRhMmExMjExZTIxMDAuLjU1MzdlZTIxYjg2ZjUwNDgzMzFlYTUyODljNDlmNWI5YjIxZmU5YzYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaApAQCAtODks
NiArODksOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVYSFJS
ZXNwb25zZUJsb2IoYm9vbCk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1hIUlJlc3Bv
bnNlQmxvYkVuYWJsZWQoKTsKIAorICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlRmls
ZVN5c3RlbShib29sKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzRmlsZVN5c3RlbUVu
YWJsZWQoKTsKKwogcHJpdmF0ZToKICAgICBXZWJSdW50aW1lRmVhdHVyZXMoKTsKIH07CmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKaW5kZXggOWUxZTRkZTAxNGE4
OTUwNGIzN2ZmOWQ0NzkyOGFkZDU0ZTc3ZGMyYi4uMjI3OWVlYmQwZDMzYzRjNDM4MmUxN2JlMGJl
NzA3MDUwNWVlZGM0ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1l
RmVhdHVyZXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVz
LmNwcApAQCAtMjcyLDQgKzI3MiwyMCBAQCBib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJS
ZXNwb25zZUJsb2JFbmFibGVkKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlJ1bnRpbWVGZWF0dXJl
czo6ZW5hYmxlRmlsZVN5c3RlbShib29sIGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoRklMRV9TWVNU
RU0pCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RmlsZVN5c3RlbUVuYWJsZWQoZW5h
YmxlKTsKKyNlbmRpZgorfQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNGaWxlU3lzdGVt
RW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHJldHVybiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66121</attachid>
            <date>2010-08-31 15:04:41 -0700</date>
            <delta_ts>2010-08-31 16:43:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44734-20100831150439.patch</filename>
            <type>text/plain</type>
            <size>11386</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTg4NjM5YjgzNWM4NjYwN2I4Yzg1ZjZjYTJlN2Y3YmRiNDJlNzBiYy4uN2I3Yzg3ZWI5NDY3MTJj
YThmOGVlNDQ4MzkyMzI3NjY4ODVjZDQ2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOC0zMSAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExvY2FsRmlsZVN5c3RlbS5yZXF1ZXN0Rmls
ZVN5c3RlbSBpbnRlcmZhY2UgdG8gRE9NV2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczNAorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGVz
dHMgd2lsbCBiZSBhZGRlZCBsYXRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRGaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXF1ZXN0RmlsZVN5c3RlbUVuYWJsZWQpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVx
dWVzdEZpbGVTeXN0ZW0pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNl
dEZpbGVTeXN0ZW1Sb290UGF0aCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OmZpbGVTeXN0ZW1Sb290UGF0aCk6CisKIDIwMTAtMDgtMzEg
IEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlciBhbmQgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXggNjZkZTBmOWI2NTk2YWM5NjY0
OWJmNjkwYjZhZmI5YmNjZTFjMzA1OC4uYTE1ZmQ2ZDA4MDJmYmVlZjExMDlmY2E5YzlkM2IyZjNk
MzAyMGMwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcApAQCAtNTUsNiArNTUsMTAgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjppc1NwZWVjaElucHV0RW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCitib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRmls
ZVN5c3RlbUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVPKQogCiBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBjYzU1MzY0
NTY5Mzc3ODYxNTY5N2IzNjExNjI5MzI4OWEwODFkYzAzLi5mYjQzZjNmN2I3MDU4M2RkN2M0OWE4
OGU1ZjYyOTY0NjlmODFjMDBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEzNSw2ICsxMzUsMTIgQEAgcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFzQmxvYkVuYWJsZWQoKSAgeyByZXR1cm4gaXNYSFJSZXNwb25zZUJsb2JF
bmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBzdGF0aWMg
Ym9vbCBmaWxlU3lzdGVtRW5hYmxlZCgpIHsgcmV0dXJuIGlzRmlsZVN5c3RlbUVuYWJsZWQ7IH0K
KyAgICBzdGF0aWMgdm9pZCBzZXRGaWxlU3lzdGVtRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBp
c0ZpbGVTeXN0ZW1FbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgcmVxdWVz
dEZpbGVTeXN0ZW1FbmFibGVkKCkgeyByZXR1cm4gaXNGaWxlU3lzdGVtRW5hYmxlZDsgfQorI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlcygpIHsgfQpAQCAtMTU0LDYgKzE2MCwxMCBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKICAgICBzdGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxv
YkVuYWJsZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBzdGF0aWMg
Ym9vbCBpc0ZpbGVTeXN0ZW1FbmFibGVkOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGE2ZThiNDA5ZjJlYjY4MDVmYTU5MjM3M2YzMzg1YWUx
ZTYxNGJiZDIuLmJjMjk3NDVjZjY2Y2QwZjBiYjYwMDU5MzI4M2I5OTdmOWEwMmUzM2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC04OCw2ICs4OCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVN
KQorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0u
aCIKKyNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVt
LmgiCisjZW5kaWYKKwogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKIApAQCAtNzIx
LDYgKzczMCw0MCBAQCBJREJLZXlSYW5nZSogRE9NV2luZG93OjppREJLZXlSYW5nZSgpIGNvbnN0
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKK3ZvaWQgRE9NV2luZG93Ojpy
ZXF1ZXN0RmlsZVN5c3RlbShpbnQgdHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8Rmls
ZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBpZiAobV9sb2NhbEZpbGVTeXN0ZW0pIHsKKyAgICAg
ICAgbV9sb2NhbEZpbGVTeXN0ZW0tPnJlcXVlc3RGaWxlU3lzdGVtKGRvY3VtZW50KCksIHN0YXRp
Y19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSksIHNpemUsIHN1Y2Nlc3NDYWxsYmFj
aywgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAg
ICAgICAgLy8gTm8gY29udGV4dD8gIE5vdCBmaXJpbmcgdGhlIGVycm9yQ2FsbGJhY2suCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogU2VlIGlmIGFjY2VzcyBpcyBhbGxv
d2VkLgorCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdl
KSB7CisgICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxlQ2FsbGJhY2soZG9jdW1lbnQsIGVy
cm9yQ2FsbGJhY2ssIEZpbGVFcnJvcjo6Y3JlYXRlKElOVkFMSURfU1RBVEVfRVJSKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogR2V0IHRoZSBxdW90YSBzZXR0aW5n
cyBhcyB3ZWxsLgorICAgIFN0cmluZyBwYXRoID0gcGFnZS0+c2V0dGluZ3MoKS0+ZmlsZVN5c3Rl
bVJvb3RQYXRoKCk7CisgICAgbV9sb2NhbEZpbGVTeXN0ZW0gPSBMb2NhbEZpbGVTeXN0ZW06OmNy
ZWF0ZShwYXRoKTsKKworICAgIG1fbG9jYWxGaWxlU3lzdGVtLT5yZXF1ZXN0RmlsZVN5c3RlbShk
b2N1bWVudCwgc3RhdGljX2Nhc3Q8QXN5bmNGaWxlU3lzdGVtOjpUeXBlPih0eXBlKSwgc2l6ZSwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30KKworQ09NUElMRV9BU1NFUlQoaW50
KERPTVdpbmRvdzo6VEVNUE9SQVJZKSA9PSBpbnQoQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3Jhcnkp
LCBlbnVtX21pc21hdGNoKTsKK0NPTVBJTEVfQVNTRVJUKGludChET01XaW5kb3c6OlBFUlNJU1RF
TlQpID09IGludChBc3luY0ZpbGVTeXN0ZW06OlBlcnNpc3RlbnQpLCBlbnVtX21pc21hdGNoKTsK
KworI2VuZGlmCisKIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqIHBvcnQsIGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0T3JpZ2luLCBET01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgTWVzc2FnZVBvcnRBcnJheSBwb3J0czsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA5YTYzMTVmMzcwNGEy
NWJmM2M5YmRkNDE0ZWRhYzYzNGZhYWI2YjYwLi5hNTlkZWYzMmZkYzZkMDEwOTc0NmViNDkxYjJl
N2E3ZDI0MDUwNzVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC04MSw2ICs4MSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgRE9NQXBwbGljYXRpb25DYWNoZTsKICNlbmRpZgogCisgICAgY2xh
c3MgRXJyb3JDYWxsYmFjazsKKyAgICBjbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2s7CisgICAgY2xh
c3MgTG9jYWxGaWxlU3lzdGVtOworCiAgICAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAog
ICAgIGNsYXNzIERPTVdpbmRvdyA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVdpbmRvdz4sIHB1Ymxp
YyBFdmVudFRhcmdldCB7CkBAIC0yMzgsNiArMjQyLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgSURCS2V5UmFuZ2UqIGlEQktleVJhbmdlKCkgY29uc3Q7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICAgICAgLy8gVGhleSBhcmUgcGxhY2VkIGhlcmUgYW5k
IGluIGFsbCBjYXBpdGFsIGxldHRlcnMgdG8gZW5mb3JjZSBjb21waWxlLXRpbWUgZW51bSBjaGVj
a2luZy4KKyAgICAgICAgZW51bSBGaWxlU3lzdGVtVHlwZSB7CisgICAgICAgICAgICBURU1QT1JB
UlksCisgICAgICAgICAgICBQRVJTSVNURU5ULAorICAgICAgICB9OworICAgICAgICB2b2lkIHJl
cXVlc3RGaWxlU3lzdGVtKGludCB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxl
U3lzdGVtQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKKyNlbmRpZgorCiAg
ICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9y
aWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgLy8gRklY
TUU6IHJlbW92ZSB0aGlzIHdoZW4gd2UgdXBkYXRlIHRoZSBPYmpDIGJpbmRpbmdzIChidWcgIzI4
Nzc0KS4KICAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbWVzc2FnZSwgTWVzc2FnZVBvcnQqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdp
biwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTQzNSw2ICs0NDgsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPElEQkZhY3Rvcnk+
IG1faWRiRmFjdG9yeTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8SURCS2V5UmFuZ2U+IG1faWRi
S2V5UmFuZ2U7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgICAgIG11dGFi
bGUgUmVmUHRyPExvY2FsRmlsZVN5c3RlbT4gbV9sb2NhbEZpbGVTeXN0ZW07CisjZW5kaWYKIAog
ICAgICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
aW5kZXggODRjMjEwODBmZDQzMWIzYzc3YjAwYjA1NzkyZWQ1ZGZkMjQ0YmY5OC4uYzc3NWFlNjBk
MTc5OTk2YzM2YzU4ODE2ZDk2NzFhMzRhZDU5ZDdlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3Niw2
ICsxNzYsMTEgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
RW5hYmxlZEF0UnVudGltZV0gSURCRmFjdG9yeSBpbmRleGVkREI7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2UgSURCS2V5UmFuZ2U7CiAj
ZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJiYgRU5BQkxFX0ZJTEVfU1lT
VEVNCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAxOworICAgICAgICBbRW5hYmxlZEF0
UnVudGltZV0gdm9pZCByZXF1ZXN0RmlsZVN5c3RlbShpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCBp
biBsb25nIGxvbmcgc2l6ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRmlsZVN5c3RlbUNhbGxi
YWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRXJyb3JDYWxsYmFj
ayBlcnJvckNhbGxiYWNrKTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAgIC8vIFRoaXMg
aXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFy
ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCmluZGV4IDEwZTZmM2U3ZmY4YzgyNWJmYjc3NWM3ZTkwNWYxZTc2NWU2YTZj
MzMuLjM2YmNjZTIyMjg2ZjkxY2U0YmMxZjc4MzA2ZGQ3ZTY4NjAzOTE1MGIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cApAQCAtNDgzLDYgKzQ4MywxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoID0gcGF0aDsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0RmlsZVN5c3RlbVJvb3RQYXRoKGNv
bnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBtX2ZpbGVTeXN0ZW1Sb290UGF0aCA9IHBhdGg7Cit9
CisKIHZvaWQgU2V0dGluZ3M6OnNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZShib29sIG1vZGUpCiB7
CiAgICAgbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZSA9IG1vZGU7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDY5M2Nj
NTRlNTEyOWRhNjI4MDdhMzZjZGY3NDdiNDk4MTRjMTdmNjAuLjBiYjU1ZjZjZmU1OWU2NTE4ZmZk
MDk5MmU5MmJhNTJmM2MzNmEzMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0yMzksNyArMjM5LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0
aChjb25zdCBTdHJpbmcmKTsKICAgICAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQot
ICAgICAgICAKKworICAgICAgICB2b2lkIHNldEZpbGVTeXN0ZW1Sb290UGF0aChjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBmaWxlU3lzdGVtUm9vdFBhdGgoKSBjb25zdCB7
IHJldHVybiBtX2ZpbGVTeXN0ZW1Sb290UGF0aDsgfQorCiAgICAgICAgIHZvaWQgc2V0QXBwbGlj
YXRpb25DaHJvbWVNb2RlKGJvb2wpOwogICAgICAgICBib29sIGluQXBwbGljYXRpb25DaHJvbWVN
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZTsgfQogCkBAIC0z
MjgsMTAgKzMzMSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBQYWdlKiBtX3BhZ2U7Ci0gICAgICAgIAorCiAgICAgICAgIFN0cmluZyBtX2RlZmF1bHRU
ZXh0RW5jb2RpbmdOYW1lOwogICAgICAgICBTdHJpbmcgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBh
dGg7CiAgICAgICAgIFN0cmluZyBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKKyAgICAgICAg
U3RyaW5nIG1fZmlsZVN5c3RlbVJvb3RQYXRoOwogICAgICAgICBLVVJMIG1fdXNlclN0eWxlU2hl
ZXRMb2NhdGlvbjsKICAgICAgICAgQXRvbWljU3RyaW5nIG1fc3RhbmRhcmRGb250RmFtaWx5Owog
ICAgICAgICBBdG9taWNTdHJpbmcgbV9maXhlZEZvbnRGYW1pbHk7CkBAIC00MTIsNyArNDE2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9tZW1vcnlJbmZv
RW5hYmxlZDogMTsKICAgICAgICAgYm9vbCBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb246IDE7
Ci0gICAgCisKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hv
dWxkUGFpbnROYXRpdmVDb250cm9sczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWY1YjJmN2Ix
ZTYwYzI3YzlhM2M5YWFlYmIxODRiMzhlMDNlZGJjYS4uNzc4NTE5YmUzMjhmZmRiNzRlYTY1MTAy
Y2YzZjM0ZjNjN2EzM2NjYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgt
MzEgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBMb2NhbEZpbGVTeXN0ZW0ucmVx
dWVzdEZpbGVTeXN0ZW0gaW50ZXJmYWNlIHRvIERPTVdpbmRvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MzQKKworICAgICAgICAqIHB1YmxpYy9X
ZWJSdW50aW1lRmVhdHVyZXMuaDoKKyAgICAgICAgKiBzcmMvV2ViUnVudGltZUZlYXR1cmVzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVGaWxlU3lzdGVt
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjppc0ZpbGVTeXN0ZW1FbmFi
bGVkKToKKwogMjAxMC0wOC0yNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCmluZGV4IGUyODI4NjRhODMyNTQ4MzJiMzI4ZjM2MTAy
NzRhMmExMjExZTIxMDAuLjU1MzdlZTIxYjg2ZjUwNDgzMzFlYTUyODljNDlmNWI5YjIxZmU5YzYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaApAQCAtODks
NiArODksOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVYSFJS
ZXNwb25zZUJsb2IoYm9vbCk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1hIUlJlc3Bv
bnNlQmxvYkVuYWJsZWQoKTsKIAorICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlRmls
ZVN5c3RlbShib29sKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzRmlsZVN5c3RlbUVu
YWJsZWQoKTsKKwogcHJpdmF0ZToKICAgICBXZWJSdW50aW1lRmVhdHVyZXMoKTsKIH07CmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKaW5kZXggOWUxZTRkZTAxNGE4
OTUwNGIzN2ZmOWQ0NzkyOGFkZDU0ZTc3ZGMyYi4uMjI3OWVlYmQwZDMzYzRjNDM4MmUxN2JlMGJl
NzA3MDUwNWVlZGM0ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1l
RmVhdHVyZXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVz
LmNwcApAQCAtMjcyLDQgKzI3MiwyMCBAQCBib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJS
ZXNwb25zZUJsb2JFbmFibGVkKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlJ1bnRpbWVGZWF0dXJl
czo6ZW5hYmxlRmlsZVN5c3RlbShib29sIGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoRklMRV9TWVNU
RU0pCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RmlsZVN5c3RlbUVuYWJsZWQoZW5h
YmxlKTsKKyNlbmRpZgorfQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNGaWxlU3lzdGVt
RW5hYmxlZCgpCit7CisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHJldHVybiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66139</attachid>
            <date>2010-08-31 16:43:40 -0700</date>
            <delta_ts>2010-08-31 17:56:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44734-20100831164339.patch</filename>
            <type>text/plain</type>
            <size>11428</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTg4NjM5YjgzNWM4NjYwN2I4Yzg1ZjZjYTJlN2Y3YmRiNDJlNzBiYy4uN2I3Yzg3ZWI5NDY3MTJj
YThmOGVlNDQ4MzkyMzI3NjY4ODVjZDQ2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wOC0zMSAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExvY2FsRmlsZVN5c3RlbS5yZXF1ZXN0Rmls
ZVN5c3RlbSBpbnRlcmZhY2UgdG8gRE9NV2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDczNAorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdGVz
dHMgd2lsbCBiZSBhZGRlZCBsYXRlci4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpmaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRGaWxlU3lzdGVtRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXF1ZXN0RmlsZVN5c3RlbUVuYWJsZWQpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVx
dWVzdEZpbGVTeXN0ZW0pOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6Oik6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNl
dEZpbGVTeXN0ZW1Sb290UGF0aCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OmZpbGVTeXN0ZW1Sb290UGF0aCk6CisKIDIwMTAtMDgtMzEg
IEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlciBhbmQgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXggNjZkZTBmOWI2NTk2YWM5NjY0
OWJmNjkwYjZhZmI5YmNjZTFjMzA1OC4uYTE1ZmQ2ZDA4MDJmYmVlZjExMDlmY2E5YzlkM2IyZjNk
MzAyMGMwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcApAQCAtNTUsNiArNTUsMTAgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjppc1NwZWVjaElucHV0RW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCitib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRmls
ZVN5c3RlbUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVPKQogCiBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBjYzU1MzY0
NTY5Mzc3ODYxNTY5N2IzNjExNjI5MzI4OWEwODFkYzAzLi5mYjQzZjNmN2I3MDU4M2RkN2M0OWE4
OGU1ZjYyOTY0NjlmODFjMDBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEzNSw2ICsxMzUsMTIgQEAgcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFzQmxvYkVuYWJsZWQoKSAgeyByZXR1cm4gaXNYSFJSZXNwb25zZUJsb2JF
bmFibGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBzdGF0aWMg
Ym9vbCBmaWxlU3lzdGVtRW5hYmxlZCgpIHsgcmV0dXJuIGlzRmlsZVN5c3RlbUVuYWJsZWQ7IH0K
KyAgICBzdGF0aWMgdm9pZCBzZXRGaWxlU3lzdGVtRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBp
c0ZpbGVTeXN0ZW1FbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgcmVxdWVz
dEZpbGVTeXN0ZW1FbmFibGVkKCkgeyByZXR1cm4gaXNGaWxlU3lzdGVtRW5hYmxlZDsgfQorI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFudGlhdGUuCiAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlcygpIHsgfQpAQCAtMTU0LDYgKzE2MCwxMCBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKICAgICBzdGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxv
YkVuYWJsZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICBzdGF0aWMg
Ym9vbCBpc0ZpbGVTeXN0ZW1FbmFibGVkOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGE2ZThiNDA5ZjJlYjY4MDVmYTU5MjM3M2YzMzg1YWUx
ZTYxNGJiZDIuLmFjN2ExMzUzYzIyYWMyNmIxMTlmNzI4MGQ3ZmU2ODU3NDdhMmM3NDkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC04OCw2ICs4OCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVN
KQorI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0u
aCIKKyNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisj
aW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVt
LmgiCisjZW5kaWYKKwogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKIApAQCAtNzIx
LDYgKzczMCwzNyBAQCBJREJLZXlSYW5nZSogRE9NV2luZG93OjppREJLZXlSYW5nZSgpIGNvbnN0
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKK3ZvaWQgRE9NV2luZG93Ojpy
ZXF1ZXN0RmlsZVN5c3RlbShpbnQgdHlwZSwgbG9uZyBsb25nIHNpemUsIFBhc3NSZWZQdHI8Rmls
ZVN5c3RlbUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFj
az4gZXJyb3JDYWxsYmFjaykKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1
bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgLy8gTm8gY29udGV4dD8gIE5v
dCBmaXJpbmcgdGhlIGVycm9yQ2FsbGJhY2suCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoIW1fbG9jYWxGaWxlU3lzdGVtKSB7CisgICAgICAgIC8vIEZJWE1FOiBTZWUgaWYgYWNj
ZXNzIGlzIGFsbG93ZWQuCisKKyAgICAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7
CisgICAgICAgIGlmICghcGFnZSkgeworICAgICAgICAgICAgRE9NRmlsZVN5c3RlbTo6c2NoZWR1
bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUoSU5W
QUxJRF9TVEFURV9FUlIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIEZJWE1FOiBHZXQgdGhlIHF1b3RhIHNldHRpbmdzIGFzIHdlbGwuCisgICAgICAgIFN0
cmluZyBwYXRoID0gcGFnZS0+c2V0dGluZ3MoKS0+ZmlsZVN5c3RlbVJvb3RQYXRoKCk7CisgICAg
ICAgIG1fbG9jYWxGaWxlU3lzdGVtID0gTG9jYWxGaWxlU3lzdGVtOjpjcmVhdGUocGF0aCk7Cisg
ICAgfQorCisgICAgbV9sb2NhbEZpbGVTeXN0ZW0tPnJlcXVlc3RGaWxlU3lzdGVtKGRvY3VtZW50
LCBzdGF0aWNfY2FzdDxBc3luY0ZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBzdWNjZXNz
Q2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfQorCitDT01QSUxFX0FTU0VSVChpbnQoRE9NV2lu
ZG93OjpURU1QT1JBUlkpID09IGludChBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSksIGVudW1f
bWlzbWF0Y2gpOworQ09NUElMRV9BU1NFUlQoaW50KERPTVdpbmRvdzo6UEVSU0lTVEVOVCkgPT0g
aW50KEFzeW5jRmlsZVN5c3RlbTo6UGVyc2lzdGVudCksIGVudW1fbWlzbWF0Y2gpOworCisjZW5k
aWYKKwogdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBtZXNzYWdlLCBNZXNzYWdlUG9ydCogcG9ydCwgY29uc3QgU3RyaW5nJiB0YXJn
ZXRPcmlnaW4sIERPTVdpbmRvdyogc291cmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBN
ZXNzYWdlUG9ydEFycmF5IHBvcnRzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDlhNjMxNWYzNzA0YTI1YmYzYzli
ZGQ0MTRlZGFjNjM0ZmFhYjZiNjAuLjg5NGFhMDg1MDI3NzkwMjhlZGI0ODQ2NzBiZGE2YTNkMmJi
YjcyYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKQEAgLTQ5LDE0ICs0OSwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgRGF0YWJhc2VDYWxsYmFjazsKICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBj
bGFzcyBFbGVtZW50OworICAgIGNsYXNzIEVycm9yQ2FsbGJhY2s7CiAgICAgY2xhc3MgRXZlbnQ7
CiAgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBGaWxlU3lzdGVtQ2FsbGJhY2s7
CiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEhpc3Rv
cnk7CiAgICAgY2xhc3MgSURCRmFjdG9yeTsKICAgICBjbGFzcyBJREJLZXlSYW5nZTsKICAgICBj
bGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OworICAgIGNsYXNzIExvY2FsRmlsZVN5c3RlbTsK
ICAgICBjbGFzcyBMb2NhdGlvbjsKICAgICBjbGFzcyBTdHlsZU1lZGlhOwogICAgIGNsYXNzIE5h
dmlnYXRvcjsKQEAgLTIzOCw2ICsyNDEsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBJREJLZXlSYW5nZSogaURCS2V5UmFuZ2UoKSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxF
KEZJTEVfU1lTVEVNKQorICAgICAgICAvLyBUaGV5IGFyZSBwbGFjZWQgaGVyZSBhbmQgaW4gYWxs
IGNhcGl0YWwgbGV0dGVycyB0byBlbmZvcmNlIGNvbXBpbGUtdGltZSBlbnVtIGNoZWNraW5nLgor
ICAgICAgICBlbnVtIEZpbGVTeXN0ZW1UeXBlIHsKKyAgICAgICAgICAgIFRFTVBPUkFSWSwKKyAg
ICAgICAgICAgIFBFUlNJU1RFTlQsCisgICAgICAgIH07CisgICAgICAgIHZvaWQgcmVxdWVzdEZp
bGVTeXN0ZW0oaW50IHR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1D
YWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4pOworI2VuZGlmCisKICAgICAgICAg
dm9pZCBwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2Fn
ZSwgY29uc3QgTWVzc2FnZVBvcnRBcnJheSosIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBE
T01XaW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICAvLyBGSVhNRTogcmVt
b3ZlIHRoaXMgd2hlbiB3ZSB1cGRhdGUgdGhlIE9iakMgYmluZGluZ3MgKGJ1ZyAjMjg3NzQpLgog
ICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtZXNzYWdlLCBNZXNzYWdlUG9ydCosIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBET01X
aW5kb3cqIHNvdXJjZSwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNDM1LDYgKzQ0Nyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8SURCRmFjdG9yeT4gbV9pZGJG
YWN0b3J5OwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxJREJLZXlSYW5nZT4gbV9pZGJLZXlSYW5n
ZTsKICNlbmRpZgorI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKyAgICAgICAgUmVmUHRyPExvY2Fs
RmlsZVN5c3RlbT4gbV9sb2NhbEZpbGVTeXN0ZW07CisjZW5kaWYKIAogICAgICAgICBFdmVudFRh
cmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggODRjMjEwODBm
ZDQzMWIzYzc3YjAwYjA1NzkyZWQ1ZGZkMjQ0YmY5OC4uYzc3NWFlNjBkMTc5OTk2YzM2YzU4ODE2
ZDk2NzFhMzRhZDU5ZDdlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3Niw2ICsxNzYsMTEgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGlt
ZV0gSURCRmFjdG9yeSBpbmRleGVkREI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRW5h
YmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2UgSURCS2V5UmFuZ2U7CiAjZW5kaWYKKyNpZiBkZWZp
bmVkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJiYgRU5BQkxFX0ZJTEVfU1lTVEVNCisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFBFUlNJU1RFTlQgPSAxOworICAgICAgICBbRW5hYmxlZEF0UnVudGltZV0gdm9pZCBy
ZXF1ZXN0RmlsZVN5c3RlbShpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6
ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRmlsZVN5c3RlbUNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNr
KTsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBF
TkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFj
ZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFyZToKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmlu
ZGV4IDEwZTZmM2U3ZmY4YzgyNWJmYjc3NWM3ZTkwNWYxZTc2NWU2YTZjMzMuLjM2YmNjZTIyMjg2
ZjkxY2U0YmMxZjc4MzA2ZGQ3ZTY4NjAzOTE1MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNDgzLDYgKzQ4
MywxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoY29uc3Qg
U3RyaW5nJiBwYXRoKQogICAgIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoID0gcGF0aDsKIH0K
IAordm9pZCBTZXR0aW5nczo6c2V0RmlsZVN5c3RlbVJvb3RQYXRoKGNvbnN0IFN0cmluZyYgcGF0
aCkKK3sKKyAgICBtX2ZpbGVTeXN0ZW1Sb290UGF0aCA9IHBhdGg7Cit9CisKIHZvaWQgU2V0dGlu
Z3M6OnNldEFwcGxpY2F0aW9uQ2hyb21lTW9kZShib29sIG1vZGUpCiB7CiAgICAgbV9pbkFwcGxp
Y2F0aW9uQ2hyb21lTW9kZSA9IG1vZGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDY5M2NjNTRlNTEyOWRhNjI4MDdh
MzZjZGY3NDdiNDk4MTRjMTdmNjAuLjBiYjU1ZjZjZmU1OWU2NTE4ZmZkMDk5MmU5MmJhNTJmM2Mz
NmEzMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCkBAIC0yMzksNyArMjM5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2b2lkIHNldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcm
KTsKICAgICAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgoKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsgfQotICAgICAgICAKKworICAg
ICAgICB2b2lkIHNldEZpbGVTeXN0ZW1Sb290UGF0aChjb25zdCBTdHJpbmcmKTsKKyAgICAgICAg
Y29uc3QgU3RyaW5nJiBmaWxlU3lzdGVtUm9vdFBhdGgoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVT
eXN0ZW1Sb290UGF0aDsgfQorCiAgICAgICAgIHZvaWQgc2V0QXBwbGljYXRpb25DaHJvbWVNb2Rl
KGJvb2wpOwogICAgICAgICBib29sIGluQXBwbGljYXRpb25DaHJvbWVNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbkFwcGxpY2F0aW9uQ2hyb21lTW9kZTsgfQogCkBAIC0zMjgsMTAgKzMzMSwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBQYWdlKiBtX3Bh
Z2U7Ci0gICAgICAgIAorCiAgICAgICAgIFN0cmluZyBtX2RlZmF1bHRUZXh0RW5jb2RpbmdOYW1l
OwogICAgICAgICBTdHJpbmcgbV9mdHBEaXJlY3RvcnlUZW1wbGF0ZVBhdGg7CiAgICAgICAgIFN0
cmluZyBtX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKKyAgICAgICAgU3RyaW5nIG1fZmlsZVN5
c3RlbVJvb3RQYXRoOwogICAgICAgICBLVVJMIG1fdXNlclN0eWxlU2hlZXRMb2NhdGlvbjsKICAg
ICAgICAgQXRvbWljU3RyaW5nIG1fc3RhbmRhcmRGb250RmFtaWx5OwogICAgICAgICBBdG9taWNT
dHJpbmcgbV9maXhlZEZvbnRGYW1pbHk7CkBAIC00MTIsNyArNDE2LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9tZW1vcnlJbmZvRW5hYmxlZDogMTsKICAg
ICAgICAgYm9vbCBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb246IDE7Ci0gICAgCisKICNpZiBV
U0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hvdWxkUGFpbnROYXRpdmVD
b250cm9sczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWY1YjJmN2IxZTYwYzI3YzlhM2M5YWFl
YmIxODRiMzhlMDNlZGJjYS4uNzc4NTE5YmUzMjhmZmRiNzRlYTY1MTAyY2YzZjM0ZjNjN2EzM2Nj
YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDgtMzEgIEtpbnVrbyBZYXN1
ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBMb2NhbEZpbGVTeXN0ZW0ucmVxdWVzdEZpbGVTeXN0ZW0g
aW50ZXJmYWNlIHRvIERPTVdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQ3MzQKKworICAgICAgICAqIHB1YmxpYy9XZWJSdW50aW1lRmVhdHVy
ZXMuaDoKKyAgICAgICAgKiBzcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVGaWxlU3lzdGVtKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjppc0ZpbGVTeXN0ZW1FbmFibGVkKToKKwogMjAxMC0w
OC0yNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViUnVudGltZUZlYXR1cmVzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVG
ZWF0dXJlcy5oCmluZGV4IGUyODI4NjRhODMyNTQ4MzJiMzI4ZjM2MTAyNzRhMmExMjExZTIxMDAu
LjU1MzdlZTIxYjg2ZjUwNDgzMzFlYTUyODljNDlmNWI5YjIxZmU5YzYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaApAQCAtODksNiArODksOSBAQCBwdWJs
aWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVYSFJSZXNwb25zZUJsb2IoYm9v
bCk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQo
KTsKIAorICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlRmlsZVN5c3RlbShib29sKTsK
KyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzRmlsZVN5c3RlbUVuYWJsZWQoKTsKKwogcHJp
dmF0ZToKICAgICBXZWJSdW50aW1lRmVhdHVyZXMoKTsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKaW5kZXggOWUxZTRkZTAxNGE4OTUwNGIzN2ZmOWQ0Nzky
OGFkZDU0ZTc3ZGMyYi4uMjI3OWVlYmQwZDMzYzRjNDM4MmUxN2JlMGJlNzA3MDUwNWVlZGM0ZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcApAQCAtMjcyLDQg
KzI3MiwyMCBAQCBib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25zZUJsb2JFbmFi
bGVkKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRmlsZVN5
c3RlbShib29sIGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0pCisgICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2V0RmlsZVN5c3RlbUVuYWJsZWQoZW5hYmxlKTsKKyNlbmRpZgor
fQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNGaWxlU3lzdGVtRW5hYmxlZCgpCit7Cisj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpmaWxlU3lzdGVtRW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="55064"
          type_id="1"
          status="+"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>