<?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>145663</bug_id>
          
          <creation_ts>2015-06-04 14:49:43 -0700</creation_ts>
          <short_desc>[Content Extensions] Make max rule count</short_desc>
          <delta_ts>2015-06-15 10:23:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          <dependson>145871</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099629</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-04 14:49:43 -0700</bug_when>
    <thetext>This introduces a max rule count, and it makes the limits on rules and NFA size NSUserDefaults, with default fallback values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099631</commentid>
    <comment_count>1</comment_count>
      <attachid>254304</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-04 14:52:52 -0700</bug_when>
    <thetext>Created attachment 254304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099659</commentid>
    <comment_count>2</comment_count>
      <attachid>254304</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-06-04 16:17:02 -0700</bug_when>
    <thetext>Comment on attachment 254304
Patch

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

&gt; Source/WebCore/contentextensions/cocoa/ContentExtensionDefaultsCocoa.mm:37
&gt; +    NSInteger maxNFASize = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;ContentExtensionMaxNFASize&quot;];

Shouldn&apos;t you use WebKit preferences that are populated by UserDefaults?

Having NSUserDefaults in here is weird</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099681</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-04 17:11:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Shouldn&apos;t you use WebKit preferences that are populated by UserDefaults?
Could you point me to code that does something similar?  Would we be able to change/manage that like we want to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099986</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-05 15:26:08 -0700</bug_when>
    <thetext>rdar://problem/21242407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101181</commentid>
    <comment_count>5</comment_count>
      <attachid>254694</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-10 17:46:43 -0700</bug_when>
    <thetext>Created attachment 254694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101183</commentid>
    <comment_count>6</comment_count>
      <attachid>254694</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-06-10 17:49:04 -0700</bug_when>
    <thetext>Comment on attachment 254694
Patch

Can you report the number with the error message?
Can you tweak the number based on the device?
Can you also limit the number of machines we generate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101185</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-10 17:54:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/185442

I forgot to change the tools change log.  This just added the max rule count.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101186</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-10 17:54:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 254694 [details]
&gt; Patch
&gt; 
&gt; Can you report the number with the error message?
&gt; Can you tweak the number based on the device?
&gt; Can you also limit the number of machines we generate?
These could be added later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101217</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-10 21:12:54 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 145871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101219</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-10 21:15:35 -0700</bug_when>
    <thetext>This caused lots of strange errors in WTF.StringOperators tests.  I&apos;m not sure why, but I&apos;m reverting for now.
https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK1%20%28Tests%29/builds/5975/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101220</commentid>
    <comment_count>11</comment_count>
      <attachid>254694</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-10 21:15:58 -0700</bug_when>
    <thetext>Comment on attachment 254694
Patch

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

&gt; Tools/ChangeLog:3
&gt; +        [Content Extensions] Make max NFA size and max rule count user defaults.

And I need to update this ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101942</commentid>
    <comment_count>12</comment_count>
      <attachid>254878</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-06-15 09:35:08 -0700</bug_when>
    <thetext>Created attachment 254878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101957</commentid>
    <comment_count>13</comment_count>
      <attachid>254878</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-15 10:23:39 -0700</bug_when>
    <thetext>Comment on attachment 254878
Patch

Clearing flags on attachment: 254878

Committed r185555: &lt;http://trac.webkit.org/changeset/185555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101958</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-15 10:23:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254304</attachid>
            <date>2015-06-04 14:52:52 -0700</date>
            <delta_ts>2015-06-10 17:46:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145663-20150604145231.patch</filename>
            <type>text/plain</type>
            <size>17828</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTIxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTA2LTA0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NvbnRlbnQg
RXh0ZW5zaW9uc10gTWFrZSBtYXggTkZBIHNpemUgYW5kIG1heCBydWxlIGNvdW50IHVzZXIgZGVm
YXVsdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDU2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhbiBBUEkgdGVzdCB0byBtYWtlIHN1cmUgdGhhdCBwYXJzaW5nIGZhaWxzIHdoZW4gdGhl
cmUgYXJlIHRvbyBtYW55IHJ1bGVzLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25Db21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29t
cGlsZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uRGVmYXVsdHMuaDogQWRkZWQuCisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkVycm9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
Ojpjb250ZW50RXh0ZW5zaW9uRXJyb3JDYXRlZ29yeSk6CisgICAgICAgICogY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmg6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6bG9hZEVuY29kZWRSdWxlcyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvY29jb2E6IEFkZGVkLgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL2NvY29hL0NvbnRl
bnRFeHRlbnNpb25EZWZhdWx0c0NvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjptYXhORkFTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjptYXhSdWxlQ291bnQpOgorICAgICAgICBBZGRlZCBtYXhSdWxlQ291bnQsIHdo
aWNoIGlzIHVzZWQgd2hlbiBwYXJzaW5nIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgcnVsZXMuCisg
ICAgICAgIE1vdmVkIG1heE5GQVNpemUgdG8gcGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24sIHdo
aWNoIHdpbGwgcXVlcnkgTlNVc2VyRGVmYXVsdHMgYW5kIGZhbGxiYWNrIHRvIGEgbGFyZ2UgdmFs
dWUgaWYgdGhlcmUgaXMgbm8gZGVmYXVsdC4KKwogMjAxNS0wNi0wNCAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE4NTIwOC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4NDk4NikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjE2OCw2
ICsyMTY4LDcgQEAKIAkJNUM0MzA0QjExOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1
cmVMT0QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
NDMwNEFFMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi87IH07CiAJ
CTVDNDMwNEI1MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MzA0QjMxOTFB
RUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgKi87IH07CiAJCTVDNDMw
NEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNDMwNEI0MTkxQUVGNDYwMDBF
MkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCAqLzsgfTsKKwkJNUM4RjI0QzkxQjIwRjhG
QzAwQTgwREVBIC8qIENvbnRlbnRFeHRlbnNpb25EZWZhdWx0c0NvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4RjI0QzcxQjIwRjY5MDAwQTgw
REVBIC8qIENvbnRlbnRFeHRlbnNpb25EZWZhdWx0c0NvY29hLm1tICovOyB9OwogCQk1QzlBN0E3
NTFBQTBGNkVBMDA5NThBQ0YgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzM5MzA1RTFBQTBGNkE5MDAyOUM4
MTYgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgKi87IH07CiAJCTVDOUE3QTc2MUFBMEY2RUQw
MDk1OEFDRiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDYwMUFBMEY2QTkwMDI5QzgxNiAvKiBE
RkFCeXRlY29kZUludGVycHJldGVyLmNwcCAqLzsgfTsKIAkJNUNCQzhEQUMxQUFBMzAyMjAwRTFD
ODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQkM4REFBMUFBQTMwMjIwMEUxQzgwMyAvKiBN
ZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGluay5jcHAgKi87IH07CkBAIC05NDA0LDYgKzk0MDUsOCBA
QAogCQk1QzQzMDRBRjE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNo
YWRlclRleHR1cmVMT0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM0MzA0QjQxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VYVFNoYWRlclRleHR1cmVMT0QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM4RjI0QzcxQjIwRjY5MDAwQTgwREVBIC8qIENv
bnRlbnRFeHRlbnNpb25EZWZhdWx0c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQ29udGVudEV4dGVuc2lvbkRlZmF1bHRzQ29jb2EubW07IHBhdGggPSBj
b2NvYS9Db250ZW50RXh0ZW5zaW9uRGVmYXVsdHNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNUM4RjI0QzgxQjIwRjY5OTAwQTgwREVBIC8qIENvbnRlbnRFeHRlbnNpb25E
ZWZhdWx0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50RXh0ZW5z
aW9uRGVmYXVsdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQzhEQUExQUFB
MzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQzhEQUIxQUFBMzAyMjAwRTFDODAz
IC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDREZBNkM3MUFBNEYyREEwMEVBODc0NiAvKiBDb250ZW50RXh0ZW5zaW9u
QWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU1NzksNiArMTU1
ODIsOCBAQAogCQkyNkYwQzg5MDFBMkQ3OUNCMDAyNzk0RjggLyogY29udGVudGV4dGVuc2lvbnMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDOEYyNEM4
MUIyMEY2OTkwMEE4MERFQSAvKiBDb250ZW50RXh0ZW5zaW9uRGVmYXVsdHMuaCAqLywKKwkJCQk1
QzhGMjRDNjFCMjBGNjc1MDBBODBERUEgLyogY29jb2EgKi8sCiAJCQkJMjZFOTQ0RDQxQUM0QjJE
RDAwN0I4NUI1IC8qIENvbWJpbmVkVVJMRmlsdGVycy5jcHAgKi8sCiAJCQkJMjZFOTQ0RDUxQUM0
QjJERDAwN0I4NUI1IC8qIENvbWJpbmVkVVJMRmlsdGVycy5oICovLAogCQkJCTdDOTNGMzQ3MUFB
NkJBNUUwMEE5OEJBQiAvKiBDb21waWxlZENvbnRlbnRFeHRlbnNpb24uY3BwICovLApAQCAtMTY0
NjAsNiArMTY0NjUsMTQgQEAKIAkJCXBhdGggPSBtb2NrOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJNUM4RjI0QzYxQjIwRjY3NTAwQTgwREVBIC8qIGNvY29hICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzhGMjRDNzFCMjBGNjkw
MDBBODBERUEgLyogQ29udGVudEV4dGVuc2lvbkRlZmF1bHRzQ29jb2EubW0gKi8sCisJCQkpOwor
CQkJbmFtZSA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNUQ1
OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI4NDE5LDYgKzI4NDMyLDcgQEAKIAkJCQlBODcxRDQ1OTBB
MTI3Q0JDMDBCMTJBNjggLyogSFRNTFBhcmFtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5M0UyQTMwNjEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzNGNDE4QjE2OUI5NjAzMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM4RjI0QzkxQjIwRjhGQzAwQTgwREVBIC8qIENv
bnRlbnRFeHRlbnNpb25EZWZhdWx0c0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM4
NzAxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTg3MUQ0NTcwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQbHVnSW5FbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29t
cGlsZXIuY3BwCShyZXZpc2lvbiAxODUwMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29tYmluZWRVUkxGaWx0ZXJzLmgiCiAjaW5jbHVkZSAi
Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvbkFj
dGlvbnMuaCIKKyNpbmNsdWRlICJDb250ZW50RXh0ZW5zaW9uRGVmYXVsdHMuaCIKICNpbmNsdWRl
ICJDb250ZW50RXh0ZW5zaW9uRXJyb3IuaCIKICNpbmNsdWRlICJDb250ZW50RXh0ZW5zaW9uUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvblJ1bGUuaCIKQEAgLTIzOCwxMyArMjM5
LDExIEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEUKICAgICBkb3Vi
bGUgdG90YWxORkFUb0J5dGVDb2RlQnVpbGRUaW1lU3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKTsKICNlbmRpZgogCi0gICAgLy8gU21hbGxlciBtYXhORkFTaXplcyByaXNrIGhp
Z2ggY29tcGlsaW5nIGFuZCBpbnRlcnByZXRpbmcgdGltZXMgZnJvbSBoYXZpbmcgdG9vIG1hbnkg
REZBcywKLSAgICAvLyBsYXJnZXIgbWF4TkZBU2l6ZXMgdXNlIHRvbyBtdWNoIG1lbW9yeSB3aGVu
IGNvbXBpbGluZy4KLSAgICBjb25zdCB1bnNpZ25lZCBtYXhORkFTaXplID0gMzAwMDA7CisgICAg
dW5zaWduZWQgbmZhU2l6ZUxpbWl0ID0gbWF4TkZBU2l6ZSgpOwogICAgIAogICAgIGJvb2wgZmly
c3RORkFXaXRob3V0RG9tYWluc1NlZW4gPSBmYWxzZTsKICAgICAvLyBGSVhNRTogQ29tYmluZSBz
bWFsbCBORkFzIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIE5GQXMuCi0gICAgZmlsdGVyc1dpdGhv
dXREb21haW5zLnByb2Nlc3NORkFzKG1heE5GQVNpemUsIFsmXShORkEmJiBuZmEpIHsKKyAgICBm
aWx0ZXJzV2l0aG91dERvbWFpbnMucHJvY2Vzc05GQXMobmZhU2l6ZUxpbWl0LCBbJl0oTkZBJiYg
bmZhKSB7CiAjaWYgQ09OVEVOVF9FWFRFTlNJT05TX1NUQVRFX01BQ0hJTkVfREVCVUdHSU5HCiAg
ICAgICAgIGRhdGFMb2dGKCJmaWx0ZXJzV2l0aG91dERvbWFpbnMgTkZBXG4iKTsKICAgICAgICAg
bmZhLmRlYnVnUHJpbnREb3QoKTsKQEAgLTI5Nyw3ICsyOTYsNyBAQCBzdGQ6OmVycm9yX2NvZGUg
Y29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFCiAgICAgdW5pdmVyc2FsQWN0aW9uc1dpdGhvdXREb21h
aW5zLmNsZWFyKCk7CiAgICAgCiAgICAgYm9vbCBmaXJzdE5GQVdpdGhEb21haW5zU2VlbiA9IGZh
bHNlOwotICAgIGZpbHRlcnNXaXRoRG9tYWlucy5wcm9jZXNzTkZBcyhtYXhORkFTaXplLCBbJl0o
TkZBJiYgbmZhKSB7CisgICAgZmlsdGVyc1dpdGhEb21haW5zLnByb2Nlc3NORkFzKG5mYVNpemVM
aW1pdCwgWyZdKE5GQSYmIG5mYSkgewogI2lmIENPTlRFTlRfRVhURU5TSU9OU19TVEFURV9NQUNI
SU5FX0RFQlVHR0lORwogICAgICAgICBkYXRhTG9nRigiZmlsdGVyc1dpdGhEb21haW5zIE5GQVxu
Iik7CiAgICAgICAgIG5mYS5kZWJ1Z1ByaW50RG90KCk7CkBAIC0zNDksNyArMzQ4LDcgQEAgc3Rk
OjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RQogICAgIExPR19MQVJHRV9TVFJV
Q1RVUkVTKHVuaXZlcnNhbEFjdGlvbnNXaXRoRG9tYWlucywgdW5pdmVyc2FsQWN0aW9uc1dpdGhE
b21haW5zLmNhcGFjaXR5KCkgKiBzaXplb2YodW5zaWduZWQpKTsKICAgICB1bml2ZXJzYWxBY3Rp
b25zV2l0aERvbWFpbnMuY2xlYXIoKTsKIAotICAgIGRvbWFpbkZpbHRlcnMucHJvY2Vzc05GQXMo
bWF4TkZBU2l6ZSwgWyZdKE5GQSYmIG5mYSkgeworICAgIGRvbWFpbkZpbHRlcnMucHJvY2Vzc05G
QXMobmZhU2l6ZUxpbWl0LCBbJl0oTkZBJiYgbmZhKSB7CiAjaWYgQ09OVEVOVF9FWFRFTlNJT05T
X1NUQVRFX01BQ0hJTkVfREVCVUdHSU5HCiAgICAgICAgIGRhdGFMb2dGKCJkb21haW5GaWx0ZXJz
IE5GQVxuIik7CiAgICAgICAgIG5mYS5kZWJ1Z1ByaW50RG90KCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRGVmYXVsdHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
RGVmYXVsdHMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25EZWZhdWx0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRlbnRFeHRlbnNpb25EZWZhdWx0c19oCisj
ZGVmaW5lIENvbnRlbnRFeHRlbnNpb25EZWZhdWx0c19oCisKKyNpZiBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQorCisjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvbnNEZWJ1Z2dpbmcuaCIKKyNp
bmNsdWRlICJORkEuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorbmFtZXNwYWNlIENvbnRlbnRF
eHRlbnNpb25zIHsKKwordW5zaWduZWQgbWF4TkZBU2l6ZSgpOwordW5zaWduZWQgbWF4UnVsZUNv
dW50KCk7CisKK30gLy8gbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorCisjZW5k
aWYgLy8gQ29udGVudEV4dGVuc2lvbkRlZmF1bHRzX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNw
cAkocmV2aXNpb24gMTg0OTg2KQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkVycm9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsOCBA
QCBjb25zdCBzdGQ6OmVycm9yX2NhdGVnb3J5JiBjb250ZW50RXh0ZW5zCiAgICAgICAgICAgICAg
ICAgcmV0dXJuICJJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIHJlZ3VsYXIgZXhwcmVzc2lvbi4iOwog
ICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkRG9tYWlu
TGlzdDoKICAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgZG9tYWluIGxpc3QuIjsKKyAg
ICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzOgor
ICAgICAgICAgICAgICAgIHJldHVybiAiVG9vIG1hbnkgcnVsZXMgaW4gSlNPTiBhcnJheS4iOwog
ICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Eb21haW5Ob3RMb3dl
ckNhc2VBU0NJSToKICAgICAgICAgICAgICAgICByZXR1cm4gIkRvbWFpbnMgbXVzdCBiZSBsb3dl
ciBjYXNlIEFTQ0lJLiAgVXNlIHB1bnljb2RlIHRvIGVuY29kZSBub24tQVNDSUkgY2hhcmFjdGVy
cy4iOwogICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Vbmxlc3NB
bmRJZkRvbWFpbjoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25FcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oCShyZXZpc2lvbiAxODQ5ODYpCisrKyBT
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBlbnVtIGNsYXNzIENvbnRlbnRFeHRlbnNp
b25FcnJvciB7CiAgICAgSlNPTkludmFsaWREb21haW5MaXN0LAogICAgIEpTT05Eb21haW5Ob3RM
b3dlckNhc2VBU0NJSSwKICAgICBKU09OVW5sZXNzQW5kSWZEb21haW4sCisgICAgSlNPTlRvb01h
bnlSdWxlcywKICAgICAKICAgICBKU09OSW52YWxpZEFjdGlvbiwKICAgICBKU09OSW52YWxpZEFj
dGlvblR5cGUsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAkocmV2aXNpb24gMTg0OTg2KQor
KysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJDb250ZW50RXh0ZW5zaW9uRGVmYXVsdHMuaCIK
ICNpbmNsdWRlICJDb250ZW50RXh0ZW5zaW9uRXJyb3IuaCIKICNpbmNsdWRlICJDb250ZW50RXh0
ZW5zaW9uUnVsZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oIgpAQCAt
MjM5LDYgKzI0MCw4IEBAIHN0YXRpYyBzdGQ6OmVycm9yX2NvZGUgbG9hZEVuY29kZWRSdWxlcygK
ICAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+IGxvY2FsUnVsZUxpc3Q7CiAKICAgICB1
bnNpZ25lZCBsZW5ndGggPSB0b3BMZXZlbEFycmF5LT5sZW5ndGgoKTsKKyAgICBpZiAobGVuZ3Ro
ID4gbWF4UnVsZUNvdW50KCkpCisgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05Ub29NYW55UnVsZXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB0b3BMZXZlbEFycmF5LT5nZXRJbmRleCgm
ZXhlYywgaSk7CiAgICAgICAgIGlmIChleGVjLmhhZEV4Y2VwdGlvbigpIHx8ICF2YWx1ZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL2NvY29hL0NvbnRlbnRFeHRlbnNp
b25EZWZhdWx0c0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL2NvY29hL0NvbnRlbnRFeHRlbnNpb25EZWZhdWx0c0NvY29hLm1tCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvY29jb2EvQ29udGVudEV4
dGVuc2lvbkRlZmF1bHRzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZW50RXh0ZW5z
aW9uRGVmYXVsdHMuaCIKKworI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICAKK25hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7CisKK3Vu
c2lnbmVkIG1heE5GQVNpemUoKQoreworICAgIE5TSW50ZWdlciBtYXhORkFTaXplID0gW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpAIkNvbnRlbnRF
eHRlbnNpb25NYXhORkFTaXplIl07CisgICAgaWYgKG1heE5GQVNpemUpCisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4TkZBU2l6ZSk7CisgICAgCisgICAgLy8gU21hbGxl
ciBtYXhORkFTaXplcyByaXNrIGhpZ2ggY29tcGlsaW5nIGFuZCBpbnRlcnByZXRpbmcgdGltZXMg
ZnJvbSBoYXZpbmcgdG9vIG1hbnkgREZBcywKKyAgICAvLyBsYXJnZXIgbWF4TkZBU2l6ZXMgdXNl
IHRvbyBtdWNoIG1lbW9yeSB3aGVuIGNvbXBpbGluZy4KKyAgICByZXR1cm4gMzAwMDA7Cit9Cisg
ICAgCit1bnNpZ25lZCBtYXhSdWxlQ291bnQoKQoreworICAgIE5TSW50ZWdlciBtYXhORkFTaXpl
ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gaW50ZWdlckZvcktleTpA
IkNvbnRlbnRFeHRlbnNpb25NYXhSdWxlQ291bnQiXTsKKyAgICBpZiAobWF4TkZBU2l6ZSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhORkFTaXplKTsKKyAgICAKKyAg
ICAvLyBMYXJnZXIgbWF4UnVsZUNvdW50cyByaXNrIGhpZ2ggY29tcGlsaW5nIHRpbWVzLgorICAg
IHJldHVybiA1MDAwMDsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25z
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTg1MjE4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDYtMDQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBNYWtlIG1h
eCBORkEgc2l6ZSBhbmQgbWF4IHJ1bGUgY291bnQgdXNlciBkZWZhdWx0cy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTY2MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1RfRik6CisKIDIwMTUtMDYtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKICAgICAgICAgRml4IG9wdGlvbnMgaW4gYnVpbGQtanNjIGZvciBDTWFrZSBidWls
ZHMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25zLmNwcAkocmV2aXNpb24gMTg1MDc5KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODEyLDYgKzgxMiwxNSBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEludmFs
aWRKU09OCiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwicmVz
b3VyY2UtdHlwZVwiOls1XX19XSIsCiAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3RyaW5nSW5UcmlnZ2VyRmxhZ3NBcnJheSk7CiAg
ICAgCisgICAgU3RyaW5nQnVpbGRlciBydWxlczsKKyAgICBydWxlcy5hcHBlbmQoIlsiKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgNTAwMDA7ICsraSkKKyAgICAgICAgcnVsZXMuYXBw
ZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJhXCJ9fSwiKTsKKyAgICBTdHJpbmcgcnVsZXM1MDAwMCA9IHJ1bGVzLnRvU3Ry
aW5nKCkgKyAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwiYVwifX1dIjsKKyAgICBTdHJpbmcgcnVsZXM1MDAwMSA9IHJ1bGVzLnRv
U3RyaW5nKCkgKyAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIjsKKyAgICBjaGVja0NvbXBpbGVy
RXJyb3IocnVsZXM1MDAwMC51dGY4KCkuZGF0YSgpLCB7IH0pOworICAgIGNoZWNrQ29tcGlsZXJF
cnJvcihydWxlczUwMDAxLnV0ZjgoKS5kYXRhKCksIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVsZXMpOworICAgIAogICAgIGNoZWNrQ29tcGls
ZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOnt9fX1dIiwgQ29udGVu
dEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWREb21haW5MaXN0
KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21h
aW5cIjpbNV19fV0iLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZERvbWFpbkxpc3QpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndl
YmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltcImFcIl19fV0iLCB7IH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254694</attachid>
            <date>2015-06-10 17:46:43 -0700</date>
            <delta_ts>2015-06-15 09:35:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145663-20150610174615.patch</filename>
            <type>text/plain</type>
            <size>5629</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTQ0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA2LTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NvbnRlbnQg
RXh0ZW5zaW9uc10gTGltaXQgbnVtYmVyIG9mIHJ1bGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYW4gQVBJIHRlc3QgdG8gbWFrZSBzdXJl
IHRoYXQgcGFyc2luZyBmYWlscyB3aGVuIHRoZXJlIGFyZSB0b28gbWFueSBydWxlcy4KKworICAg
ICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29udGVudEV4dGVuc2lvbkVycm9yQ2F0
ZWdvcnkpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJv
ci5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRFbmNvZGVkUnVs
ZXMpOgorICAgICAgICBGYWlsIHRvIHBhcnNlIGEgY29udGVudCBleHRlbnNpb24gd2l0aCBtb3Jl
IHRoYW4gNTAwMDAgcnVsZXMuCisKIDIwMTUtMDYtMTAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTg0ODk1KTogVmVy
dGljYWwgYm9yZGVyIGVsZW1lbnRzIChbLXdlYmtpdF0tYm9yZGVyLWltYWdlIHNldCB0byAncmVw
ZWF0JykgdGhhdCB1c2VkIHRvIHJlbmRlciBwZXJmZWN0bHkgYXJlIG5vdyByZW5kZXJpbmcgaW5j
b3JyZWN0bHkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAJKHJldmlzaW9uIDE4NTQyNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDggQEAgY29uc3Qgc3RkOjplcnJvcl9jYXRl
Z29yeSYgY29udGVudEV4dGVucwogICAgICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCBvciB1
bnN1cHBvcnRlZCByZWd1bGFyIGV4cHJlc3Npb24uIjsKICAgICAgICAgICAgIGNhc2UgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZERvbWFpbkxpc3Q6CiAgICAgICAgICAgICAgICAg
cmV0dXJuICJJbnZhbGlkIGRvbWFpbiBsaXN0LiI7CisgICAgICAgICAgICBjYXNlIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlczoKKyAgICAgICAgICAgICAgICByZXR1cm4g
IlRvbyBtYW55IHJ1bGVzIGluIEpTT04gYXJyYXkuIjsKICAgICAgICAgICAgIGNhc2UgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09ORG9tYWluTm90TG93ZXJDYXNlQVNDSUk6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuICJEb21haW5zIG11c3QgYmUgbG93ZXIgY2FzZSBBU0NJSS4gIFVzZSBwdW55
Y29kZSB0byBlbmNvZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIjsKICAgICAgICAgICAgIGNhc2Ug
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVW5sZXNzQW5kSWZEb21haW46CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uRXJyb3IuaAkocmV2aXNpb24gMTg1NDI1KQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYg
KzUyLDcgQEAgZW51bSBjbGFzcyBDb250ZW50RXh0ZW5zaW9uRXJyb3IgewogICAgIEpTT05JbnZh
bGlkRG9tYWluTGlzdCwKICAgICBKU09ORG9tYWluTm90TG93ZXJDYXNlQVNDSUksCiAgICAgSlNP
TlVubGVzc0FuZElmRG9tYWluLAorICAgIEpTT05Ub29NYW55UnVsZXMsCiAgICAgCiAgICAgSlNP
TkludmFsaWRBY3Rpb24sCiAgICAgSlNPTkludmFsaWRBY3Rpb25UeXBlLApJbmRleDogU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvblBhcnNlci5jcHAJKHJldmlzaW9uIDE4NTQyNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzksNiArMjM5LDkgQEAgc3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBsb2FkRW5jb2RlZFJ1bGVz
KAogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVsZT4gbG9jYWxSdWxlTGlzdDsKIAogICAg
IHVuc2lnbmVkIGxlbmd0aCA9IHRvcExldmVsQXJyYXktPmxlbmd0aCgpOworICAgIGNvbnN0IHVu
c2lnbmVkIG1heFJ1bGVDb3VudCA9IDUwMDAwOworICAgIGlmIChsZW5ndGggPiBtYXhSdWxlQ291
bnQpCisgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub29NYW55UnVs
ZXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAg
IEpTVmFsdWUgdmFsdWUgPSB0b3BMZXZlbEFycmF5LT5nZXRJbmRleCgmZXhlYywgaSk7CiAgICAg
ICAgIGlmIChleGVjLmhhZEV4Y2VwdGlvbigpIHx8ICF2YWx1ZSkKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTQyNSkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA2
LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW0NvbnRlbnQgRXh0ZW5zaW9uc10gTWFrZSBtYXggTkZBIHNpemUgYW5kIG1heCBydWxlIGNv
dW50IHVzZXIgZGVmYXVsdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDU2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9u
cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDE1LTA2LTEwICBI
eXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgogCiAgICAgICAgIFtF
RkxdIEV4ZWN1dGUgSmF2YXNjcmlwdCBtZXRob2QgaW4gbWluaSBicm93c2VyIGFkZHJlc3MgYmFy
LgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwCShyZXZpc2lvbiAxODU0MjUpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MTIsNiArODEyLDE1IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgSW52YWxp
ZEpTT04KICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJyZXNv
dXJjZS10eXBlXCI6WzVdfX1dIiwKICAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRTdHJpbmdJblRyaWdnZXJGbGFnc0FycmF5KTsKICAg
ICAKKyAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzOworICAgIHJ1bGVzLmFwcGVuZCgiWyIpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCA1MDAwMDsgKytpKQorICAgICAgICBydWxlcy5hcHBl
bmQoIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1m
aWx0ZXJcIjpcImFcIn19LCIpOworICAgIFN0cmluZyBydWxlczUwMDAwID0gcnVsZXMudG9TdHJp
bmcoKSArICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJhXCJ9fV0iOworICAgIFN0cmluZyBydWxlczUwMDAxID0gcnVsZXMudG9T
dHJpbmcoKSArICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSx7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0iOworICAgIGNoZWNrQ29tcGlsZXJF
cnJvcihydWxlczUwMDAwLnV0ZjgoKS5kYXRhKCksIHsgfSk7CisgICAgY2hlY2tDb21waWxlckVy
cm9yKHJ1bGVzNTAwMDEudXRmOCgpLmRhdGEoKSwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlcyk7CisgICAgCiAgICAgY2hlY2tDb21waWxl
ckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6e319fV0iLCBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZERvbWFpbkxpc3Qp
OwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2Nr
XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFp
blwiOls1XX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05JbnZhbGlkRG9tYWluTGlzdCk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Vi
a2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19XSIsIHsgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254878</attachid>
            <date>2015-06-15 09:35:08 -0700</date>
            <delta_ts>2015-06-15 10:23:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145663-20150615093434.patch</filename>
            <type>text/plain</type>
            <size>5589</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTU1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA2LTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NvbnRlbnQg
RXh0ZW5zaW9uc10gTGltaXQgbnVtYmVyIG9mIHJ1bGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICBBZGRlZCBhbiBBUEkgdGVzdCB0byBtYWtlIHN1
cmUgdGhhdCBwYXJzaW5nIGZhaWxzIHdoZW4gdGhlcmUgYXJlIHRvbyBtYW55IHJ1bGVzLgorCisg
ICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb250ZW50RXh0ZW5zaW9uRXJyb3JD
YXRlZ29yeSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVy
cm9yLmg6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEVuY29kZWRS
dWxlcyk6CisgICAgICAgIEZhaWwgdG8gcGFyc2UgYSBjb250ZW50IGV4dGVuc2lvbiB3aXRoIG1v
cmUgdGhhbiA1MDAwMCBydWxlcy4KKwogMjAxNS0wNi0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIE1vdmUgV2ViS2l0U291cFJl
cXVlc3RHZW5lcmljIHRvIHBsYXRmb3JtIGxheWVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAJ
KHJldmlzaW9uIDE4NTU1MikKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25FcnJvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDggQEAg
Y29uc3Qgc3RkOjplcnJvcl9jYXRlZ29yeSYgY29udGVudEV4dGVucwogICAgICAgICAgICAgICAg
IHJldHVybiAiSW52YWxpZCBvciB1bnN1cHBvcnRlZCByZWd1bGFyIGV4cHJlc3Npb24uIjsKICAg
ICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZERvbWFpbkxp
c3Q6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkIGRvbWFpbiBsaXN0LiI7CisgICAg
ICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvb01hbnlSdWxlczoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gIlRvbyBtYW55IHJ1bGVzIGluIEpTT04gYXJyYXkuIjsKICAg
ICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09ORG9tYWluTm90TG93ZXJD
YXNlQVNDSUk6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJEb21haW5zIG11c3QgYmUgbG93ZXIg
Y2FzZSBBU0NJSS4gIFVzZSBwdW55Y29kZSB0byBlbmNvZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMu
IjsKICAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVW5sZXNzQW5k
SWZEb21haW46CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaAkocmV2aXNpb24gMTg1NTUyKQorKysgU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgZW51bSBjbGFzcyBDb250ZW50RXh0ZW5zaW9u
RXJyb3IgewogICAgIEpTT05JbnZhbGlkRG9tYWluTGlzdCwKICAgICBKU09ORG9tYWluTm90TG93
ZXJDYXNlQVNDSUksCiAgICAgSlNPTlVubGVzc0FuZElmRG9tYWluLAorICAgIEpTT05Ub29NYW55
UnVsZXMsCiAgICAgCiAgICAgSlNPTkludmFsaWRBY3Rpb24sCiAgICAgSlNPTkludmFsaWRBY3Rp
b25UeXBlLApJbmRleDogU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvblBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAJKHJldmlzaW9uIDE4NTU1MikKKysr
IFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNiArMjM5LDkgQEAgc3RhdGljIHN0ZDo6ZXJyb3Jf
Y29kZSBsb2FkRW5jb2RlZFJ1bGVzKAogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVsZT4g
bG9jYWxSdWxlTGlzdDsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRvcExldmVsQXJyYXktPmxl
bmd0aCgpOworICAgIGNvbnN0IHVuc2lnbmVkIG1heFJ1bGVDb3VudCA9IDUwMDAwOworICAgIGlm
IChsZW5ndGggPiBtYXhSdWxlQ291bnQpCisgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05Ub29NYW55UnVsZXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSB0b3BMZXZlbEFycmF5LT5nZXRJ
bmRleCgmZXhlYywgaSk7CiAgICAgICAgIGlmIChleGVjLmhhZEV4Y2VwdGlvbigpIHx8ICF2YWx1
ZSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE4NTU1MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDEzIEBACisyMDE1LTA2LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NvbnRlbnQgRXh0ZW5zaW9uc10gTWFrZSBtYXggTkZB
IHNpemUgYW5kIG1heCBydWxlIGNvdW50IHVzZXIgZGVmYXVsdHMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBCZW5qYW1pbiBQb3VsYWluLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1RfRik6CisKIDIwMTUtMDYtMTUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbR1RLXSBGaXggZGVwcmVjYXRlZC1yZWdpc3RlciB3YXJuaW5nIGluIHRo
ZSBnZW5lcmF0ZWQgV2ViS2l0TWFyc2hhbC5jcHAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAkocmV2aXNp
b24gMTg1NTUyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRF
eHRlbnNpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEyLDYgKzgxMiwxNyBAQCBURVNUX0Yo
Q29udGVudEV4dGVuc2lvblRlc3QsIEludmFsaWRKU09OCiAgICAgY2hlY2tDb21waWxlckVycm9y
KCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwid2Via2l0Lm9yZ1wiLFwicmVzb3VyY2UtdHlwZVwiOls1XX19XSIsCiAgICAgICAg
IENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkU3Ry
aW5nSW5UcmlnZ2VyRmxhZ3NBcnJheSk7CiAgICAgCisgICAgU3RyaW5nQnVpbGRlciBydWxlczsK
KyAgICBydWxlcy5hcHBlbmQoIlsiKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDk5
OTk7ICsraSkKKyAgICAgICAgcnVsZXMuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fSwiKTsKKyAgICBTdHJp
bmcgcnVsZXM1MDAwMCA9IHJ1bGVzLnRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHJ1bGVzNTAwMDEg
PSBydWxlcy50b1N0cmluZygpOworICAgIHJ1bGVzNTAwMDAuYXBwZW5kKCJ7XCJhY3Rpb25cIjp7
XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhXCJ9fV0i
KTsKKyAgICBydWxlczUwMDAxLmFwcGVuZCgie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tc
In0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX0se1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYVwifX1dIik7Cisg
ICAgY2hlY2tDb21waWxlckVycm9yKHJ1bGVzNTAwMDAudXRmOCgpLmRhdGEoKSwgeyB9KTsKKyAg
ICBjaGVja0NvbXBpbGVyRXJyb3IocnVsZXM1MDAwMS51dGY4KCkuZGF0YSgpLCBDb250ZW50RXh0
ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9vTWFueVJ1bGVzKTsKKyAgICAK
ICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wi
fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5c
Ijp7fX19XSIsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkRG9tYWluTGlzdCk7CiAgICAgY2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0
Lm9yZ1wiLFwiaWYtZG9tYWluXCI6WzVdfX1dIiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWREb21haW5MaXN0KTsKICAgICBjaGVja0NvbXBpbGVy
RXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJhXCJdfX1dIiwgeyB9
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>