<?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>88298</bug_id>
          
          <creation_ts>2012-06-04 23:53:11 -0700</creation_ts>
          <short_desc>Support file extensions in HTMLInputElement::accept</short_desc>
          <delta_ts>2017-01-12 14:59:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88241</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>andrew.roazen</cc>
    
    <cc>ap</cc>
    
    <cc>fishd</cc>
    
    <cc>jochen</cc>
    
    <cc>jonlee</cc>
    
    <cc>morrita</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>641224</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-04 23:53:11 -0700</bug_when>
    <thetext>Support file extensions in HTMLInputElement::accept

The WHATWG spec:
http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#file-upload-state-(type=file)

&gt; If specified, the attribute must consist of a set of comma-separated tokens, each of which must be an ASCII case-insensitive match for one of the following:
&gt; The string audio/*
&gt;   Indicates that sound files are accepted.
&gt; The string video/*
&gt;   Indicates that video files are accepted.
&gt; The string image/*
&gt;   Indicates that image files are accepted.
&gt; A valid MIME type with no parameters
&gt;   Indicates that files of the specified type are accepted.
&gt; A string whose first character is a U+002E FULL STOP character (.)
&gt;   Indicates that files with the specified file extension are accepted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641237</commentid>
    <comment_count>1</comment_count>
      <attachid>145708</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-05 00:11:18 -0700</bug_when>
    <thetext>Created attachment 145708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641284</commentid>
    <comment_count>2</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-06-05 01:18:29 -0700</bug_when>
    <thetext>is it possible to write a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641293</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-05 01:26:19 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; is it possible to write a test for this?

We might be able to write a unit test for accept attribute parsing.  But it&apos;s impossible to test behavior of platform-dependent file chooser dialogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641797</commentid>
    <comment_count>4</comment_count>
      <attachid>145708</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-06-05 12:16:54 -0700</bug_when>
    <thetext>Comment on attachment 145708
Patch

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

Unofficial r=me.

&gt; Source/WebCore/ChangeLog:15
&gt; +        FileChooserSettings::acceptMIMETypes in the future.

Is there a filed WK bug for this? If not, could you file it, and mentioned that bug here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641937</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-05 15:26:31 -0700</bug_when>
    <thetext>This is somewhat confusing. Don&apos;t we want to deal with one concept in DOM code, and have other type specifiers converted to that by platform code? in addition to MIME type and extension, there could be legacy Mac OS types/creators, OS level preferences, and who knows what else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642082</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-05 18:40:47 -0700</bug_when>
    <thetext>Yeah, handling of these types is platform-dependent. Some platforms use only MIME types, some platforms use only file extensions, and some platforms use both of MIME types and file extensions. 

The specification says:
&gt; On platforms that only use file extensions to describe file types, the extensions listed here can be used to filter the allowed documents, while the MIME types can be used with the system&apos;s type registration table (mapping MIME types to extensions used by the system), if any, to determine any other extensions to allow. Similarly, on a system that does not have file names or extensions but labels documents with MIME types internally, the MIME types can be used to pick the allowed files, while the extensions can be used if the system has an extension registration table that maps known extensions to MIME types used by the system.

How about adding FileChooserSettings::acceptFileExtensions in addition to acceptMIMETypes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642206</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-05 23:06:07 -0700</bug_when>
    <thetext>I don&apos;t have much insight into where to do this, however it seems logical that a platform layer should map extensions to MIME types, and cross-platofrm code should deal with MIME types only. Do you foresee needing to specify extensions that don&apos;t have reasonable MIME type mappings?

OS X for instance doesn&apos;t use MIME types all that much - the internal concept of UTI is similar yet different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642228</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-05 23:46:32 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I don&apos;t have much insight into where to do this, however it seems logical that a platform layer should map extensions to MIME types, and cross-platofrm code should deal with MIME types only. Do you foresee needing to specify extensions that don&apos;t have reasonable MIME type mappings?
&gt; 
&gt; OS X for instance doesn&apos;t use MIME types all that much - the internal concept of UTI is similar yet different.

Specifying file extensions in &apos;accept&apos; HTML attribute is defined by the standard. We can&apos;t avoid file extensions in WebCore.

We might able to stop parsing accept attribute value at all. A platform layer parses it and recognizes file extensions and/or MIME types in this case. However this is not good for code sharing because accept attribute parsing is required by all of platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642249</commentid>
    <comment_count>9</comment_count>
      <attachid>145950</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-06 00:29:12 -0700</bug_when>
    <thetext>Created attachment 145950
Patch 2

Keeping both of acceptMIMETypes and acceptFileExtensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649827</commentid>
    <comment_count>10</comment_count>
      <attachid>145950</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-14 21:10:27 -0700</bug_when>
    <thetext>Comment on attachment 145950
Patch 2

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:729
&gt; +    Vector&lt;String&gt; acceptTypes;

Is it possible to have FileChooserSettings::acceptTypes() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649837</commentid>
    <comment_count>11</comment_count>
      <attachid>147723</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-14 21:27:54 -0700</bug_when>
    <thetext>Created attachment 147723
Patch 3

FileChooserSettings::acceptTypes()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649926</commentid>
    <comment_count>12</comment_count>
      <attachid>147723</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 23:38:43 -0700</bug_when>
    <thetext>Comment on attachment 147723
Patch 3

Clearing flags on attachment: 147723

Committed r120410: &lt;http://trac.webkit.org/changeset/120410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649927</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 23:38:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266212</commentid>
    <comment_count>14</comment_count>
    <who name="">andrew.roazen</who>
    <bug_when>2017-01-12 11:15:26 -0800</bug_when>
    <thetext>Apologies for bringing this up but so far I cannot get Safari to filter a file dialog by file extension; it permits any and all files to be selected for upload when I use ACCEPT=&quot;.stl&quot; on an INPUT element.

Can someone review the code and test it again? We&apos;re having a number of Safari users uploading files which our backend isn&apos;t meant to accept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266310</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-01-12 14:59:57 -0800</bug_when>
    <thetext>Could you please file a new bug with a test case? Discussing the new problem here would be less effective and potentially confusing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145708</attachid>
            <date>2012-06-05 00:11:18 -0700</date>
            <delta_ts>2012-06-06 00:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88298-20120605161117.patch</filename>
            <type>text/plain</type>
            <size>7917</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4YThjZGE2MWI3ZDNm
NTI5NzY2NDY3MTNkY2Y4NGNjM2Y5NTNhZC4uY2U3MDhjN2VjNDNjNTdkOTg0Yjk1ZGEzZTg1NTc1
MmYxMjA2MzVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA2LTA0ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IGZpbGUgZXh0
ZW5zaW9ucyBpbiBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhlIFdlYkNvcmUgRmlsZUNob29zZXIgaW50
ZXJmYWNlLCB3ZSByZWplY3RlZCBpbnZhbGlkIE1JTUUgdHlwZQorICAgICAgICBzdHJpbmdzIGlu
IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcygpLCBhbmQgcGxhdGZvcm0gZmlsZQor
ICAgICAgICBjaG9vc2VycyBkb24ndCBleHBlY3QgdGhhdCBpdCBjb250YWludHMgZmlsZSBleHRl
bnNpb25zLiBTbywgdGhpcyBwYXRjaAorICAgICAgICBpbnRyb2R1Y2VzIGFkZGl0aW9uYWwgcGFy
YW1ldGVyICJhY2NlcHRUeXBlcyIgdG8gRmlsZUNob29zZXJTZXR0aW5ncywKKyAgICAgICAgYW5k
IGl0IGNvbnRhaW5zIGJvdGggb2YgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnNpb25zLgorCisg
ICAgICAgIFdlJ2xsIHJlbW92ZSBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRNSU1FVHlwZXMoKSBh
bmQKKyAgICAgICAgRmlsZUNob29zZXJTZXR0aW5nczo6YWNjZXB0TUlNRVR5cGVzIGluIHRoZSBm
dXR1cmUuCisKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICBTZXRz
IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdFR5cGVzKCkgdG8gRmlsZUNob29zZXJTZXR0aW5nczo6
YWNjZXB0VHlwZXMuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpoYW5kbGVET01B
Y3RpdmF0ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnJlY2VpdmVE
cm9wRm9yRGlyZWN0b3J5VXBsb2FkKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZEZpbGVFeHRlbnNpb24pOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnBhcnNlQWNjZXB0QXR0cmlidXRlKTogQ29tbW9uIHBhcnQgZm9yIGFj
Y2VwdE1JTUVUeXBzKCkgYW5kIGFjY2VwdFR5cGVzKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjphY2NlcHRNSU1FVHlwZXMpOiBVc2VzIHBhcnNlQWNjZXB0QXR0cmlidXRl
KCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRUeXBlcyk6IEFk
ZGVkLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoSFRNTElu
cHV0RWxlbWVudCk6IEFkZCBhY2NlcHRUeXBlcygpLgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVD
aG9vc2VyLmg6CisgICAgICAgIChGaWxlQ2hvb3NlclNldHRpbmdzKTogQWRkIGFjY2VwdFR5cGVz
LgorCiAyMDEyLTA2LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIExlYWtpbmcgQ2xpcFJlY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDIwZGM2NmIxOWY5YjhjNDVkYzRmZTY1MmZmMGVmYzUwZmRkNzZmOGUuLjFhNWU5NzE5ZDJkNTk5
OTA0NzM0MDBmN2VhN2Q4MDVlNWIyZDBiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMDYtMDQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFN1cHBvcnQgZmlsZSBleHRlbnNpb25zIGluIEhUTUxJbnB1dEVsZW1l
bnQ6OmFjY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODgyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50SW1wbDo6cnVuT3BlblBhbmVsKToKKyAgICAgICAgUGFzcyBhY2NlcHRUeXBlcyBpbnN0ZWFk
IG9mIGFjY2VwdE1JTUVUeXBlcy4KKwogMjAxMi0wNi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtq
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSByZWR1bmRhbnQgc2V0
TmVlZHNDb21taXQgd2hlbiBwcmVwYXJlVG9EcmF3IGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAppbmRleCA3MmI2NzU2OTFkOWI2ZjJlNTRjM2ZmY2Q3ZGU0OTgzNzI0Zjdh
NDhiLi4yNTUyNTdmNGQ2YzMxODVlMjVkMThkMjNmYTMwOTU1N2NjODdlNTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTE4Nyw2ICsxODcsNyBAQCB2b2lkIEZpbGVJ
bnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqIGV2ZW50KQogICAgICAgICBz
ZXR0aW5ncy5hbGxvd3NNdWx0aXBsZUZpbGVzID0gaW5wdXQtPmZhc3RIYXNBdHRyaWJ1dGUobXVs
dGlwbGVBdHRyKTsKICNlbmRpZgogICAgICAgICBzZXR0aW5ncy5hY2NlcHRNSU1FVHlwZXMgPSBp
bnB1dC0+YWNjZXB0TUlNRVR5cGVzKCk7CisgICAgICAgIHNldHRpbmdzLmFjY2VwdFR5cGVzID0g
aW5wdXQtPmFjY2VwdFR5cGVzKCk7CiAgICAgICAgIHNldHRpbmdzLnNlbGVjdGVkRmlsZXMgPSBt
X2ZpbGVMaXN0LT5wYXRocygpOwogI2lmIEVOQUJMRShNRURJQV9DQVBUVVJFKQogICAgICAgICBz
ZXR0aW5ncy5jYXB0dXJlID0gaW5wdXQtPmNhcHR1cmUoKTsKQEAgLTM3NCw2ICszNzUsNyBAQCB2
b2lkIEZpbGVJbnB1dFR5cGU6OnJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXRocykKICAgICAgICAgc2V0dGluZ3MuYWxsb3dzTXVsdGlwbGVGaWxl
cyA9IHRydWU7CiAgICAgICAgIHNldHRpbmdzLnNlbGVjdGVkRmlsZXMuYXBwZW5kKHBhdGhzWzBd
KTsKICAgICAgICAgc2V0dGluZ3MuYWNjZXB0TUlNRVR5cGVzID0gaW5wdXQtPmFjY2VwdE1JTUVU
eXBlcygpOworICAgICAgICBzZXR0aW5ncy5hY2NlcHRUeXBlcyA9IGlucHV0LT5hY2NlcHRUeXBl
cygpOwogICAgICAgICBjaHJvbWUtPmVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShuZXdGaWxlQ2hv
b3NlcihzZXR0aW5ncykpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDkyNDhmMGJjMjc5MmRhMzZjODZmNTJjNWFmZGEzYmMyOGFiMjkxODAu
LjYwMDhlNjgyNWMzYWIxNDlhNjdhZmUzODQxNDZhNzI1YWQ1NjdmM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTEzNCw3ICsxMTM0LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzUkZDMjYxNlRva2VuQ2hhcmFjdGVyKFVDaGFyIGNoKQogICAgIHJldHVy
biBpc0FTQ0lJKGNoKSAmJiBjaCA+ICcgJyAmJiBjaCAhPSAnIicgJiYgY2ggIT0gJygnICYmIGNo
ICE9ICcpJyAmJiBjaCAhPSAnLCcgJiYgY2ggIT0gJy8nICYmIChjaCA8ICc6JyB8fCBjaCA+ICdA
JykgJiYgKGNoIDwgJ1snIHx8IGNoID4gJ10nKSAmJiBjaCAhPSAneycgJiYgY2ggIT0gJ30nICYm
IGNoICE9IDB4N2Y7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkTUlNRVR5cGUoY29u
c3QgU3RyaW5nJiB0eXBlKQorc3RhdGljIGJvb2wgaXNWYWxpZE1JTUVUeXBlKGNvbnN0IFN0cmlu
ZyYgdHlwZSkKIHsKICAgICBzaXplX3Qgc2xhc2hQb3NpdGlvbiA9IHR5cGUuZmluZCgnLycpOwog
ICAgIGlmIChzbGFzaFBvc2l0aW9uID09IG5vdEZvdW5kIHx8ICFzbGFzaFBvc2l0aW9uIHx8IHNs
YXNoUG9zaXRpb24gPT0gdHlwZS5sZW5ndGgoKSAtIDEpCkBAIC0xMTQ2LDI2ICsxMTQ2LDQ2IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkTUlNRVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1WZWN0b3I8U3RyaW5nPiBIVE1MSW5wdXRFbGVtZW50Ojph
Y2NlcHRNSU1FVHlwZXMoKQorc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRGaWxlRXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBtaW1lVHlwZXM7Cisg
ICAgaWYgKHR5cGUubGVuZ3RoKCkgPCAyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIHR5cGVbMF0gPT0gJy4nOworfQogCi0gICAgU3RyaW5nIGFjY2VwdFN0cmluZyA9IGFjY2Vw
dCgpOworc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNlQWNjZXB0QXR0cmlidXRlKGNvbnN0IFN0
cmluZyYgYWNjZXB0U3RyaW5nLCBib29sIG9ubHlNSU1FVHlwZSkKK3sKKyAgICBWZWN0b3I8U3Ry
aW5nPiB0eXBlczsKICAgICBpZiAoYWNjZXB0U3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuIG1pbWVUeXBlczsKKyAgICAgICAgcmV0dXJuIHR5cGVzOwogCiAgICAgVmVjdG9yPFN0cmlu
Zz4gc3BsaXRUeXBlczsKICAgICBhY2NlcHRTdHJpbmcuc3BsaXQoJywnLCBmYWxzZSwgc3BsaXRU
eXBlcyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzcGxpdFR5cGVzLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgIFN0cmluZyB0cmltbWVkTWltZVR5cGUgPSBzdHJpcExlYWRpbmdBbmRUcmFp
bGluZ0hUTUxTcGFjZXMoc3BsaXRUeXBlc1tpXSk7Ci0gICAgICAgIGlmICh0cmltbWVkTWltZVR5
cGUuaXNFbXB0eSgpKQorICAgICAgICBTdHJpbmcgdHJpbW1lZFR5cGUgPSBzdHJpcExlYWRpbmdB
bmRUcmFpbGluZ0hUTUxTcGFjZXMoc3BsaXRUeXBlc1tpXSk7CisgICAgICAgIGlmICh0cmltbWVk
VHlwZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFpc1Zh
bGlkTUlNRVR5cGUodHJpbW1lZE1pbWVUeXBlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBtaW1lVHlwZXMuYXBwZW5kKHRyaW1tZWRNaW1lVHlwZS5sb3dlcigpKTsKKyAgICAgICAg
aWYgKG9ubHlNSU1FVHlwZSkgeworICAgICAgICAgICAgaWYgKCFpc1ZhbGlkTUlNRVR5cGUodHJp
bW1lZFR5cGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaWYgKCFpc1ZhbGlkRmlsZUV4dGVuc2lvbih0cmltbWVkVHlwZSkgJiYgIWlz
VmFsaWRNSU1FVHlwZSh0cmltbWVkVHlwZSkpCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKyAgICAgICAgdHlwZXMuYXBwZW5kKHRyaW1tZWRUeXBlLmxvd2VyKCkpOwogICAg
IH0KIAotICAgIHJldHVybiBtaW1lVHlwZXM7CisgICAgcmV0dXJuIHR5cGVzOworfQorCitWZWN0
b3I8U3RyaW5nPiBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRNSU1FVHlwZXMoKQoreworICAgIHJl
dHVybiBwYXJzZUFjY2VwdEF0dHJpYnV0ZShmYXN0R2V0QXR0cmlidXRlKGFjY2VwdEF0dHIpLCB0
cnVlKTsKK30KKworVmVjdG9yPFN0cmluZz4gSFRNTElucHV0RWxlbWVudDo6YWNjZXB0VHlwZXMo
KQoreworICAgIHJldHVybiBwYXJzZUFjY2VwdEF0dHJpYnV0ZShmYXN0R2V0QXR0cmlidXRlKGFj
Y2VwdEF0dHIpLCBmYWxzZSk7CiB9CiAKIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHQo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA5NzU2ZTRm
YzQwOTcwM2VjYmYzNzdjYzAyMTVmYzFkMDA2Yjk5ZWFlLi5iZDJmNTFlNzliNDllMzAyYWM2N2E2
NWMxMjI0YzU3MTA3ZWI2ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtMTk1LDYgKzE5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlZmF1bHRWYWx1ZShj
b25zdCBTdHJpbmcmKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGFjY2VwdE1JTUVUeXBlcygpOwor
ICAgIFZlY3RvcjxTdHJpbmc+IGFjY2VwdFR5cGVzKCk7CiAgICAgU3RyaW5nIGFjY2VwdCgpIGNv
bnN0OwogICAgIFN0cmluZyBhbHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVD
aG9vc2VyLmgKaW5kZXggNTgxNWMyMGRhMjEyNWQ5MmM4OWVkMjk1ZDcyOGQ4MWNmNTRiNzhiYS4u
MDFmNzkyMjZhYmRhNGU2OTdjMWEwMGMyMGU3MDIxYWY4YWI2YzRhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlQ2hvb3Nlci5oCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCBGaWxlQ2hvb3Nl
clNldHRpbmdzIHsKICAgICBib29sIGFsbG93c0RpcmVjdG9yeVVwbG9hZDsKICNlbmRpZgogICAg
IFZlY3RvcjxTdHJpbmc+IGFjY2VwdE1JTUVUeXBlczsKKyAgICBWZWN0b3I8U3RyaW5nPiBhY2Nl
cHRUeXBlczsKICAgICBWZWN0b3I8U3RyaW5nPiBzZWxlY3RlZEZpbGVzOwogI2lmIEVOQUJMRShN
RURJQV9DQVBUVVJFKQogICAgIFN0cmluZyBjYXB0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBmMTM2NjJhZGI2ZjQ1YzdkNjVm
ZDMxNTExYjAyMTQxNmRmOTU0Nzk2Li4wZWI0M2RjZGFmMDMwM2JiNzM2YzczYjVmYTRlODkyODhi
MmM2NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcApAQCAtNzI1LDcgKzcyNSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3Bl
blBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNoCiAjZWxz
ZQogICAgIHBhcmFtcy5kaXJlY3RvcnkgPSBmYWxzZTsKICNlbmRpZgotICAgIHBhcmFtcy5hY2Nl
cHRUeXBlcyA9IGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLmFjY2VwdE1JTUVUeXBlczsKKyAgICBw
YXJhbXMuYWNjZXB0VHlwZXMgPSBmaWxlQ2hvb3Nlci0+c2V0dGluZ3MoKS5hY2NlcHRUeXBlczsK
ICAgICBwYXJhbXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLnNlbGVj
dGVkRmlsZXM7CiAgICAgaWYgKHBhcmFtcy5zZWxlY3RlZEZpbGVzLnNpemUoKSA+IDApCiAgICAg
ICAgIHBhcmFtcy5pbml0aWFsVmFsdWUgPSBwYXJhbXMuc2VsZWN0ZWRGaWxlc1swXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145950</attachid>
            <date>2012-06-06 00:29:12 -0700</date>
            <delta_ts>2012-06-14 21:27:48 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-88298-20120606162910.patch</filename>
            <type>text/plain</type>
            <size>8954</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdkZjM3ZWNlMDEzOWMz
MjkyZmNkODFjNDgyNWM0NDIxZTVjNmQ4Ni4uYjRlMThmMTZkMzFmNGQ3Y2IyMmJjNDJjYTA2ZjRk
ZjkzMWY0ZmJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA2LTA0ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IGZpbGUgZXh0
ZW5zaW9ucyBpbiBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdIQVRXRyBzcGVjaWZpY2F0aW9uIGFkZGVk
IGZpbGUgZXh0ZW5zaW9ucyBzdXBvcHJ0IGZvcgorICAgICAgICBIVE1MSW5wdXRFbGVtZW50Ojph
Y2NlcHQgcmVjZW50bHkuCisKKyAgICAgICAgSW4gdGhlIFdlYkNvcmUgRmlsZUNob29zZXIgaW50
ZXJmYWNlLCB3ZSByZWplY3RlZCBpbnZhbGlkIE1JTUUgdHlwZQorICAgICAgICBzdHJpbmdzIGlu
IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcygpLCBhbmQgcGxhdGZvcm0gZmlsZQor
ICAgICAgICBjaG9vc2VycyBkb24ndCBleHBlY3QgdGhhdCBpdCBjb250YWludHMgZmlsZSBleHRl
bnNpb25zLiBTbywgdGhpcyBwYXRjaAorICAgICAgICBpbnRyb2R1Y2VzIGFkZGl0aW9uYWwgbWVt
YmVyICJhY2NlcHRGaWxlRXh0ZW5zaW9ucyIgdG8KKyAgICAgICAgRmlsZUNob29zZXJTZXR0aW5n
cywgYW5kIGl0IGNvbnRhaW5zIG9ubHkgZmlsZSBleHRlbnNpb25zIHNwZWNpZmllZCBieQorICAg
ICAgICBhbiBhY2NlcHQgYXR0cmlidXRlLgorCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgU2V0cyBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRGaWxlRXh0ZW5zaW9u
cygpIHRvCisgICAgICAgIEZpbGVDaG9vc2VyU2V0dGluZ3M6OmFjY2VwdEZpbGVFeHRlbnNpb25z
LgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZWNlaXZlRHJvcEZvckRpcmVj
dG9yeVVwbG9hZCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzVmFsaWRGaWxlRXh0ZW5zaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpwYXJzZUFjY2VwdEF0dHJpYnV0ZSk6CisgICAgICAgIENvbW1vbiBwYXJ0IGZvciBhY2Nl
cHRNSU1FVHlwcygpIGFuZCBhY2NlcHRGaWxlRXh0ZW5zaW9ucygpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6YWNjZXB0TUlNRVR5cGVzKToKKyAgICAgICAgVXNlcyBwYXJz
ZUFjY2VwdEF0dHJpYnV0ZSgpIHdpdGggaXNWYWxpZE1JTUVUeXBlKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRGaWxlRXh0ZW5zaW9ucyk6CisgICAgICAgIEFk
ZGVkLiBVc2VzIHBhcnNlQWNjZXB0QXR0cmlidXRlKCkgd2l0aCBpc1ZhbGlkRmlsZUV4dGVuc2lv
bigpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoSFRNTElu
cHV0RWxlbWVudCk6IEFkZCBhY2NlcHRGaWxlRXh0ZW5zaW9ucygpLgorICAgICAgICAqIHBsYXRm
b3JtL0ZpbGVDaG9vc2VyLmg6CisgICAgICAgIChGaWxlQ2hvb3NlclNldHRpbmdzKTogQWRkIGFj
Y2VwdEZpbGVFeHRlbnNpb25zLgorCiAyMDEyLTA2LTA1ICBUb255IENoYW5nICA8dG9ueUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgQ2hhbmdpbmcgZmxleGJveCBqdXN0aWZ5L2FsaWdubWVudCBk
b2Vzbid0IHVwZGF0ZSB0aGVpciBwb3NpdGlvbmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA4YTEyYWY4MzZkYjQ2NTVkOTZkMjQyMWZhZmVkYTk5YTFlZWY5YzczLi5hYzlhNjQ4MDRl
NThiZmI2Y2VmZjA5ZGE1NDYyNjg4ZTMzM2I1NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTA2ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IGZpbGUgZXh0ZW5zaW9ucyBpbiBIVE1MSW5wdXRF
bGVtZW50OjphY2NlcHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg4Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudEltcGw6OnJ1bk9wZW5QYW5lbCk6CisgICAgICAgIC0gQXBwZW5kIGFjY2VwdEZpbGVF
eHRlbnNpb25zIHRvIFdlYkZpbGVDaG9vc2VyUGFyYW1zOjphY2NlcHRUeXBlcy4KKyAgICAgICAg
LSBTaG9ydGVuIHRoZSBjb2RlIHVzaW5nIGEgRmlsZUNob29zZXJTZXR0aW5ncyByZWZlcmVuY2Uu
CisKIDIwMTItMDYtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUm9sbCBDaHJvbWl1bSBERVBTIGZyb20gcjE0MDY1MyB0byByMTQwNzAwLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggNzJiNjc1NjkxZDliNmYyZTU0YzNmZmNkN2Rl
NDk4MzcyNGY3YTQ4Yi4uZjUxZjYwMTA4NjhmMDU4ZWNmYzgzZDY1NjE3MGE4ODg1ZDg1MWZjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0xODcsNiArMTg3LDcgQEAg
dm9pZCBGaWxlSW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KiBldmVudCkK
ICAgICAgICAgc2V0dGluZ3MuYWxsb3dzTXVsdGlwbGVGaWxlcyA9IGlucHV0LT5mYXN0SGFzQXR0
cmlidXRlKG11bHRpcGxlQXR0cik7CiAjZW5kaWYKICAgICAgICAgc2V0dGluZ3MuYWNjZXB0TUlN
RVR5cGVzID0gaW5wdXQtPmFjY2VwdE1JTUVUeXBlcygpOworICAgICAgICBzZXR0aW5ncy5hY2Nl
cHRGaWxlRXh0ZW5zaW9ucyA9IGlucHV0LT5hY2NlcHRGaWxlRXh0ZW5zaW9ucygpOwogICAgICAg
ICBzZXR0aW5ncy5zZWxlY3RlZEZpbGVzID0gbV9maWxlTGlzdC0+cGF0aHMoKTsKICNpZiBFTkFC
TEUoTUVESUFfQ0FQVFVSRSkKICAgICAgICAgc2V0dGluZ3MuY2FwdHVyZSA9IGlucHV0LT5jYXB0
dXJlKCk7CkBAIC0zNzQsNiArMzc1LDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpyZWNlaXZlRHJv
cEZvckRpcmVjdG9yeVVwbG9hZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiAgICAgICAg
IHNldHRpbmdzLmFsbG93c011bHRpcGxlRmlsZXMgPSB0cnVlOwogICAgICAgICBzZXR0aW5ncy5z
ZWxlY3RlZEZpbGVzLmFwcGVuZChwYXRoc1swXSk7CiAgICAgICAgIHNldHRpbmdzLmFjY2VwdE1J
TUVUeXBlcyA9IGlucHV0LT5hY2NlcHRNSU1FVHlwZXMoKTsKKyAgICAgICAgc2V0dGluZ3MuYWNj
ZXB0RmlsZUV4dGVuc2lvbnMgPSBpbnB1dC0+YWNjZXB0RmlsZUV4dGVuc2lvbnMoKTsKICAgICAg
ICAgY2hyb21lLT5lbnVtZXJhdGVDaG9zZW5EaXJlY3RvcnkobmV3RmlsZUNob29zZXIoc2V0dGlu
Z3MpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApp
bmRleCAyMzExNDJlNWI2NmU2YmQzOWUwOGFmYjMwNjM4ZGI5NTlmZjQ3ZWFiLi45OWJkNjExN2Y5
NzIzMmZiZWE5YmU3NTg2YjBlZTFmZTNmMGE1NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKQEAgLTExMzQsNyArMTEzNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc1JGQzI2MTZUb2tlbkNoYXJhY3RlcihVQ2hhciBjaCkKICAgICByZXR1cm4gaXNBU0NJSShj
aCkgJiYgY2ggPiAnICcgJiYgY2ggIT0gJyInICYmIGNoICE9ICcoJyAmJiBjaCAhPSAnKScgJiYg
Y2ggIT0gJywnICYmIGNoICE9ICcvJyAmJiAoY2ggPCAnOicgfHwgY2ggPiAnQCcpICYmIChjaCA8
ICdbJyB8fCBjaCA+ICddJykgJiYgY2ggIT0gJ3snICYmIGNoICE9ICd9JyAmJiBjaCAhPSAweDdm
OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZE1JTUVUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKK3N0YXRpYyBib29sIGlzVmFsaWRNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB7
CiAgICAgc2l6ZV90IHNsYXNoUG9zaXRpb24gPSB0eXBlLmZpbmQoJy8nKTsKICAgICBpZiAoc2xh
c2hQb3NpdGlvbiA9PSBub3RGb3VuZCB8fCAhc2xhc2hQb3NpdGlvbiB8fCBzbGFzaFBvc2l0aW9u
ID09IHR5cGUubGVuZ3RoKCkgLSAxKQpAQCAtMTE0NiwyNiArMTE0Niw0MSBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNWYWxpZE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotVmVjdG9yPFN0cmluZz4gSFRNTElucHV0RWxlbWVudDo6YWNjZXB0TUlNRVR5
cGVzKCkKK3N0YXRpYyBib29sIGlzVmFsaWRGaWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgdHlw
ZSkKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBtaW1lVHlwZXM7CisgICAgaWYgKHR5cGUubGVuZ3Ro
KCkgPCAyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHR5cGVbMF0gPT0gJy4n
OworfQogCi0gICAgU3RyaW5nIGFjY2VwdFN0cmluZyA9IGFjY2VwdCgpOworc3RhdGljIFZlY3Rv
cjxTdHJpbmc+IHBhcnNlQWNjZXB0QXR0cmlidXRlKGNvbnN0IFN0cmluZyYgYWNjZXB0U3RyaW5n
LCBib29sICgqcHJlZGljYXRlKShjb25zdCBTdHJpbmcmKSkKK3sKKyAgICBWZWN0b3I8U3RyaW5n
PiB0eXBlczsKICAgICBpZiAoYWNjZXB0U3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IG1pbWVUeXBlczsKKyAgICAgICAgcmV0dXJuIHR5cGVzOwogCiAgICAgVmVjdG9yPFN0cmluZz4g
c3BsaXRUeXBlczsKICAgICBhY2NlcHRTdHJpbmcuc3BsaXQoJywnLCBmYWxzZSwgc3BsaXRUeXBl
cyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzcGxpdFR5cGVzLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIFN0cmluZyB0cmltbWVkTWltZVR5cGUgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGlu
Z0hUTUxTcGFjZXMoc3BsaXRUeXBlc1tpXSk7Ci0gICAgICAgIGlmICh0cmltbWVkTWltZVR5cGUu
aXNFbXB0eSgpKQorICAgICAgICBTdHJpbmcgdHJpbW1lZFR5cGUgPSBzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoc3BsaXRUeXBlc1tpXSk7CisgICAgICAgIGlmICh0cmltbWVkVHlw
ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFpc1ZhbGlk
TUlNRVR5cGUodHJpbW1lZE1pbWVUeXBlKSkKKyAgICAgICAgaWYgKCFwcmVkaWNhdGUodHJpbW1l
ZFR5cGUpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG1pbWVUeXBlcy5hcHBlbmQo
dHJpbW1lZE1pbWVUeXBlLmxvd2VyKCkpOworICAgICAgICB0eXBlcy5hcHBlbmQodHJpbW1lZFR5
cGUubG93ZXIoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIG1pbWVUeXBlczsKKyAgICByZXR1cm4g
dHlwZXM7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVU
eXBlcygpCit7CisgICAgcmV0dXJuIHBhcnNlQWNjZXB0QXR0cmlidXRlKGZhc3RHZXRBdHRyaWJ1
dGUoYWNjZXB0QXR0ciksIGlzVmFsaWRNSU1FVHlwZSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEhU
TUxJbnB1dEVsZW1lbnQ6OmFjY2VwdEZpbGVFeHRlbnNpb25zKCkKK3sKKyAgICByZXR1cm4gcGFy
c2VBY2NlcHRBdHRyaWJ1dGUoZmFzdEdldEF0dHJpYnV0ZShhY2NlcHRBdHRyKSwgaXNWYWxpZEZp
bGVFeHRlbnNpb24pOwogfQogCiBTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6YWNjZXB0KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMTA1ZGViNzFhMzQz
ZmVkOGE2NGRjMGVkNGRjNWI5ODA4NWRiYjE5MS4uMTY3NDZmNjI2YzU4OTBkZGRlNWM0MWU2NTc3
MTAwYjA0ODI3MDEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAg
LTE5NSw2ICsxOTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZWZhdWx0VmFsdWUoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBhY2NlcHRNSU1FVHlwZXMoKTsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBhY2NlcHRGaWxlRXh0ZW5zaW9ucygpOwogICAgIFN0cmluZyBhY2NlcHQo
KSBjb25zdDsKICAgICBTdHJpbmcgYWx0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlQ2hvb3Nlci5oCmluZGV4IDU4MTVjMjBkYTIxMjVkOTJjODllZDI5NWQ3MjhkODFjZjU0Yjc4
YmEuLjk1Mjk0YjRiY2JjNmU3ZjY2ZWFkNTQ2NDg1MTNiNjg3OWI3OTcxNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaApAQCAtNTUsNiArNTUsNyBAQCBzdHJ1Y3QgRmlsZUNo
b29zZXJTZXR0aW5ncyB7CiAgICAgYm9vbCBhbGxvd3NEaXJlY3RvcnlVcGxvYWQ7CiAjZW5kaWYK
ICAgICBWZWN0b3I8U3RyaW5nPiBhY2NlcHRNSU1FVHlwZXM7CisgICAgVmVjdG9yPFN0cmluZz4g
YWNjZXB0RmlsZUV4dGVuc2lvbnM7CiAgICAgVmVjdG9yPFN0cmluZz4gc2VsZWN0ZWRGaWxlczsK
ICNpZiBFTkFCTEUoTUVESUFfQ0FQVFVSRSkKICAgICBTdHJpbmcgY2FwdHVyZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZjEzNjYy
YWRiNmY0NWM3ZDY1ZmQzMTUxMWIwMjE0MTZkZjk1NDc5Ni4uNDJjNTc3NDcyYzc1ZGQ0NjlhZWQ1
NjM2NWZhOGQ2OWI5NThjNmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTcxOSwxOCArNzE5LDIzIEBAIHZvaWQgQ2hyb21lQ2xp
ZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nl
cj4gZmlsZUNoCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZpbGVDaG9vc2VyUGFyYW1zIHBh
cmFtczsKLSAgICBwYXJhbXMubXVsdGlTZWxlY3QgPSBmaWxlQ2hvb3Nlci0+c2V0dGluZ3MoKS5h
bGxvd3NNdWx0aXBsZUZpbGVzOworICAgIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRp
bmdzID0gZmlsZUNob29zZXItPnNldHRpbmdzKCk7CisgICAgcGFyYW1zLm11bHRpU2VsZWN0ID0g
c2V0dGluZ3MuYWxsb3dzTXVsdGlwbGVGaWxlczsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9B
RCkKLSAgICBwYXJhbXMuZGlyZWN0b3J5ID0gZmlsZUNob29zZXItPnNldHRpbmdzKCkuYWxsb3dz
RGlyZWN0b3J5VXBsb2FkOworICAgIHBhcmFtcy5kaXJlY3RvcnkgPSBzZXR0aW5ncy5hbGxvd3NE
aXJlY3RvcnlVcGxvYWQ7CiAjZWxzZQogICAgIHBhcmFtcy5kaXJlY3RvcnkgPSBmYWxzZTsKICNl
bmRpZgotICAgIHBhcmFtcy5hY2NlcHRUeXBlcyA9IGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLmFj
Y2VwdE1JTUVUeXBlczsKLSAgICBwYXJhbXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGVDaG9vc2VyLT5z
ZXR0aW5ncygpLnNlbGVjdGVkRmlsZXM7CisgICAgVmVjdG9yPFN0cmluZz4gYWNjZXB0VHlwZXM7
CisgICAgYWNjZXB0VHlwZXMucmVzZXJ2ZUNhcGFjaXR5KHNldHRpbmdzLmFjY2VwdE1JTUVUeXBl
cy5zaXplKCkgKyBzZXR0aW5ncy5hY2NlcHRGaWxlRXh0ZW5zaW9ucy5zaXplKCkpOworICAgIGFj
Y2VwdFR5cGVzLmFwcGVuZChzZXR0aW5ncy5hY2NlcHRNSU1FVHlwZXMpOworICAgIGFjY2VwdFR5
cGVzLmFwcGVuZChzZXR0aW5ncy5hY2NlcHRGaWxlRXh0ZW5zaW9ucyk7CisgICAgcGFyYW1zLmFj
Y2VwdFR5cGVzID0gYWNjZXB0VHlwZXM7CisgICAgcGFyYW1zLnNlbGVjdGVkRmlsZXMgPSBzZXR0
aW5ncy5zZWxlY3RlZEZpbGVzOwogICAgIGlmIChwYXJhbXMuc2VsZWN0ZWRGaWxlcy5zaXplKCkg
PiAwKQogICAgICAgICBwYXJhbXMuaW5pdGlhbFZhbHVlID0gcGFyYW1zLnNlbGVjdGVkRmlsZXNb
MF07CiAjaWYgRU5BQkxFKE1FRElBX0NBUFRVUkUpCi0gICAgcGFyYW1zLmNhcHR1cmUgPSBmaWxl
Q2hvb3Nlci0+c2V0dGluZ3MoKS5jYXB0dXJlOworICAgIHBhcmFtcy5jYXB0dXJlID0gc2V0dGlu
Z3MuY2FwdHVyZTsKICNlbHNlCiAgICAgcGFyYW1zLmNhcHR1cmUgPSBXZWJTdHJpbmcoKTsKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147723</attachid>
            <date>2012-06-14 21:27:54 -0700</date>
            <delta_ts>2012-06-14 23:38:43 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-88298-20120615132753.patch</filename>
            <type>text/plain</type>
            <size>9117</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ2MjRiNmU2N2M5ZjIx
MDMzY2NiMTVmMjc5ZGQ4NGNjZjE2ZGQxYy4uNDBmNjQ3NTc0MzAzYmI3NGViZmNhOGQ3ODVlODA2
ZGU0MWNhOGJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA2LTA0ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwb3J0IGZpbGUgZXh0
ZW5zaW9ucyBpbiBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdIQVRXRyBzcGVjaWZpY2F0aW9uIGFkZGVk
IGZpbGUgZXh0ZW5zaW9ucyBzdXBvcHJ0IGZvcgorICAgICAgICBIVE1MSW5wdXRFbGVtZW50Ojph
Y2NlcHQgcmVjZW50bHkuCisKKyAgICAgICAgSW4gdGhlIFdlYkNvcmUgRmlsZUNob29zZXIgaW50
ZXJmYWNlLCB3ZSByZWplY3RlZCBpbnZhbGlkIE1JTUUgdHlwZQorICAgICAgICBzdHJpbmdzIGlu
IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcygpLCBhbmQgcGxhdGZvcm0gZmlsZQor
ICAgICAgICBjaG9vc2VycyBkb24ndCBleHBlY3QgdGhhdCBpdCBjb250YWludHMgZmlsZSBleHRl
bnNpb25zLiBTbywgdGhpcyBwYXRjaAorICAgICAgICBpbnRyb2R1Y2VzIGFkZGl0aW9uYWwgbWVt
YmVyICJhY2NlcHRGaWxlRXh0ZW5zaW9ucyIgdG8KKyAgICAgICAgRmlsZUNob29zZXJTZXR0aW5n
cywgYW5kIGl0IGNvbnRhaW5zIG9ubHkgZmlsZSBleHRlbnNpb25zIHNwZWNpZmllZCBieQorICAg
ICAgICBhbiBhY2NlcHQgYXR0cmlidXRlLgorCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgU2V0cyBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRGaWxlRXh0ZW5zaW9u
cygpIHRvCisgICAgICAgIEZpbGVDaG9vc2VyU2V0dGluZ3M6OmFjY2VwdEZpbGVFeHRlbnNpb25z
LgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZWNlaXZlRHJvcEZvckRpcmVj
dG9yeVVwbG9hZCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzVmFsaWRGaWxlRXh0ZW5zaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpwYXJzZUFjY2VwdEF0dHJpYnV0ZSk6CisgICAgICAgIENvbW1vbiBwYXJ0IGZvciBhY2Nl
cHRNSU1FVHlwcygpIGFuZCBhY2NlcHRGaWxlRXh0ZW5zaW9ucygpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6YWNjZXB0TUlNRVR5cGVzKToKKyAgICAgICAgVXNlcyBwYXJz
ZUFjY2VwdEF0dHJpYnV0ZSgpIHdpdGggaXNWYWxpZE1JTUVUeXBlKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRGaWxlRXh0ZW5zaW9ucyk6CisgICAgICAgIEFk
ZGVkLiBVc2VzIHBhcnNlQWNjZXB0QXR0cmlidXRlKCkgd2l0aCBpc1ZhbGlkRmlsZUV4dGVuc2lv
bigpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoSFRNTElu
cHV0RWxlbWVudCk6IEFkZCBhY2NlcHRGaWxlRXh0ZW5zaW9ucygpLgorICAgICAgICAqIHBsYXRm
b3JtL0ZpbGVDaG9vc2VyLmg6CisgICAgICAgIChGaWxlQ2hvb3NlclNldHRpbmdzKTogQWRkIGFj
Y2VwdEZpbGVFeHRlbnNpb25zIGFuZCBhY2NlcHRUeXBlcygpLgorICAgICAgICAqIHBsYXRmb3Jt
L0ZpbGVDaG9vc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3M6
OmFjY2VwdFR5cGVzKTogQWRkZWQuCisKIDIwMTItMDYtMTQgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtKU0MvVjhdICJET01TdHJpbmdbXSIgZm9yIGZ1bmN0
aW9uIHJldHVybiB2YWx1ZXMgc2hvdWxkIG5vdCBiZSBudWxsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGMzNTBiN2MxNDc3NDM4NDlkYzAzNGY1ODBkM2NkMzc0MWU3YjAwYTIuLjNkMjg3
ZWM1NDIzYTk1ZjEzMDUxZGJhYTUxMGJmZjA3ZjA3ZDI2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDYtMDYgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFN1cHBvcnQgZmlsZSBleHRlbnNpb25zIGluIEhUTUxJ
bnB1dEVsZW1lbnQ6OmFjY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODgyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKToKKyAgICAgICAgVXNlIEZpbGVDaG9vc2Vy
U2V0dGluZ3M6OmFjY2VwdFR5cGVzKCkgdG8gZ2V0IGJvdGggb2YgTUlNRSB0eXBlcyBhbmQgZmls
ZSBleHRlbnNpb25zLgorCiAyMDEyLTA2LTE0ICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBTdWItcGl4ZWwgdGV4dCByZW5kZXJpbmcg
aXMgaW5jb3JyZWN0bHkgdXNlZCBmb3IgV2ViVmlldyB3aXRoIHRyYW5zcGFyZW50IGJhY2tncm91
bmQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBiMjI4ZWM3OTExMjAy
MTc2NjUyYTg5ZjQ4Y2Y0NTgwM2RmMDBhODFlLi4zOWJmZTllMzUwOWIyODA0NmNiZDg5ZjM4NGY1
ODg5YmUzYmQxODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTE4
OCw2ICsxODgsNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQqIGV2ZW50KQogICAgICAgICBzZXR0aW5ncy5hbGxvd3NNdWx0aXBsZUZpbGVzID0gaW5w
dXQtPmZhc3RIYXNBdHRyaWJ1dGUobXVsdGlwbGVBdHRyKTsKICNlbmRpZgogICAgICAgICBzZXR0
aW5ncy5hY2NlcHRNSU1FVHlwZXMgPSBpbnB1dC0+YWNjZXB0TUlNRVR5cGVzKCk7CisgICAgICAg
IHNldHRpbmdzLmFjY2VwdEZpbGVFeHRlbnNpb25zID0gaW5wdXQtPmFjY2VwdEZpbGVFeHRlbnNp
b25zKCk7CiAgICAgICAgIHNldHRpbmdzLnNlbGVjdGVkRmlsZXMgPSBtX2ZpbGVMaXN0LT5wYXRo
cygpOwogI2lmIEVOQUJMRShNRURJQV9DQVBUVVJFKQogICAgICAgICBzZXR0aW5ncy5jYXB0dXJl
ID0gaW5wdXQtPmNhcHR1cmUoKTsKQEAgLTM3NSw2ICszNzYsNyBAQCB2b2lkIEZpbGVJbnB1dFR5
cGU6OnJlY2VpdmVEcm9wRm9yRGlyZWN0b3J5VXBsb2FkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXRocykKICAgICAgICAgc2V0dGluZ3MuYWxsb3dzTXVsdGlwbGVGaWxlcyA9IHRydWU7CiAgICAg
ICAgIHNldHRpbmdzLnNlbGVjdGVkRmlsZXMuYXBwZW5kKHBhdGhzWzBdKTsKICAgICAgICAgc2V0
dGluZ3MuYWNjZXB0TUlNRVR5cGVzID0gaW5wdXQtPmFjY2VwdE1JTUVUeXBlcygpOworICAgICAg
ICBzZXR0aW5ncy5hY2NlcHRGaWxlRXh0ZW5zaW9ucyA9IGlucHV0LT5hY2NlcHRGaWxlRXh0ZW5z
aW9ucygpOwogICAgICAgICBjaHJvbWUtPmVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShuZXdGaWxl
Q2hvb3NlcihzZXR0aW5ncykpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCmluZGV4IGUwMDE1MDNkMTcyODNlMDdhMTdkNjU2YzY2MDFhMTIyZjNmZTMy
ODQuLjVjNmJmMTY1OTgzYzBjODIzMTQzMmYzNmE3ZmVkOGU1YWUxZjFlMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTEzNSw3ICsxMTM1LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzUkZDMjYxNlRva2VuQ2hhcmFjdGVyKFVDaGFyIGNoKQogICAgIHJl
dHVybiBpc0FTQ0lJKGNoKSAmJiBjaCA+ICcgJyAmJiBjaCAhPSAnIicgJiYgY2ggIT0gJygnICYm
IGNoICE9ICcpJyAmJiBjaCAhPSAnLCcgJiYgY2ggIT0gJy8nICYmIChjaCA8ICc6JyB8fCBjaCA+
ICdAJykgJiYgKGNoIDwgJ1snIHx8IGNoID4gJ10nKSAmJiBjaCAhPSAneycgJiYgY2ggIT0gJ30n
ICYmIGNoICE9IDB4N2Y7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkTUlNRVR5cGUo
Y29uc3QgU3RyaW5nJiB0eXBlKQorc3RhdGljIGJvb2wgaXNWYWxpZE1JTUVUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSkKIHsKICAgICBzaXplX3Qgc2xhc2hQb3NpdGlvbiA9IHR5cGUuZmluZCgnLycp
OwogICAgIGlmIChzbGFzaFBvc2l0aW9uID09IG5vdEZvdW5kIHx8ICFzbGFzaFBvc2l0aW9uIHx8
IHNsYXNoUG9zaXRpb24gPT0gdHlwZS5sZW5ndGgoKSAtIDEpCkBAIC0xMTQ3LDI2ICsxMTQ3LDQx
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkTUlNRVR5cGUoY29uc3QgU3RyaW5nJiB0eXBl
KQogICAgIHJldHVybiB0cnVlOwogfQogCi1WZWN0b3I8U3RyaW5nPiBIVE1MSW5wdXRFbGVtZW50
OjphY2NlcHRNSU1FVHlwZXMoKQorc3RhdGljIGJvb2wgaXNWYWxpZEZpbGVFeHRlbnNpb24oY29u
c3QgU3RyaW5nJiB0eXBlKQogewotICAgIFZlY3RvcjxTdHJpbmc+IG1pbWVUeXBlczsKKyAgICBp
ZiAodHlwZS5sZW5ndGgoKSA8IDIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
dHlwZVswXSA9PSAnLic7Cit9CiAKLSAgICBTdHJpbmcgYWNjZXB0U3RyaW5nID0gYWNjZXB0KCk7
CitzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VBY2NlcHRBdHRyaWJ1dGUoY29uc3QgU3RyaW5n
JiBhY2NlcHRTdHJpbmcsIGJvb2wgKCpwcmVkaWNhdGUpKGNvbnN0IFN0cmluZyYpKQoreworICAg
IFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIGlmIChhY2NlcHRTdHJpbmcuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gbWltZVR5cGVzOworICAgICAgICByZXR1cm4gdHlwZXM7CiAKICAgICBW
ZWN0b3I8U3RyaW5nPiBzcGxpdFR5cGVzOwogICAgIGFjY2VwdFN0cmluZy5zcGxpdCgnLCcsIGZh
bHNlLCBzcGxpdFR5cGVzKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNwbGl0VHlwZXMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgU3RyaW5nIHRyaW1tZWRNaW1lVHlwZSA9IHN0cmlwTGVh
ZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzcGxpdFR5cGVzW2ldKTsKLSAgICAgICAgaWYgKHRy
aW1tZWRNaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgIFN0cmluZyB0cmltbWVkVHlwZSA9IHN0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzcGxpdFR5cGVzW2ldKTsKKyAgICAgICAg
aWYgKHRyaW1tZWRUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBpZiAoIWlzVmFsaWRNSU1FVHlwZSh0cmltbWVkTWltZVR5cGUpKQorICAgICAgICBpZiAoIXBy
ZWRpY2F0ZSh0cmltbWVkVHlwZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbWlt
ZVR5cGVzLmFwcGVuZCh0cmltbWVkTWltZVR5cGUubG93ZXIoKSk7CisgICAgICAgIHR5cGVzLmFw
cGVuZCh0cmltbWVkVHlwZS5sb3dlcigpKTsKICAgICB9CiAKLSAgICByZXR1cm4gbWltZVR5cGVz
OworICAgIHJldHVybiB0eXBlczsKK30KKworVmVjdG9yPFN0cmluZz4gSFRNTElucHV0RWxlbWVu
dDo6YWNjZXB0TUlNRVR5cGVzKCkKK3sKKyAgICByZXR1cm4gcGFyc2VBY2NlcHRBdHRyaWJ1dGUo
ZmFzdEdldEF0dHJpYnV0ZShhY2NlcHRBdHRyKSwgaXNWYWxpZE1JTUVUeXBlKTsKK30KKworVmVj
dG9yPFN0cmluZz4gSFRNTElucHV0RWxlbWVudDo6YWNjZXB0RmlsZUV4dGVuc2lvbnMoKQorewor
ICAgIHJldHVybiBwYXJzZUFjY2VwdEF0dHJpYnV0ZShmYXN0R2V0QXR0cmlidXRlKGFjY2VwdEF0
dHIpLCBpc1ZhbGlkRmlsZUV4dGVuc2lvbik7CiB9CiAKIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50
OjphY2NlcHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRl
eCAwNWQ1MDg0OTM0NzE5Yjc1NjBlNWNlYzA4OGRlM2JmMDgyMDU3ZDZjLi45ODZkOTFlNDY2MmMz
YTk4NzQxY2M4ZTc3MGE5MWY4N2UxMDUzZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaApAQCAtMTk3LDYgKzE5Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERlZmF1
bHRWYWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGFjY2VwdE1JTUVU
eXBlcygpOworICAgIFZlY3RvcjxTdHJpbmc+IGFjY2VwdEZpbGVFeHRlbnNpb25zKCk7CiAgICAg
U3RyaW5nIGFjY2VwdCgpIGNvbnN0OwogICAgIFN0cmluZyBhbHQoKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCmluZGV4IDUwZTRjNjAxMWU1NTEzNTA0Nzg4
MmNlMzAyNDI1MGZmZmQyYzQxODQuLjBmNDU3ZDEzNGU5NDRkNWY5OTcxMDE2MTM2Y2Q1MzFhMTIy
NTAyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKQEAgLTk5LDQg
Kzk5LDEzIEBAIHZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGVzKGNvbnN0IFZlY3RvcjxGaWxl
Q2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiAgICAgICAgIG1fY2xpZW50LT5maWxlc0Nob3Nlbihm
aWxlcyk7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IEZpbGVDaG9vc2VyU2V0dGluZ3M6OmFjY2VwdFR5
cGVzKCkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBhY2NlcHRUeXBlczsKKyAgICBhY2Nl
cHRUeXBlcy5yZXNlcnZlQ2FwYWNpdHkoYWNjZXB0TUlNRVR5cGVzLnNpemUoKSArIGFjY2VwdEZp
bGVFeHRlbnNpb25zLnNpemUoKSk7CisgICAgYWNjZXB0VHlwZXMuYXBwZW5kKGFjY2VwdE1JTUVU
eXBlcyk7CisgICAgYWNjZXB0VHlwZXMuYXBwZW5kKGFjY2VwdEZpbGVFeHRlbnNpb25zKTsKKyAg
ICByZXR1cm4gYWNjZXB0VHlwZXM7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oCmluZGV4IDU4MTVjMjBkYTIxMjVkOTJjODllZDI5NWQ3MjhkODFjZjU0Yjc4YmEuLmE5
NGMxYzU2YWI5MTcyOGU1OTZiN2RlMWExZjM1NWYwYjY0NGU4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZUNob29zZXIuaApAQCAtNTUsMTAgKzU1LDE0IEBAIHN0cnVjdCBGaWxlQ2hvb3Nl
clNldHRpbmdzIHsKICAgICBib29sIGFsbG93c0RpcmVjdG9yeVVwbG9hZDsKICNlbmRpZgogICAg
IFZlY3RvcjxTdHJpbmc+IGFjY2VwdE1JTUVUeXBlczsKKyAgICBWZWN0b3I8U3RyaW5nPiBhY2Nl
cHRGaWxlRXh0ZW5zaW9uczsKICAgICBWZWN0b3I8U3RyaW5nPiBzZWxlY3RlZEZpbGVzOwogI2lm
IEVOQUJMRShNRURJQV9DQVBUVVJFKQogICAgIFN0cmluZyBjYXB0dXJlOwogI2VuZGlmCisKKyAg
ICAvLyBSZXR1cm5zIGEgY29tYmluZWQgdmVjdG9yIG9mIGFjY2VwdE1JTUVUeXBlcyBhbmQgYWNj
ZXB0RmlsZUV4dGVuc2lvbnMuCisgICAgVmVjdG9yPFN0cmluZz4gYWNjZXB0VHlwZXMoKSBjb25z
dDsKIH07CiAKIGNsYXNzIEZpbGVDaG9vc2VyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZTAzMjRmODUxMDc5MDc5N2Fi
MTRjZjU3OWU3YWEwMzUwOGM4NTNjZC4uZGQxZTIxMDRiZGI4ZDA3N2Q4ODIxNmVkNWE0N2EwMmYz
ZmQyMmNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAKQEAgLTcxOCw3ICs3MTgsNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnJ1bk9w
ZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGZpbGVDaAogI2Vs
c2UKICAgICBwYXJhbXMuZGlyZWN0b3J5ID0gZmFsc2U7CiAjZW5kaWYKLSAgICBwYXJhbXMuYWNj
ZXB0VHlwZXMgPSBmaWxlQ2hvb3Nlci0+c2V0dGluZ3MoKS5hY2NlcHRNSU1FVHlwZXM7CisgICAg
cGFyYW1zLmFjY2VwdFR5cGVzID0gZmlsZUNob29zZXItPnNldHRpbmdzKCkuYWNjZXB0VHlwZXMo
KTsKICAgICBwYXJhbXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpLnNl
bGVjdGVkRmlsZXM7CiAgICAgaWYgKHBhcmFtcy5zZWxlY3RlZEZpbGVzLnNpemUoKSA+IDApCiAg
ICAgICAgIHBhcmFtcy5pbml0aWFsVmFsdWUgPSBwYXJhbXMuc2VsZWN0ZWRGaWxlc1swXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>