<?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>60683</bug_id>
          
          <creation_ts>2011-05-11 18:54:43 -0700</creation_ts>
          <short_desc>[chromium] Make openFileSystem check for permission first</short_desc>
          <delta_ts>2011-05-12 11:50:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="John Abd-El-Malek">jam</assigned_to>
          <cc>abarth</cc>
    
    <cc>ericu</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>kinuko</cc>
    
    <cc>michaeln</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>402542</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-11 18:54:43 -0700</bug_when>
    <thetext>[chromium] Make openFileSystem check for permission first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402543</commentid>
    <comment_count>1</comment_count>
      <attachid>93232</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-11 18:55:07 -0700</bug_when>
    <thetext>Created attachment 93232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402545</commentid>
    <comment_count>2</comment_count>
      <attachid>93233</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-11 19:02:38 -0700</bug_when>
    <thetext>Created attachment 93233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402550</commentid>
    <comment_count>3</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-11 19:16:21 -0700</bug_when>
    <thetext>James/Tony: please review
others: FYI since you work on the FS code.  I had done this pattern for all the other storage APIs, and just realized I missed FS.  The motivation is that the code in src\content shouldn&apos;t know about content settings, so splitting the opening into two steps helps that.  The chrome side is http://codereview.chromium.org/7012007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402571</commentid>
    <comment_count>4</comment_count>
      <attachid>93233</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-05-11 19:51:55 -0700</bug_when>
    <thetext>Comment on attachment 93233
Patch

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

&gt; Source/WebKit/chromium/public/WebCommonWorkerClient.h:90
&gt; +    virtual bool allowFileSystem(WebFrame*)

The WebFrame param does not belong in this interface. I know it&apos;s in the allowDatabase() method, but it doesn&apos;t belong there either. The origin of the worker can be determined w/o that parameter just fine since there&apos;s a &apos;client&apos; per worker.

&gt; Source/WebKit/chromium/src/WebWorkerBase.cpp:134
&gt; +    static PassRefPtr&lt;AllowFileSystemMainThreadBridge&gt; create(WebWorkerBase* worker, const WTF::String&amp; mode, WebCommonWorkerClient* commonClient, WebFrame* frame)

frame not needed here either</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402878</commentid>
    <comment_count>5</comment_count>
      <attachid>93292</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-12 09:07:23 -0700</bug_when>
    <thetext>Created attachment 93292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402879</commentid>
    <comment_count>6</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-12 09:08:50 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 93233 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93233&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebCommonWorkerClient.h:90
&gt; &gt; +    virtual bool allowFileSystem(WebFrame*)
&gt; 
&gt; The WebFrame param does not belong in this interface. I know it&apos;s in the allowDatabase() method, but it doesn&apos;t belong there either. The origin of the worker can be determined w/o that parameter just fine since there&apos;s a &apos;client&apos; per worker.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebWorkerBase.cpp:134
&gt; &gt; +    static PassRefPtr&lt;AllowFileSystemMainThreadBridge&gt; create(WebWorkerBase* worker, const WTF::String&amp; mode, WebCommonWorkerClient* commonClient, WebFrame* frame)
&gt; 
&gt; frame not needed here either

Done for both.  I had done it like that to be consistent with allowDatabase, but this is fine as well since that&apos;s the same url as openFileSystem uses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402922</commentid>
    <comment_count>7</comment_count>
      <attachid>93292</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-12 10:15:44 -0700</bug_when>
    <thetext>Comment on attachment 93292
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402941</commentid>
    <comment_count>8</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-12 10:34:25 -0700</bug_when>
    <thetext>Committed r86356: &lt;http://trac.webkit.org/changeset/86356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402980</commentid>
    <comment_count>9</comment_count>
      <attachid>93292</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-05-12 11:14:07 -0700</bug_when>
    <thetext>Comment on attachment 93292
Patch

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

&gt; Source/WebKit/chromium/src/WebWorkerClientImpl.h:102
&gt; +    virtual bool allowFileSystem(WebFrame*)

nix WebFrame here too... this wants to be overriding the WebWorkerClient method, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402998</commentid>
    <comment_count>10</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-05-12 11:23:36 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 93292 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93292&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebWorkerClientImpl.h:102
&gt; &gt; +    virtual bool allowFileSystem(WebFrame*)
&gt; 
&gt; nix WebFrame here too... this wants to be overriding the WebWorkerClient method, right?


oops, that was an oversight, will commit in a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403033</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-12 11:50:30 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/86356 might have broken SnowLeopard Intel Release (WebKit2 Tests)
The following tests are not passing:
fast/lists/inlineBoxWrapperNullCheck.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93232</attachid>
            <date>2011-05-11 18:55:07 -0700</date>
            <delta_ts>2011-05-11 19:02:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60683-20110511185236.patch</filename>
            <type>text/plain</type>
            <size>11161</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NjMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTEtMDUtMTEgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IE1ha2Ugb3BlbkZpbGVTeXN0ZW0gY2hlY2sgZm9yIHBlcm1pc3Npb24gZmlyc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjgzCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bW1vbldvcmtlckNsaWVudDo6YWxsb3dGaWxlU3lzdGVtKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
UGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd0ZpbGVTeXN0ZW0pOgorICAgICAgICAqIHNyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRmlsZVN5c3RlbU5vdEFsbG93ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlbkZpbGVTeXN0ZW1IZWxwZXIpOgorICAgICAgICAqIHNyYy9XZWJX
b3JrZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQmFzZTo6YWxsb3dGaWxl
U3lzdGVtKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQmFzZS5oOgorICAgICAgICAqIHNyYy9X
ZWJXb3JrZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudElt
cGw6OmFsbG93RmlsZVN5c3RlbSk6CisKIDIwMTEtMDUtMTEgIEFudG9pbmUgTGFib3VyICA8cGlt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uV29y
a2VyQ2xpZW50LmgJKHJldmlzaW9uIDg2Mjc1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3
LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEYXRhYmFzZShXZWJGcmFtZSos
IGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5z
aWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIG1h
aW4gd2Via2l0IHRocmVhZCBiZWZvcmUgb3BlbmluZyBhIGZpbGUgc3lzdGVtLgorICAgIHZpcnR1
YWwgYm9vbCBhbGxvd0ZpbGVTeXN0ZW0oV2ViRnJhbWUqKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHdlYmtpdCB0aHJlYWQg
YmVmb3JlIG9wZW5pbmcgYSBmaWxlIHN5c3RlbS4KICAgICB2aXJ0dWFsIHZvaWQgb3BlbkZpbGVT
eXN0ZW0oV2ViRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRlLCBX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKikKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1p
c3Npb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgJKHJldmlzaW9uIDg2Mjc1KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw5IEBAIHB1YmxpYzoKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGFjY2VzcyB0
byBXZWIgRGF0YWJhc2VzIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBi
b29sIGFsbG93RGF0YWJhc2UoV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0
IFdlYlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkgeyBy
ZXR1cm4gdHJ1ZTsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY2Nlc3MgdG8gRmlsZSBT
eXN0ZW0gaXMgYWxsb3dlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dG
aWxlU3lzdGVtKFdlYkZyYW1lKikgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMg
d2hldGhlciBpbWFnZXMgYXJlIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBi
b29sIGFsbG93SW1hZ2VzKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0
dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA4
NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3RlbUNocm9t
aXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTUgKzM0LDE5IEBACiAjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQogCiAjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiQ3Jv
c3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFcnJvckNh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiV2ViRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUg
IldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJXZWJXb3JrZXJJbXBs
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgpAQCAtNjcsMTggKzcxLDM2IEBAIGVudW0gQ3JlYXRpb25GbGFnIHsKIAogfSAvLyBuYW1lc3Bh
Y2UKIAorc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1Ob3RBbGxvd2VkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tz
KQoreworICAgIGNhbGxiYWNrcy0+ZGlkRmFpbChXZWJLaXQ6OldlYkZpbGVFcnJvckFib3J0KTsK
K30KKwogc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1IZWxwZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMsIGxvbmcg
bG9uZyBzaXplLCBDcmVhdGlvbkZsYWcgY3JlYXRlKQogeworICAgIGJvb2wgYWxsb3dlZCA9IHRy
dWU7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkp
IHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihj
b250ZXh0KTsKICAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1wbDo6
ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKLSAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgp
LT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlw
ZT4odHlwZSksIHNpemUsIGNyZWF0ZSA9PSBDcmVhdGVJZk5vdFByZXNlbnQsIG5ldyBXZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MsIHR5cGUpKTsKKyAgICAgICAgV2ViS2l0OjpX
ZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOworICAgICAgICBpZiAo
d2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpICYmICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50
KCktPmFsbG93RmlsZVN5c3RlbSh3ZWJGcmFtZSkpCisgICAgICAgICAgICBhbGxvd2VkID0gZmFs
c2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+b3BlbkZp
bGVTeXN0ZW0od2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUp
LCBzaXplLCBjcmVhdGUgPT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzLCB0eXBlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihj
b250ZXh0KTsKICAgICAgICAgV29ya2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5ID0g
JndvcmtlckNvbnRleHQtPnRocmVhZCgpLT53b3JrZXJMb2FkZXJQcm94eSgpOwogICAgICAgICBX
ZWJXb3JrZXJCYXNlKiB3ZWJXb3JrZXIgPSBzdGF0aWNfY2FzdDxXZWJXb3JrZXJCYXNlKj4od29y
a2VyTG9hZGVyUHJveHkpOwotICAgICAgICB3ZWJXb3JrZXItPm9wZW5GaWxlU3lzdGVtRm9yV29y
a2VyKHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBjcmVhdGUg
PT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzLCB0eXBlLCBjb250ZXh0LCBzeW5jaHJvbm91cyksIHN5bmNocm9ub3VzKTsKKyAgICAg
ICAgaWYgKCF3ZWJXb3JrZXItPmFsbG93RmlsZVN5c3RlbSgpKQorICAgICAgICAgICAgYWxsb3dl
ZCA9IGZhbHNlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3ZWJXb3JrZXItPm9wZW5GaWxl
U3lzdGVtRm9yV29ya2VyKHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBz
aXplLCBjcmVhdGUgPT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxi
YWNrc0ltcGwoY2FsbGJhY2tzLCB0eXBlLCBjb250ZXh0LCBzeW5jaHJvbm91cyksIHN5bmNocm9u
b3VzKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93ZWQpIHsKKyAgICAgICAgLy8gVGhlIHRhc2tz
IGFyZSBleHBlY3RlZCB0byBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkuCisgICAgICAgIGNvbnRl
eHQtPnBvc3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmb3BlbkZpbGVTeXN0ZW1Ob3RBbGxvd2Vk
LCBjYWxsYmFja3MpKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldvcmtlckJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCShyZXZpc2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2
ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2lmIEVOQUJMRShXT1JLRVJTKQogCiBzdGF0
aWMgY29uc3QgY2hhciBhbGxvd0RhdGFiYXNlTW9kZVtdID0gImFsbG93RGF0YWJhc2VNb2RlIjsK
K3N0YXRpYyBjb25zdCBjaGFyIGFsbG93RmlsZVN5c3RlbU1vZGVbXSA9ICJhbGxvd0ZpbGVTeXN0
ZW1Nb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wZW5GaWxlU3lzdGVtTW9kZVtdID0gIm9wZW5G
aWxlU3lzdGVtTW9kZSI7CiAKIG5hbWVzcGFjZSB7CkBAIC0xMjYsNiArMTI3LDY2IEBAIHByaXZh
dGU6CiAgICAgV1RGOjpTdHJpbmcgbV9tb2RlOwogfTsKIAorLy8gVGhpcyBjbGFzcyBpcyB1c2Vk
IHRvIHJvdXRlIHRoZSByZXN1bHQgb2YgdGhlIFdlYldvcmtlckJhc2U6OmFsbG93RmlsZVN5c3Rl
bQorLy8gY2FsbCBiYWNrIHRvIHRoZSB3b3JrZXIgY29udGV4dC4KK2NsYXNzIEFsbG93RmlsZVN5
c3RlbU1haW5UaHJlYWRCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWxsb3dG
aWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFsbG93RmlsZVN5c3RlbU1haW5UaHJlYWRCcmlkZ2U+IGNyZWF0ZShXZWJXb3JrZXJCYXNl
KiB3b3JrZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBtb2RlLCBXZWJDb21tb25Xb3JrZXJDbGllbnQq
IGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBbGxvd0ZpbGVTeXN0ZW1NYWluVGhyZWFkQnJpZGdlKHdvcmtlciwgbW9kZSwg
Y29tbW9uQ2xpZW50LCBmcmFtZSkpOworICAgIH0KKworICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJl
IGludm9rZWQgb24gdGhlIHdvcmtlciBjb250ZXh0LgorICAgIHZvaWQgY2FuY2VsKCkKKyAgICB7
CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAgbV93b3JrZXIg
PSAwOworICAgIH0KKworICAgIGJvb2wgcmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBt
X3Jlc3VsdDsKKyAgICB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIG9uIHRoZSBt
YWluIHRocmVhZC4KKyAgICB2b2lkIHNpZ25hbENvbXBsZXRlZChib29sIHJlc3VsdCkKKyAgICB7
CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAgaWYgKG1fd29y
a2VyKQorICAgICAgICAgICAgbV93b3JrZXItPnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4
dCgKKyAgICAgICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJmRpZENvbXBsZXRlLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpLCByZXN1bHQpLCBtX21vZGUpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBBbGxvd0ZpbGVTeXN0ZW1NYWluVGhyZWFkQnJpZGdlKFdlYldvcmtlckJhc2Uq
IHdvcmtlciwgY29uc3QgV1RGOjpTdHJpbmcmIG1vZGUsIFdlYkNvbW1vbldvcmtlckNsaWVudCog
Y29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUpCisgICAgICAgIDogbV93b3JrZXIod29ya2Vy
KQorICAgICAgICAsIG1fbW9kZShtb2RlKQorICAgIHsKKyAgICAgICAgd29ya2VyLT5kaXNwYXRj
aFRhc2tUb01haW5UaHJlYWQoCisgICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJmFsbG93
RmlsZVN5c3RlbVRhc2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoY29tbW9uQ2xpZW50KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKGZyYW1l
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNz
KHRoaXMpKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYWxsb3dGaWxlU3lzdGVtVGFzayhX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJDb21tb25Xb3JrZXJD
bGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEFsbG93Rmls
ZVN5c3RlbU1haW5UaHJlYWRCcmlkZ2U+IGJyaWRnZSkKKyAgICB7CisgICAgICAgIGlmICghY29t
bW9uQ2xpZW50KQorICAgICAgICAgICAgYnJpZGdlLT5zaWduYWxDb21wbGV0ZWQoZmFsc2UpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBicmlkZ2UtPnNpZ25hbENvbXBsZXRlZChjb21tb25D
bGllbnQtPmFsbG93RmlsZVN5c3RlbShmcmFtZSkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lk
IGRpZENvbXBsZXRlKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8QWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZT4gYnJpZGdlLCBib29sIHJl
c3VsdCkKKyAgICB7CisgICAgICAgIGJyaWRnZS0+bV9yZXN1bHQgPSByZXN1bHQ7CisgICAgfQor
CisgICAgYm9vbCBtX3Jlc3VsdDsKKyAgICBNdXRleCBtX211dGV4OworICAgIFdlYldvcmtlckJh
c2UqIG1fd29ya2VyOworICAgIFdURjo6U3RyaW5nIG1fbW9kZTsKK307CisKIH0KIAogLy8gVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkIHRvIGZvcmNlIHRvIGluaXRp
YWxpemUgc29tZSBzdGF0aWMKQEAgLTI0NCw2ICszMDUsMjggQEAgYm9vbCBXZWJXb3JrZXJCYXNl
OjphbGxvd0RhdGFiYXNlKFdlYkZyYQogfQogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCiti
b29sIFdlYldvcmtlckJhc2U6OmFsbG93RmlsZVN5c3RlbSgpCit7CisgICAgV29ya2VyUnVuTG9v
cCYgcnVuTG9vcCA9IG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCk7CisgICAgV29ya2VyU2NyaXB0
Q29udHJvbGxlciogY29udHJvbGxlciA9IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmNvbnRyb2xs
ZXJGb3JDb250ZXh0KCk7CisgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IGNvbnRy
b2xsZXItPndvcmtlckNvbnRleHQoKTsKKworICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBtb2RlIGp1
c3QgZm9yIHRoaXMgc3luY2hyb25vdXMgY2FsbC4KKyAgICBTdHJpbmcgbW9kZSA9IGFsbG93Rmls
ZVN5c3RlbU1vZGU7CisgICAgbW9kZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIocnVuTG9vcC5jcmVh
dGVVbmlxdWVJZCgpKSk7CisKKyAgICBSZWZQdHI8QWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJy
aWRnZT4gYnJpZGdlID0gQWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZTo6Y3JlYXRlKHRo
aXMsIG1vZGUsIGNvbW1vbkNsaWVudCgpLCBtX3dlYlZpZXctPm1haW5GcmFtZSgpKTsKKworICAg
IC8vIEVpdGhlciB0aGUgYnJpZGdlIHJldHVybnMsIG9yIHRoZSBxdWV1ZSBnZXRzIHRlcm1pbmF0
ZWQuCisgICAgaWYgKHJ1bkxvb3AucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQsIG1vZGUpID09IE1l
c3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgYnJpZGdlLT5jYW5jZWwoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBicmlkZ2UtPnJlc3VsdCgpOwor
fQorCiB2b2lkIFdlYldvcmtlckJhc2U6Om9wZW5GaWxlU3lzdGVtRm9yV29ya2VyKFdlYkZpbGVT
eXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRlLCBXZWJGaWxlU3lz
dGVtQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgV29ya2Vy
UnVuTG9vcCYgcnVuTG9vcCA9IG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5oCShyZXZpc2lvbiA4NjI3NSkK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuaAkod29ya2luZyBj
b3B5KQpAQCAtODksOSArODksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQXBwbGljYXRp
b25DYWNoZUhvc3QqIGNyZWF0ZUFwcGxpY2F0aW9uQ2FjaGVIb3N0KFdlYkZyYW1lKiwgV2ViQXBw
bGljYXRpb25DYWNoZUhvc3RDbGllbnQqKTsKIAogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgYWNj
ZXNzIHRvIFdlYiBEYXRhYmFzZXMgaXMgYWxsb3dlZCBmb3IgdGhpcyB3b3JrZXIuCi0gICAgdmly
dHVhbCBib29sIGFsbG93RGF0YWJhc2UoV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6
ZSk7CisgICAgYm9vbCBhbGxvd0RhdGFiYXNlKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRl
ZFNpemUpOwogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIC8vIENvbnRyb2xzIHdoZXRo
ZXIgYWNjZXNzIHRvIEZpbGUgU3lzdGVtIGlzIGFsbG93ZWQgZm9yIHRoaXMgd29ya2VyLgorICAg
IGJvb2wgYWxsb3dGaWxlU3lzdGVtKCk7CiAgICAgdm9pZCBvcGVuRmlsZVN5c3RlbUZvcldvcmtl
cihXZWJGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBjcmVhdGUsIFdlYkZp
bGVTeXN0ZW1DYWxsYmFja3MqLCBib29sIHN5bmNocm9ub3VzKTsKICNlbmRpZgogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCShy
ZXZpc2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNs
aWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMTEgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQor
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ZpbGVTeXN0ZW0oV2ViRnJhbWUqKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJXb3JrZXJDbGllbnRJbXBsKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93233</attachid>
            <date>2011-05-11 19:02:38 -0700</date>
            <delta_ts>2011-05-12 09:07:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60683-20110511190006.patch</filename>
            <type>text/plain</type>
            <size>11161</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NjMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTEtMDUtMTEgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IE1ha2Ugb3BlbkZpbGVTeXN0ZW0gY2hlY2sgZm9yIHBlcm1pc3Npb24gZmlyc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjgzCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bW1vbldvcmtlckNsaWVudDo6YWxsb3dGaWxlU3lzdGVtKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
UGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd0ZpbGVTeXN0ZW0pOgorICAgICAgICAqIHNyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRmlsZVN5c3RlbU5vdEFsbG93ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlbkZpbGVTeXN0ZW1IZWxwZXIpOgorICAgICAgICAqIHNyYy9XZWJX
b3JrZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQmFzZTo6YWxsb3dGaWxl
U3lzdGVtKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQmFzZS5oOgorICAgICAgICAqIHNyYy9X
ZWJXb3JrZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudElt
cGw6OmFsbG93RmlsZVN5c3RlbSk6CisKIDIwMTEtMDUtMTEgIEFudG9pbmUgTGFib3VyICA8cGlt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uV29y
a2VyQ2xpZW50LmgJKHJldmlzaW9uIDg2Mjc1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3
LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEYXRhYmFzZShXZWJGcmFtZSos
IGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5z
aWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIG1h
aW4gd2Via2l0IHRocmVhZCBiZWZvcmUgb3BlbmluZyBhIGZpbGUgc3lzdGVtLgorICAgIHZpcnR1
YWwgYm9vbCBhbGxvd0ZpbGVTeXN0ZW0oV2ViRnJhbWUqKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHdlYmtpdCB0aHJlYWQg
YmVmb3JlIG9wZW5pbmcgYSBmaWxlIHN5c3RlbS4KICAgICB2aXJ0dWFsIHZvaWQgb3BlbkZpbGVT
eXN0ZW0oV2ViRmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRlLCBX
ZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKikKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1p
c3Npb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgJKHJldmlzaW9uIDg2Mjc1KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw5IEBAIHB1YmxpYzoKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGFjY2VzcyB0
byBXZWIgRGF0YWJhc2VzIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBi
b29sIGFsbG93RGF0YWJhc2UoV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0
IFdlYlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkgeyBy
ZXR1cm4gdHJ1ZTsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY2Nlc3MgdG8gRmlsZSBT
eXN0ZW0gaXMgYWxsb3dlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dG
aWxlU3lzdGVtKFdlYkZyYW1lKikgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMg
d2hldGhlciBpbWFnZXMgYXJlIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBi
b29sIGFsbG93SW1hZ2VzKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0
dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA4
NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3RlbUNocm9t
aXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTUgKzM0LDE5IEBACiAjaWYgRU5BQkxFKEZJ
TEVfU1lTVEVNKQogCiAjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiQ3Jv
c3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFcnJvckNh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiV2ViRmlsZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUg
IldlYkZpbGVTeXN0ZW1DYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJXZWJXb3JrZXJJbXBs
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgpAQCAtNjcsMTggKzcxLDM2IEBAIGVudW0gQ3JlYXRpb25GbGFnIHsKIAogfSAvLyBuYW1lc3Bh
Y2UKIAorc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1Ob3RBbGxvd2VkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tz
KQoreworICAgIGNhbGxiYWNrcy0+ZGlkRmFpbChXZWJLaXQ6OldlYkZpbGVFcnJvckFib3J0KTsK
K30KKwogc3RhdGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1IZWxwZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5
bmNGaWxlU3lzdGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMsIGxvbmcg
bG9uZyBzaXplLCBDcmVhdGlvbkZsYWcgY3JlYXRlKQogeworICAgIGJvb2wgYWxsb3dlZCA9IHRy
dWU7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkp
IHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihj
b250ZXh0KTsKICAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1wbDo6
ZnJvbUZyYW1lKGRvY3VtZW50LT5mcmFtZSgpKTsKLSAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgp
LT5vcGVuRmlsZVN5c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlw
ZT4odHlwZSksIHNpemUsIGNyZWF0ZSA9PSBDcmVhdGVJZk5vdFByZXNlbnQsIG5ldyBXZWJGaWxl
U3lzdGVtQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MsIHR5cGUpKTsKKyAgICAgICAgV2ViS2l0OjpX
ZWJWaWV3SW1wbCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOworICAgICAgICBpZiAo
d2ViVmlldy0+cGVybWlzc2lvbkNsaWVudCgpICYmICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50
KCktPmFsbG93RmlsZVN5c3RlbSh3ZWJGcmFtZSkpCisgICAgICAgICAgICBhbGxvd2VkID0gZmFs
c2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+b3BlbkZp
bGVTeXN0ZW0od2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUp
LCBzaXplLCBjcmVhdGUgPT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzLCB0eXBlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV29y
a2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihj
b250ZXh0KTsKICAgICAgICAgV29ya2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5ID0g
JndvcmtlckNvbnRleHQtPnRocmVhZCgpLT53b3JrZXJMb2FkZXJQcm94eSgpOwogICAgICAgICBX
ZWJXb3JrZXJCYXNlKiB3ZWJXb3JrZXIgPSBzdGF0aWNfY2FzdDxXZWJXb3JrZXJCYXNlKj4od29y
a2VyTG9hZGVyUHJveHkpOwotICAgICAgICB3ZWJXb3JrZXItPm9wZW5GaWxlU3lzdGVtRm9yV29y
a2VyKHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBjcmVhdGUg
PT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzLCB0eXBlLCBjb250ZXh0LCBzeW5jaHJvbm91cyksIHN5bmNocm9ub3VzKTsKKyAgICAg
ICAgaWYgKCF3ZWJXb3JrZXItPmFsbG93RmlsZVN5c3RlbSgpKQorICAgICAgICAgICAgYWxsb3dl
ZCA9IGZhbHNlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3ZWJXb3JrZXItPm9wZW5GaWxl
U3lzdGVtRm9yV29ya2VyKHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBz
aXplLCBjcmVhdGUgPT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxi
YWNrc0ltcGwoY2FsbGJhY2tzLCB0eXBlLCBjb250ZXh0LCBzeW5jaHJvbm91cyksIHN5bmNocm9u
b3VzKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93ZWQpIHsKKyAgICAgICAgLy8gVGhlIHRhc2tz
IGFyZSBleHBlY3RlZCB0byBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkuCisgICAgICAgIGNvbnRl
eHQtPnBvc3RUYXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmb3BlbkZpbGVTeXN0ZW1Ob3RBbGxvd2Vk
LCBjYWxsYmFja3MpKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYldvcmtlckJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCShyZXZpc2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2
ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2lmIEVOQUJMRShXT1JLRVJTKQogCiBzdGF0
aWMgY29uc3QgY2hhciBhbGxvd0RhdGFiYXNlTW9kZVtdID0gImFsbG93RGF0YWJhc2VNb2RlIjsK
K3N0YXRpYyBjb25zdCBjaGFyIGFsbG93RmlsZVN5c3RlbU1vZGVbXSA9ICJhbGxvd0ZpbGVTeXN0
ZW1Nb2RlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wZW5GaWxlU3lzdGVtTW9kZVtdID0gIm9wZW5G
aWxlU3lzdGVtTW9kZSI7CiAKIG5hbWVzcGFjZSB7CkBAIC0xMjYsNiArMTI3LDY2IEBAIHByaXZh
dGU6CiAgICAgV1RGOjpTdHJpbmcgbV9tb2RlOwogfTsKIAorLy8gVGhpcyBjbGFzcyBpcyB1c2Vk
IHRvIHJvdXRlIHRoZSByZXN1bHQgb2YgdGhlIFdlYldvcmtlckJhc2U6OmFsbG93RmlsZVN5c3Rl
bQorLy8gY2FsbCBiYWNrIHRvIHRoZSB3b3JrZXIgY29udGV4dC4KK2NsYXNzIEFsbG93RmlsZVN5
c3RlbU1haW5UaHJlYWRCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWxsb3dG
aWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFsbG93RmlsZVN5c3RlbU1haW5UaHJlYWRCcmlkZ2U+IGNyZWF0ZShXZWJXb3JrZXJCYXNl
KiB3b3JrZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBtb2RlLCBXZWJDb21tb25Xb3JrZXJDbGllbnQq
IGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBBbGxvd0ZpbGVTeXN0ZW1NYWluVGhyZWFkQnJpZGdlKHdvcmtlciwgbW9kZSwg
Y29tbW9uQ2xpZW50LCBmcmFtZSkpOworICAgIH0KKworICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJl
IGludm9rZWQgb24gdGhlIHdvcmtlciBjb250ZXh0LgorICAgIHZvaWQgY2FuY2VsKCkKKyAgICB7
CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAgbV93b3JrZXIg
PSAwOworICAgIH0KKworICAgIGJvb2wgcmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiBt
X3Jlc3VsdDsKKyAgICB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIG9uIHRoZSBt
YWluIHRocmVhZC4KKyAgICB2b2lkIHNpZ25hbENvbXBsZXRlZChib29sIHJlc3VsdCkKKyAgICB7
CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICAgICAgaWYgKG1fd29y
a2VyKQorICAgICAgICAgICAgbV93b3JrZXItPnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4
dCgKKyAgICAgICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJmRpZENvbXBsZXRlLCBBbGxv
d0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpLCByZXN1bHQpLCBtX21vZGUpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBBbGxvd0ZpbGVTeXN0ZW1NYWluVGhyZWFkQnJpZGdlKFdlYldvcmtlckJhc2Uq
IHdvcmtlciwgY29uc3QgV1RGOjpTdHJpbmcmIG1vZGUsIFdlYkNvbW1vbldvcmtlckNsaWVudCog
Y29tbW9uQ2xpZW50LCBXZWJGcmFtZSogZnJhbWUpCisgICAgICAgIDogbV93b3JrZXIod29ya2Vy
KQorICAgICAgICAsIG1fbW9kZShtb2RlKQorICAgIHsKKyAgICAgICAgd29ya2VyLT5kaXNwYXRj
aFRhc2tUb01haW5UaHJlYWQoCisgICAgICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJmFsbG93
RmlsZVN5c3RlbVRhc2ssIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoY29tbW9uQ2xpZW50KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKGZyYW1l
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNz
KHRoaXMpKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYWxsb3dGaWxlU3lzdGVtVGFzayhX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJDb21tb25Xb3JrZXJD
bGllbnQqIGNvbW1vbkNsaWVudCwgV2ViRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEFsbG93Rmls
ZVN5c3RlbU1haW5UaHJlYWRCcmlkZ2U+IGJyaWRnZSkKKyAgICB7CisgICAgICAgIGlmICghY29t
bW9uQ2xpZW50KQorICAgICAgICAgICAgYnJpZGdlLT5zaWduYWxDb21wbGV0ZWQoZmFsc2UpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBicmlkZ2UtPnNpZ25hbENvbXBsZXRlZChjb21tb25D
bGllbnQtPmFsbG93RmlsZVN5c3RlbShmcmFtZSkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lk
IGRpZENvbXBsZXRlKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8QWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZT4gYnJpZGdlLCBib29sIHJl
c3VsdCkKKyAgICB7CisgICAgICAgIGJyaWRnZS0+bV9yZXN1bHQgPSByZXN1bHQ7CisgICAgfQor
CisgICAgYm9vbCBtX3Jlc3VsdDsKKyAgICBNdXRleCBtX211dGV4OworICAgIFdlYldvcmtlckJh
c2UqIG1fd29ya2VyOworICAgIFdURjo6U3RyaW5nIG1fbW9kZTsKK307CisKIH0KIAogLy8gVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkIHRvIGZvcmNlIHRvIGluaXRp
YWxpemUgc29tZSBzdGF0aWMKQEAgLTI0NCw2ICszMDUsMjggQEAgYm9vbCBXZWJXb3JrZXJCYXNl
OjphbGxvd0RhdGFiYXNlKFdlYkZyYQogfQogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCiti
b29sIFdlYldvcmtlckJhc2U6OmFsbG93RmlsZVN5c3RlbSgpCit7CisgICAgV29ya2VyUnVuTG9v
cCYgcnVuTG9vcCA9IG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCk7CisgICAgV29ya2VyU2NyaXB0
Q29udHJvbGxlciogY29udHJvbGxlciA9IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmNvbnRyb2xs
ZXJGb3JDb250ZXh0KCk7CisgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IGNvbnRy
b2xsZXItPndvcmtlckNvbnRleHQoKTsKKworICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBtb2RlIGp1
c3QgZm9yIHRoaXMgc3luY2hyb25vdXMgY2FsbC4KKyAgICBTdHJpbmcgbW9kZSA9IGFsbG93Rmls
ZVN5c3RlbU1vZGU7CisgICAgbW9kZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIocnVuTG9vcC5jcmVh
dGVVbmlxdWVJZCgpKSk7CisKKyAgICBSZWZQdHI8QWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJy
aWRnZT4gYnJpZGdlID0gQWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZTo6Y3JlYXRlKHRo
aXMsIG1vZGUsIGNvbW1vbkNsaWVudCgpLCBtX3dlYlZpZXctPm1haW5GcmFtZSgpKTsKKworICAg
IC8vIEVpdGhlciB0aGUgYnJpZGdlIHJldHVybnMsIG9yIHRoZSBxdWV1ZSBnZXRzIHRlcm1pbmF0
ZWQuCisgICAgaWYgKHJ1bkxvb3AucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQsIG1vZGUpID09IE1l
c3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgYnJpZGdlLT5jYW5jZWwoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBicmlkZ2UtPnJlc3VsdCgpOwor
fQorCiB2b2lkIFdlYldvcmtlckJhc2U6Om9wZW5GaWxlU3lzdGVtRm9yV29ya2VyKFdlYkZpbGVT
eXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRlLCBXZWJGaWxlU3lz
dGVtQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgV29ya2Vy
UnVuTG9vcCYgcnVuTG9vcCA9IG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5oCShyZXZpc2lvbiA4NjI3NSkK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuaAkod29ya2luZyBj
b3B5KQpAQCAtODksOSArODksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQXBwbGljYXRp
b25DYWNoZUhvc3QqIGNyZWF0ZUFwcGxpY2F0aW9uQ2FjaGVIb3N0KFdlYkZyYW1lKiwgV2ViQXBw
bGljYXRpb25DYWNoZUhvc3RDbGllbnQqKTsKIAogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgYWNj
ZXNzIHRvIFdlYiBEYXRhYmFzZXMgaXMgYWxsb3dlZCBmb3IgdGhpcyB3b3JrZXIuCi0gICAgdmly
dHVhbCBib29sIGFsbG93RGF0YWJhc2UoV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6
ZSk7CisgICAgYm9vbCBhbGxvd0RhdGFiYXNlKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRl
ZFNpemUpOwogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIC8vIENvbnRyb2xzIHdoZXRo
ZXIgYWNjZXNzIHRvIEZpbGUgU3lzdGVtIGlzIGFsbG93ZWQgZm9yIHRoaXMgd29ya2VyLgorICAg
IGJvb2wgYWxsb3dGaWxlU3lzdGVtKCk7CiAgICAgdm9pZCBvcGVuRmlsZVN5c3RlbUZvcldvcmtl
cihXZWJGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBjcmVhdGUsIFdlYkZp
bGVTeXN0ZW1DYWxsYmFja3MqLCBib29sIHN5bmNocm9ub3VzKTsKICNlbmRpZgogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCShy
ZXZpc2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNs
aWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMTEgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQor
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ZpbGVTeXN0ZW0oV2ViRnJhbWUqKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJXb3JrZXJDbGllbnRJbXBsKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93292</attachid>
            <date>2011-05-12 09:07:23 -0700</date>
            <delta_ts>2011-05-12 11:14:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60683-20110512090452.patch</filename>
            <type>text/plain</type>
            <size>11002</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4NjMwMCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTEtMDUtMTEgIEpvaG4gQWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1d
IE1ha2Ugb3BlbkZpbGVTeXN0ZW0gY2hlY2sgZm9yIHBlcm1pc3Npb24gZmlyc3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjgzCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bW1vbldvcmtlckNsaWVudDo6YWxsb3dGaWxlU3lzdGVtKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
UGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd0ZpbGVTeXN0ZW0pOgorICAgICAgICAqIHNyYy9Mb2NhbEZpbGVTeXN0ZW1DaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVuRmlsZVN5c3RlbU5vdEFsbG93ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlbkZpbGVTeXN0ZW1IZWxwZXIpOgorICAgICAgICAqIHNyYy9XZWJX
b3JrZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQmFzZTo6YWxsb3dGaWxl
U3lzdGVtKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2VyQmFzZS5oOgorICAgICAgICAqIHNyYy9X
ZWJXb3JrZXJDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudElt
cGw6OmFsbG93RmlsZVN5c3RlbSk6CisKIDIwMTEtMDUtMTEgIEFudG9pbmUgTGFib3VyICA8cGlt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uV29y
a2VyQ2xpZW50LmgJKHJldmlzaW9uIDg2Mjc1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3
LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEYXRhYmFzZShXZWJGcmFtZSos
IGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5z
aWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgb24gdGhlIG1h
aW4gd2Via2l0IHRocmVhZCBiZWZvcmUgb3BlbmluZyBhIGZpbGUgc3lzdGVtLgorICAgIHZpcnR1
YWwgYm9vbCBhbGxvd0ZpbGVTeXN0ZW0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgLy8gQ2FsbGVkIG9uIHRoZSBtYWluIHdlYmtpdCB0aHJlYWQgYmVmb3JlIG9w
ZW5pbmcgYSBmaWxlIHN5c3RlbS4KICAgICB2aXJ0dWFsIHZvaWQgb3BlbkZpbGVTeXN0ZW0oV2Vi
RmlsZVN5c3RlbTo6VHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRlLCBXZWJGaWxlU3lz
dGVtQ2FsbGJhY2tzKikKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJt
aXNzaW9uQ2xpZW50LmgJKHJldmlzaW9uIDg2Mjc1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0
Miw5IEBAIHB1YmxpYzoKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGFjY2VzcyB0byBXZWIgRGF0
YWJhc2VzIGlzIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBib29sIGFsbG93
RGF0YWJhc2UoV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY2Nlc3MgdG8gRmlsZSBTeXN0ZW0gaXMg
YWxsb3dlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dGaWxlU3lzdGVt
KFdlYkZyYW1lKikgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBp
bWFnZXMgYXJlIGFsbG93ZWQgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBib29sIGFsbG93
SW1hZ2VzKFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVuYWJs
ZWRQZXJTZXR0aW5nczsgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2Nh
bEZpbGVTeXN0ZW1DaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvTG9jYWxGaWxlU3lzdGVtQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA4NjI3NSkKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsRmlsZVN5c3RlbUNocm9taXVtLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsMTUgKzM0LDE5IEBACiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVN
KQogCiAjaW5jbHVkZSAiQXN5bmNGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRU
YXNrLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUNh
bGxiYWNrcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViRmls
ZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIldlYkZpbGVT
eXN0ZW1DYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQuaCIKICNpbmNs
dWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCisj
aW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRlICJXZWJXb3JrZXJJbXBsLmgiCiAjaW5j
bHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgpAQCAtNjcs
MTggKzcxLDM2IEBAIGVudW0gQ3JlYXRpb25GbGFnIHsKIAogfSAvLyBuYW1lc3BhY2UKIAorc3Rh
dGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1Ob3RBbGxvd2VkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcz4gY2FsbGJhY2tzKQoreworICAg
IGNhbGxiYWNrcy0+ZGlkRmFpbChXZWJLaXQ6OldlYkZpbGVFcnJvckFib3J0KTsKK30KKwogc3Rh
dGljIHZvaWQgb3BlbkZpbGVTeXN0ZW1IZWxwZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgQXN5bmNGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMsIGxvbmcgbG9uZyBzaXpl
LCBDcmVhdGlvbkZsYWcgY3JlYXRlKQogeworICAgIGJvb2wgYWxsb3dlZCA9IHRydWU7CiAgICAg
QVNTRVJUKGNvbnRleHQpOwogICAgIGlmIChjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKICAgICAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KTsK
ICAgICAgICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1l
KGRvY3VtZW50LT5mcmFtZSgpKTsKLSAgICAgICAgd2ViRnJhbWUtPmNsaWVudCgpLT5vcGVuRmls
ZVN5c3RlbSh3ZWJGcmFtZSwgc3RhdGljX2Nhc3Q8V2ViRmlsZVN5c3RlbTo6VHlwZT4odHlwZSks
IHNpemUsIGNyZWF0ZSA9PSBDcmVhdGVJZk5vdFByZXNlbnQsIG5ldyBXZWJGaWxlU3lzdGVtQ2Fs
bGJhY2tzSW1wbChjYWxsYmFja3MsIHR5cGUpKTsKKyAgICAgICAgV2ViS2l0OjpXZWJWaWV3SW1w
bCogd2ViVmlldyA9IHdlYkZyYW1lLT52aWV3SW1wbCgpOworICAgICAgICBpZiAod2ViVmlldy0+
cGVybWlzc2lvbkNsaWVudCgpICYmICF3ZWJWaWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93
RmlsZVN5c3RlbSh3ZWJGcmFtZSkpCisgICAgICAgICAgICBhbGxvd2VkID0gZmFsc2U7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHdlYkZyYW1lLT5jbGllbnQoKS0+b3BlbkZpbGVTeXN0ZW0o
d2ViRnJhbWUsIHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBj
cmVhdGUgPT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0lt
cGwoY2FsbGJhY2tzLCB0eXBlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV29ya2VyQ29udGV4
dCogd29ya2VyQ29udGV4dCA9IHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KTsK
ICAgICAgICAgV29ya2VyTG9hZGVyUHJveHkqIHdvcmtlckxvYWRlclByb3h5ID0gJndvcmtlckNv
bnRleHQtPnRocmVhZCgpLT53b3JrZXJMb2FkZXJQcm94eSgpOwogICAgICAgICBXZWJXb3JrZXJC
YXNlKiB3ZWJXb3JrZXIgPSBzdGF0aWNfY2FzdDxXZWJXb3JrZXJCYXNlKj4od29ya2VyTG9hZGVy
UHJveHkpOwotICAgICAgICB3ZWJXb3JrZXItPm9wZW5GaWxlU3lzdGVtRm9yV29ya2VyKHN0YXRp
Y19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBjcmVhdGUgPT0gQ3JlYXRl
SWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzLCB0
eXBlLCBjb250ZXh0LCBzeW5jaHJvbm91cyksIHN5bmNocm9ub3VzKTsKKyAgICAgICAgaWYgKCF3
ZWJXb3JrZXItPmFsbG93RmlsZVN5c3RlbSgpKQorICAgICAgICAgICAgYWxsb3dlZCA9IGZhbHNl
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB3ZWJXb3JrZXItPm9wZW5GaWxlU3lzdGVtRm9y
V29ya2VyKHN0YXRpY19jYXN0PFdlYkZpbGVTeXN0ZW06OlR5cGU+KHR5cGUpLCBzaXplLCBjcmVh
dGUgPT0gQ3JlYXRlSWZOb3RQcmVzZW50LCBuZXcgV2ViRmlsZVN5c3RlbUNhbGxiYWNrc0ltcGwo
Y2FsbGJhY2tzLCB0eXBlLCBjb250ZXh0LCBzeW5jaHJvbm91cyksIHN5bmNocm9ub3VzKTsKKyAg
ICB9CisKKyAgICBpZiAoIWFsbG93ZWQpIHsKKyAgICAgICAgLy8gVGhlIHRhc2tzIGFyZSBleHBl
Y3RlZCB0byBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkuCisgICAgICAgIGNvbnRleHQtPnBvc3RU
YXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmb3BlbkZpbGVTeXN0ZW1Ob3RBbGxvd2VkLCBjYWxsYmFj
a3MpKTsKICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldv
cmtlckJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YldvcmtlckJhc2UuY3BwCShyZXZpc2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogI2lmIEVOQUJMRShXT1JLRVJTKQogCiBzdGF0aWMgY29uc3Qg
Y2hhciBhbGxvd0RhdGFiYXNlTW9kZVtdID0gImFsbG93RGF0YWJhc2VNb2RlIjsKK3N0YXRpYyBj
b25zdCBjaGFyIGFsbG93RmlsZVN5c3RlbU1vZGVbXSA9ICJhbGxvd0ZpbGVTeXN0ZW1Nb2RlIjsK
IHN0YXRpYyBjb25zdCBjaGFyIG9wZW5GaWxlU3lzdGVtTW9kZVtdID0gIm9wZW5GaWxlU3lzdGVt
TW9kZSI7CiAKIG5hbWVzcGFjZSB7CkBAIC0xMjYsNiArMTI3LDY1IEBAIHByaXZhdGU6CiAgICAg
V1RGOjpTdHJpbmcgbV9tb2RlOwogfTsKIAorLy8gVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHJvdXRl
IHRoZSByZXN1bHQgb2YgdGhlIFdlYldvcmtlckJhc2U6OmFsbG93RmlsZVN5c3RlbQorLy8gY2Fs
bCBiYWNrIHRvIHRoZSB3b3JrZXIgY29udGV4dC4KK2NsYXNzIEFsbG93RmlsZVN5c3RlbU1haW5U
aHJlYWRCcmlkZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QWxsb3dGaWxlU3lzdGVt
TWFpblRocmVhZEJyaWRnZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFsbG93
RmlsZVN5c3RlbU1haW5UaHJlYWRCcmlkZ2U+IGNyZWF0ZShXZWJXb3JrZXJCYXNlKiB3b3JrZXIs
IGNvbnN0IFdURjo6U3RyaW5nJiBtb2RlLCBXZWJDb21tb25Xb3JrZXJDbGllbnQqIGNvbW1vbkNs
aWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQWxsb3dGaWxlU3lzdGVt
TWFpblRocmVhZEJyaWRnZSh3b3JrZXIsIG1vZGUsIGNvbW1vbkNsaWVudCkpOworICAgIH0KKwor
ICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIGludm9rZWQgb24gdGhlIHdvcmtlciBjb250ZXh0Lgor
ICAgIHZvaWQgY2FuY2VsKCkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKKyAgICAgICAgbV93b3JrZXIgPSAwOworICAgIH0KKworICAgIGJvb2wgcmVzdWx0KCkK
KyAgICB7CisgICAgICAgIHJldHVybiBtX3Jlc3VsdDsKKyAgICB9CisKKyAgICAvLyBUaGlzIG1l
dGhvZCBpcyBpbnZva2VkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICB2b2lkIHNpZ25hbENvbXBs
ZXRlZChib29sIHJlc3VsdCkKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211
dGV4KTsKKyAgICAgICAgaWYgKG1fd29ya2VyKQorICAgICAgICAgICAgbV93b3JrZXItPnBvc3RU
YXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dCgKKyAgICAgICAgICAgICAgICBjcmVhdGVDYWxsYmFj
a1Rhc2soJmRpZENvbXBsZXRlLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpLCByZXN1bHQp
LCBtX21vZGUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBBbGxvd0ZpbGVTeXN0ZW1NYWluVGhy
ZWFkQnJpZGdlKFdlYldvcmtlckJhc2UqIHdvcmtlciwgY29uc3QgV1RGOjpTdHJpbmcmIG1vZGUs
IFdlYkNvbW1vbldvcmtlckNsaWVudCogY29tbW9uQ2xpZW50KQorICAgICAgICA6IG1fd29ya2Vy
KHdvcmtlcikKKyAgICAgICAgLCBtX21vZGUobW9kZSkKKyAgICB7CisgICAgICAgIHdvcmtlci0+
ZGlzcGF0Y2hUYXNrVG9NYWluVGhyZWFkKAorICAgICAgICAgICAgY3JlYXRlQ2FsbGJhY2tUYXNr
KCZhbGxvd0ZpbGVTeXN0ZW1UYXNrLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKGNvbW1vbkNsaWVu
dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cyh0aGlzKSkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFsbG93RmlsZVN5c3RlbVRhc2so
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV2ViQ29tbW9uV29ya2Vy
Q2xpZW50KiBjb21tb25DbGllbnQsIFBhc3NSZWZQdHI8QWxsb3dGaWxlU3lzdGVtTWFpblRocmVh
ZEJyaWRnZT4gYnJpZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFjb21tb25DbGllbnQpCisgICAg
ICAgICAgICBicmlkZ2UtPnNpZ25hbENvbXBsZXRlZChmYWxzZSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGJyaWRnZS0+c2lnbmFsQ29tcGxldGVkKGNvbW1vbkNsaWVudC0+YWxsb3dGaWxl
U3lzdGVtKCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGRpZENvbXBsZXRlKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8QWxsb3dGaWxlU3lz
dGVtTWFpblRocmVhZEJyaWRnZT4gYnJpZGdlLCBib29sIHJlc3VsdCkKKyAgICB7CisgICAgICAg
IGJyaWRnZS0+bV9yZXN1bHQgPSByZXN1bHQ7CisgICAgfQorCisgICAgYm9vbCBtX3Jlc3VsdDsK
KyAgICBNdXRleCBtX211dGV4OworICAgIFdlYldvcmtlckJhc2UqIG1fd29ya2VyOworICAgIFdU
Rjo6U3RyaW5nIG1fbW9kZTsKK307CisKIH0KIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
b24gdGhlIG1haW4gdGhyZWFkIHRvIGZvcmNlIHRvIGluaXRpYWxpemUgc29tZSBzdGF0aWMKQEAg
LTI0NCw2ICszMDQsMjggQEAgYm9vbCBXZWJXb3JrZXJCYXNlOjphbGxvd0RhdGFiYXNlKFdlYkZy
YQogfQogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCitib29sIFdlYldvcmtlckJhc2U6OmFs
bG93RmlsZVN5c3RlbSgpCit7CisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1fd29ya2Vy
VGhyZWFkLT5ydW5Mb29wKCk7CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CisgICAg
V29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IGNvbnRyb2xsZXItPndvcmtlckNvbnRleHQo
KTsKKworICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBtb2RlIGp1c3QgZm9yIHRoaXMgc3luY2hyb25v
dXMgY2FsbC4KKyAgICBTdHJpbmcgbW9kZSA9IGFsbG93RmlsZVN5c3RlbU1vZGU7CisgICAgbW9k
ZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIocnVuTG9vcC5jcmVhdGVVbmlxdWVJZCgpKSk7CisKKyAg
ICBSZWZQdHI8QWxsb3dGaWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZT4gYnJpZGdlID0gQWxsb3dG
aWxlU3lzdGVtTWFpblRocmVhZEJyaWRnZTo6Y3JlYXRlKHRoaXMsIG1vZGUsIGNvbW1vbkNsaWVu
dCgpKTsKKworICAgIC8vIEVpdGhlciB0aGUgYnJpZGdlIHJldHVybnMsIG9yIHRoZSBxdWV1ZSBn
ZXRzIHRlcm1pbmF0ZWQuCisgICAgaWYgKHJ1bkxvb3AucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQs
IG1vZGUpID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgYnJpZGdlLT5jYW5j
ZWwoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBicmlkZ2Ut
PnJlc3VsdCgpOworfQorCiB2b2lkIFdlYldvcmtlckJhc2U6Om9wZW5GaWxlU3lzdGVtRm9yV29y
a2VyKFdlYkZpbGVTeXN0ZW06OlR5cGUgdHlwZSwgbG9uZyBsb25nIHNpemUsIGJvb2wgY3JlYXRl
LCBXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGJvb2wgc3luY2hyb25vdXMpCiB7
CiAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1fd29ya2VyVGhyZWFkLT5ydW5Mb29wKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5oCShyZXZp
c2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtODksOSArODksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
V2ViQXBwbGljYXRpb25DYWNoZUhvc3QqIGNyZWF0ZUFwcGxpY2F0aW9uQ2FjaGVIb3N0KFdlYkZy
YW1lKiwgV2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQqKTsKIAogICAgIC8vIENvbnRyb2xz
IHdoZXRoZXIgYWNjZXNzIHRvIFdlYiBEYXRhYmFzZXMgaXMgYWxsb3dlZCBmb3IgdGhpcyB3b3Jr
ZXIuCi0gICAgdmlydHVhbCBib29sIGFsbG93RGF0YWJhc2UoV2ViRnJhbWUqLCBjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcg
ZXN0aW1hdGVkU2l6ZSk7CisgICAgYm9vbCBhbGxvd0RhdGFiYXNlKFdlYkZyYW1lKiwgY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBs
b25nIGVzdGltYXRlZFNpemUpOwogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgIC8vIENv
bnRyb2xzIHdoZXRoZXIgYWNjZXNzIHRvIEZpbGUgU3lzdGVtIGlzIGFsbG93ZWQgZm9yIHRoaXMg
d29ya2VyLgorICAgIGJvb2wgYWxsb3dGaWxlU3lzdGVtKCk7CiAgICAgdm9pZCBvcGVuRmlsZVN5
c3RlbUZvcldvcmtlcihXZWJGaWxlU3lzdGVtOjpUeXBlLCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBj
cmVhdGUsIFdlYkZpbGVTeXN0ZW1DYWxsYmFja3MqLCBib29sIHN5bmNocm9ub3VzKTsKICNlbmRp
ZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xp
ZW50SW1wbC5oCShyZXZpc2lvbiA4NjI3NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYldvcmtlckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMTEgQEAg
cHVibGljOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQorICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ZpbGVTeXN0ZW0oV2ViRnJhbWUqKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJXb3JrZXJDbGllbnRJbXBsKCk7
Cg==
</data>
<flag name="review"
          id="86429"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>