<?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>147018</bug_id>
          
          <creation_ts>2015-07-16 14:34:32 -0700</creation_ts>
          <short_desc>Web Inspector: [Freetype] Allow inspector to retrieve a list of system fonts</short_desc>
          <delta_ts>2015-07-30 07:51:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1109976</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-16 14:34:32 -0700</bug_when>
    <thetext>This will be really useful for a font picker and for autocompletion.  See https://bugs.webkit.org/show_bug.cgi?id=147009 for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109977</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-16 14:34:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/21863018&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110009</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-16 15:39:30 -0700</bug_when>
    <thetext>I think we&apos;ll need to use FcFontList:

&quot;&quot;&quot;
FcFontSet * FcFontList(FcConfig *config, FcPattern *p, FcObjectSet *os);

Selects fonts matching p, creates patterns from those fonts containing only the objects in os and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used.
&quot;&quot;&quot;

Maybe someone with more endurance for fontconfig could translate that to English....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110010</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-16 15:39:52 -0700</bug_when>
    <thetext>Forgot the link: http://www.freedesktop.org/software/fontconfig/fontconfig-devel/fcfontlist.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113011</commentid>
    <comment_count>4</comment_count>
      <attachid>257724</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-28 19:49:10 -0700</bug_when>
    <thetext>Created attachment 257724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113012</commentid>
    <comment_count>5</comment_count>
      <attachid>257725</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-28 19:55:31 -0700</bug_when>
    <thetext>Created attachment 257725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113044</commentid>
    <comment_count>6</comment_count>
      <attachid>257725</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-28 22:58:38 -0700</bug_when>
    <thetext>Comment on attachment 257725
Patch

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

&gt; Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:105
&gt; +static Vector&lt;String&gt; patternToFamilies(const FcPattern&amp; pattern)
&gt; +{
&gt; +    char* patternChars = reinterpret_cast&lt;char*&gt;(FcPatternFormat(
&gt; +        const_cast&lt;FcPattern*&gt;(&amp;pattern),
&gt; +        reinterpret_cast&lt;const FcChar8*&gt;(&quot;%{family}&quot;)));

I think it&apos;s more convenient to pass the pointer here, since it&apos;s what you need and you don&apos;t need more ugly casts. This is a private static function after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113081</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-29 07:42:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think it&apos;s more convenient to pass the pointer here, since it&apos;s what you
&gt; need and you don&apos;t need more ugly casts. This is a private static function
&gt; after all.

Yeah... I will just remove the const though, then no cast is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113091</commentid>
    <comment_count>8</comment_count>
      <attachid>257748</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-29 08:37:40 -0700</bug_when>
    <thetext>Created attachment 257748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113150</commentid>
    <comment_count>9</comment_count>
      <attachid>257748</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-07-29 13:12:43 -0700</bug_when>
    <thetext>Comment on attachment 257748
Patch

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

The LayoutTests changes look good to me, with a small suggestion.

&gt; LayoutTests/inspector/css/get-system-fonts.html:6
&gt; +// Testing that we can get the fonts on the system...

Please move the test description to inside &lt;body&gt;. You might want to improve the wording, i.e., &quot;Tests that the Web Inspector can enumerate system fonts, and checks for the existence of common fonts.&quot;

&gt; LayoutTests/inspector/css/get-system-fonts.html:16
&gt;              InspectorTest.log(&quot;Has at least 5 fonts: &quot; + (fontFamilyNames.length &gt;= 5));

This should really be an assertion: InspectorTest.assert(cond, message). But you&apos;d have to rebaseline the text for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113230</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-29 17:45:27 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; LayoutTests/inspector/css/get-system-fonts.html:6
&gt; &gt; +// Testing that we can get the fonts on the system...
&gt; 
&gt; Please move the test description to inside &lt;body&gt;. You might want to improve
&gt; the wording, i.e., &quot;Tests that the Web Inspector can enumerate system fonts,
&gt; and checks for the existence of common fonts.&quot;

OK

&gt; &gt; LayoutTests/inspector/css/get-system-fonts.html:16
&gt; &gt;              InspectorTest.log(&quot;Has at least 5 fonts: &quot; + (fontFamilyNames.length &gt;= 5));
&gt; 
&gt; This should really be an assertion: InspectorTest.assert(cond, message). But
&gt; you&apos;d have to rebaseline the text for other platforms.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113247</commentid>
    <comment_count>11</comment_count>
      <attachid>257798</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-07-29 18:49:56 -0700</bug_when>
    <thetext>Created attachment 257798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113317</commentid>
    <comment_count>12</comment_count>
      <attachid>257798</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-29 23:09:08 -0700</bug_when>
    <thetext>Comment on attachment 257798
Patch

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113356</commentid>
    <comment_count>13</comment_count>
      <attachid>257798</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-30 07:51:16 -0700</bug_when>
    <thetext>Comment on attachment 257798
Patch

Clearing flags on attachment: 257798

Committed r187583: &lt;http://trac.webkit.org/changeset/187583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113357</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-30 07:51:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257724</attachid>
            <date>2015-07-28 19:49:10 -0700</date>
            <delta_ts>2015-07-28 19:55:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147018-20150728214747.patch</filename>
            <type>text/plain</type>
            <size>8009</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFlMjhkNWM0YWRmNDE3
ZTYxOWE1NGI4YzNkZWRmZDBiMTdjOWI2MC4uMmQxN2JmMTM3ODVjNDEyMTBmYWJlNWZmZjNhNGI0
NWFiY2U2MjcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACisyMDE1LTA3LTI4ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbRnJlZXR5cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2ZSBhIGxpc3Qgb2Yg
c3lzdGVtIGZvbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHM7IHVuc2tpcHBlZCBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9u
dHMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0dGVyblRvRmFtaWxpZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRm9udEZhbWlsaWVzKTogSW1w
bGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJvbmdBbGlhc2VzRm9yRmFtaWx5KTogU3Bs
aXQgc29tZSBjb2RlIG9mZiB0byBwYXR0ZXJuVG9GYW1pbGllcy4KKwogMjAxNS0wNy0yOCAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgTWlub3Ig
Y2xlYW51cHMgaW4gRm9udENhY2hlRnJlZVR5cGUuY3BwCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDczOTIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5
cGUuY3BwCmluZGV4IDc2YjYzZGI1Y2Y2YWY2NGRhMzk4ODlmN2Y4YmZmNzM4NWFkMWEzN2EuLjQ3
Njk2MmRmMDRkNDUyY2MxZGMxMzNhZTM4OGFjYjEwMWU3N2MxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2Fj
aGVGcmVlVHlwZS5jcHAKQEAgLTk4LDEwICs5OCwzNiBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hl
OjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNj
cgogICAgIHJldHVybiBmb250Rm9yUGxhdGZvcm1EYXRhKGFsdGVybmF0ZUZvbnREYXRhKTsKIH0K
IAorc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhdHRlcm5Ub0ZhbWlsaWVzKGNvbnN0IEZjUGF0dGVy
biYgcGF0dGVybikKK3sKKyAgICBjaGFyKiBwYXR0ZXJuQ2hhcnMgPSByZWludGVycHJldF9jYXN0
PGNoYXIqPihGY1BhdHRlcm5Gb3JtYXQoCisgICAgICAgIGNvbnN0X2Nhc3Q8RmNQYXR0ZXJuKj4o
JnBhdHRlcm4pLAorICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPigiJXtm
YW1pbHl9IikpKTsKKyAgICBTdHJpbmcgcGF0dGVyblN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgo
cGF0dGVybkNoYXJzKTsKKyAgICBmcmVlKHBhdHRlcm5DaGFycyk7CisKKyAgICBWZWN0b3I8U3Ry
aW5nPiByZXN1bHRzOworICAgIHBhdHRlcm5TdHJpbmcuc3BsaXQoJywnLCByZXN1bHRzKTsKKyAg
ICByZXR1cm4gcmVzdWx0czsKK30KKwogVmVjdG9yPFN0cmluZz4gRm9udENhY2hlOjpzeXN0ZW1G
b250RmFtaWxpZXMoKQogewotICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ3
MDE4PiBXZWIgSW5zcGVjdG9yOiBbRnJlZXR5cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2
ZSBhIGxpc3Qgb2Ygc3lzdGVtIGZvbnRzCisgICAgUmVmUHRyPEZjUGF0dGVybj4gc2NhbGFibGVz
T25seVBhdHRlcm4gPSBhZG9wdFJlZihGY1BhdHRlcm5DcmVhdGUoKSk7CisgICAgRmNQYXR0ZXJu
QWRkQm9vbChzY2FsYWJsZXNPbmx5UGF0dGVybi5nZXQoKSwgRkNfU0NBTEFCTEUsIEZjVHJ1ZSk7
CisKKyAgICBGY1VuaXF1ZVB0cjxGY09iamVjdFNldD4gZmFtaWxpZXNPbmx5KEZjT2JqZWN0U2V0
QnVpbGQoRkNfRkFNSUxZLCBudWxscHRyKSk7CisgICAgRmNVbmlxdWVQdHI8RmNGb250U2V0PiBm
b250U2V0KEZjRm9udExpc3QobnVsbHB0ciwgc2NhbGFibGVzT25seVBhdHRlcm4uZ2V0KCksIGZh
bWlsaWVzT25seS5nZXQoKSkpOworCiAgICAgVmVjdG9yPFN0cmluZz4gZm9udEZhbWlsaWVzOwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9udFNldC0+bmZvbnQ7IGkrKykgeworICAgICAgICBG
Y1BhdHRlcm4qIHBhdHRlcm4gPSBmb250U2V0LT5mb250c1tpXTsKKyAgICAgICAgRmNDaGFyOCog
ZmFtaWx5ID0gbnVsbHB0cjsKKyAgICAgICAgRmNQYXR0ZXJuR2V0U3RyaW5nKHBhdHRlcm4sIEZD
X0ZBTUlMWSwgMCwgJmZhbWlseSk7CisgICAgICAgIGlmIChmYW1pbHkpCisgICAgICAgICAgICBm
b250RmFtaWxpZXMuYXBwZW5kVmVjdG9yKHBhdHRlcm5Ub0ZhbWlsaWVzKCpwYXR0ZXJuKSk7Cisg
ICAgfQorCiAgICAgcmV0dXJuIGZvbnRGYW1pbGllczsKIH0KIApAQCAtMjc3LDE2ICszMDMsNyBA
QCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gc3Ryb25nQWxpYXNlc0ZvckZhbWlseShjb25zdCBTdHJp
bmcmIGZhbWlseSkKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFRha2UgdGhlIHJlc3VsdGlu
ZyBwYXR0ZXJuIGFuZCByZW1vdmUgZXZlcnl0aGluZyBidXQgdGhlIGZhbWlsaWVzLgotICAgIG1p
bmltYWwgPSBhZG9wdFJlZihGY1BhdHRlcm5GaWx0ZXIocGF0dGVybi5nZXQoKSwgZmFtaWxpZXNP
bmx5LmdldCgpKSk7Ci0gICAgLy8gQ29udmVydCB0aGUgcGF0dGVybiB0byBhIHN0cmluZywgYW5k
IGN1dCBvdXQgdGhlIG5vbi1mYW1pbHkganVuayB0aGF0IGdldHMgYWRkZWQgdG8gdGhlIGVuZC4K
LSAgICBjaGFyKiBwYXR0ZXJuQ2hhcnMgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihGY1BhdHRl
cm5Gb3JtYXQocGF0dGVybi5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4o
IiV7ZmFtaWx5fSIpKSk7Ci0gICAgU3RyaW5nIHBhdHRlcm5TdHJpbmcgPSBTdHJpbmc6OmZyb21V
VEY4KHBhdHRlcm5DaGFycyk7Ci0gICAgZnJlZShwYXR0ZXJuQ2hhcnMpOwotCi0gICAgVmVjdG9y
PFN0cmluZz4gcmVzdWx0czsKLSAgICBwYXR0ZXJuU3RyaW5nLnNwbGl0KCcsJywgcmVzdWx0cyk7
Ci0gICAgcmV0dXJuIHJlc3VsdHM7CisgICAgcmV0dXJuIHBhdHRlcm5Ub0ZhbWlsaWVzKCpwYXR0
ZXJuKTsKIH0KIAogc3RhdGljIGJvb2wgYXJlU3Ryb25nbHlBbGlhc2VkKGNvbnN0IFN0cmluZyYg
ZmFtaWx5QSwgY29uc3QgU3RyaW5nJiBmYW1pbHlCKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0YzFhZjVkYzlhMGRjZGUy
ZWM0ODFjN2QyNDBiOTA3ZDkyMzNlN2IuLjg4NTc2ZDhhNjIyNjlmMDUxZGYzMzUyZTM0NjIwMWIw
MjcwYTZlYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxNS0wNy0yOCAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
W0ZyZWV0eXBlXSBBbGxvdyBpbnNwZWN0b3IgdG8gcmV0cmlldmUgYSBsaXN0IG9mIHN5c3RlbSBm
b250cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3
MDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0OiBFeHBlY3Qgc29tZSBm
cmVlIGZvbnRzIHRvIGJlIG1pc3NpbmcuLi4uCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9nZXQt
c3lzdGVtLWZvbnRzLmh0bWw6IENoZWNrIGZvciBzb21lIGZyZWUgZm9udHMuCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCB0aGUgdGVzdC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKKzIwMTUtMDctMjggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bp
Z2FsaWEuY29tPgorCiAgICAgICAgIFtGcmVldHlwZV0gQWx3YXlzIGFsbG93IGZvbnQgbWF0Y2hp
bmcgZm9yIHN0cm9uZyBhbGlhc2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDcwNTcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQKaW5kZXggMmUzMTYxYmUwYWExMDQw
NjE2MzRiYjA5YTg0MDQ2ZTM2NmJiNzc2Yy4uNmM0YWE3MzkwZGY2ZWQ5MjVkZjY1OGNkYzJjM2Nk
NGU3N2EzNmI0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lz
dGVtLWZvbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dl
dC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogSGFzIGF0IGxlYXN0
IDUgZm9udHM6IHRydWUKLVBBU1M6IEluY2x1ZGVzIEFyaWFsCi1QQVNTOiBJbmNsdWRlcyBUaW1l
cworSW5jbHVkZXMgQXJpYWwKK0luY2x1ZGVzIFRpbWVzCitNaXNzaW5nIERlamFWdSBTYW5zCitN
aXNzaW5nIExpYmVyYXRpb24gU2VyaWYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L2dldC1zeXN0ZW0tZm9udHMuaHRtbAppbmRleCA4M2VmMjc0YzU4YWNjNzA1YWNiZmNlZTI2ZjYz
OGY4NzA2ODYyYjg0Li4yMzJmMmUwNDhiOWZkMWFkMTBlMWFiMjBjZjIzOWY3M2VjYThhZWNlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbApA
QCAtMywxMCArMywxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotLy8gVGVzdGluZyB0aGF0IHdlIGNhbiBnZXQgdGhlIGZvbnRzIG9uIHRo
ZSBzeXN0ZW0gYW5kIHRoYXQgdGhlIGZvbnRzIGNvbnRhaW4gc29tZSB1bml2ZXJzYWwgZm9udHMg
KGFyaWFsLCB0aW1lcywgZXRjKS4KKy8vIFRlc3RpbmcgdGhhdCB3ZSBjYW4gZ2V0IHRoZSBmb250
cyBvbiB0aGUgc3lzdGVtLi4uCiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGZ1bmN0aW9uIGhhc0Zv
bnRGYW1pbHkoZm9udEZhbWlsaWVzLCBmb250RmFtaWx5KSB7Ci0gICAgICAgIHJldHVybiAoZm9u
dEZhbWlsaWVzLmluY2x1ZGVzKGZvbnRGYW1pbHkpID8gIlBBU1M6IEluY2x1ZGVzICIgOiAiRkFJ
TDogTWlzc2luZyAiKSArIGZvbnRGYW1pbHk7CisgICAgICAgIHJldHVybiAoZm9udEZhbWlsaWVz
LmluY2x1ZGVzKGZvbnRGYW1pbHkpID8gIkluY2x1ZGVzICIgOiAiTWlzc2luZyAiKSArIGZvbnRG
YW1pbHk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gZm9udEZhbWlseU5hbWVzQ2FsbGJhY2soZXJy
b3IsIGZvbnRGYW1pbHlOYW1lcykgewpAQCAtMTQsOCArMTQsMTIgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKIAogICAgICAgICBpZiAoIWVycm9yKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiSGFzIGF0IGxlYXN0IDUgZm9udHM6ICIgKyAoZm9udEZhbWlseU5hbWVzLmxlbmd0aCA+PSA1
KSk7CisgICAgICAgICAgICAvLyBXZSBjYW4ndCBjb3VudCBvbiBhbnkgZm9udCBleGlzdGluZyBv
biBldmVyeSBwbGF0Zm9ybS4gU28gd2UgbGlzdCBlbm91Z2ggZm9udHMgaGVyZQorICAgICAgICAg
ICAgLy8gc3VjaCB0aGF0IGF0IGxlYXN0IG9uZSB3aWxsIGV4aXN0LiBVcGRhdGUgeW91ciBwb3J0
J3MgdGVzdCBleHBlY3RhdGlvbnMgYXMgbmVlZGVkLgogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coaGFzRm9udEZhbWlseShmb250RmFtaWx5TmFtZXMsICJBcmlhbCIpKTsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKGhhc0ZvbnRGYW1pbHkoZm9udEZhbWlseU5hbWVzLCAiVGlt
ZXMiKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhoYXNGb250RmFtaWx5KGZvbnRG
YW1pbHlOYW1lcywgIkRlamFWdSBTYW5zIikpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coaGFzRm9udEZhbWlseShmb250RmFtaWx5TmFtZXMsICJMaWJlcmF0aW9uIFNlcmlmIikpOwog
ICAgICAgICB9CiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjg2NzY0YjRkM2YxMTM4
ZTcxNDAzNTc4ODJhZTUzMWM4YmRjNzZkZi4uYzI4MDE4YTc5OTcyNTM3OGFlY2I1OTI3OWYwNjY0
YzE5ZjY5OGZjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzMTksNyArMTMxOSw2IEBAIHdlYmtpdC5vcmcvYi8xMzc2OTggbWVkaWEvdmlkZW8tY29u
dHJvbHMtZHJhZy5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xMzkzNjIgaW5zcGVj
dG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5v
cmcvYi8xMzkzNjIgaW5zcGVjdG9yL2Nzcy9zZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sIFsgVGlt
ZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xNDcwMTggaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVt
LWZvbnRzLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNDcyMjkgaW5zcGVjdG9yL2Nzcy9t
b2RpZnktcnVsZS1zZWxlY3Rvci5odG1sIFsgU2tpcCBdICMgVGltZW91dAogCiB3ZWJraXQub3Jn
L2IvMTM5MzYzIG1lZGlhL21lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLXVwZGF0ZXMuaHRtbCBbIFRp
bWVvdXQgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci9j
c3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNWI1NzQ2MjU3YjM0Mzc3ODY1ZWRjMDEzYzVmODJmZThlMWMzMWE0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1m
b250cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitIYXMgYXQgbGVhc3QgNSBmb250czog
dHJ1ZQorTWlzc2luZyBBcmlhbAorTWlzc2luZyBUaW1lcworSW5jbHVkZXMgRGVqYVZ1IFNhbnMK
K0luY2x1ZGVzIExpYmVyYXRpb24gU2VyaWYKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257725</attachid>
            <date>2015-07-28 19:55:31 -0700</date>
            <delta_ts>2015-07-29 08:37:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147018-20150728215408.patch</filename>
            <type>text/plain</type>
            <size>7851</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E5Yzg3Nzk5M2RlMDM4
NDQ1ZWEzNmFjZTMxNWU5YjcxNjU0MjhhMi4uNzQ3MjdkMjcxM2YxMmUyODUzMTdhMzljNjRlNjA5
NjM2YTQ3ZWI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTI4ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbRnJlZXR5cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2ZSBhIGxpc3Qgb2Yg
c3lzdGVtIGZvbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHM7IHVuc2tpcHBlZCBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9u
dHMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0dGVyblRvRmFtaWxpZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRm9udEZhbWlsaWVzKTogSW1w
bGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJvbmdBbGlhc2VzRm9yRmFtaWx5KTogU3Bs
aXQgc29tZSBjb2RlIG9mZiB0byBwYXR0ZXJuVG9GYW1pbGllcy4KKwogMjAxNS0wNy0yOCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZGVidWcg
YnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDc2YjYzZGI1Y2Y2YWY2
NGRhMzk4ODlmN2Y4YmZmNzM4NWFkMWEzN2EuLjQ3Njk2MmRmMDRkNDUyY2MxZGMxMzNhZTM4OGFj
YjEwMWU3N2MxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTk4LDEwICs5
OCwzNiBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3Rl
cnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcgogICAgIHJldHVybiBmb250Rm9yUGxhdGZv
cm1EYXRhKGFsdGVybmF0ZUZvbnREYXRhKTsKIH0KIAorc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBh
dHRlcm5Ub0ZhbWlsaWVzKGNvbnN0IEZjUGF0dGVybiYgcGF0dGVybikKK3sKKyAgICBjaGFyKiBw
YXR0ZXJuQ2hhcnMgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihGY1BhdHRlcm5Gb3JtYXQoCisg
ICAgICAgIGNvbnN0X2Nhc3Q8RmNQYXR0ZXJuKj4oJnBhdHRlcm4pLAorICAgICAgICByZWludGVy
cHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPigiJXtmYW1pbHl9IikpKTsKKyAgICBTdHJpbmcgcGF0
dGVyblN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgocGF0dGVybkNoYXJzKTsKKyAgICBmcmVlKHBh
dHRlcm5DaGFycyk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHRzOworICAgIHBhdHRlcm5T
dHJpbmcuc3BsaXQoJywnLCByZXN1bHRzKTsKKyAgICByZXR1cm4gcmVzdWx0czsKK30KKwogVmVj
dG9yPFN0cmluZz4gRm9udENhY2hlOjpzeXN0ZW1Gb250RmFtaWxpZXMoKQogewotICAgIC8vIEZJ
WE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQ3MDE4PiBXZWIgSW5zcGVjdG9yOiBbRnJlZXR5
cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2ZSBhIGxpc3Qgb2Ygc3lzdGVtIGZvbnRzCisg
ICAgUmVmUHRyPEZjUGF0dGVybj4gc2NhbGFibGVzT25seVBhdHRlcm4gPSBhZG9wdFJlZihGY1Bh
dHRlcm5DcmVhdGUoKSk7CisgICAgRmNQYXR0ZXJuQWRkQm9vbChzY2FsYWJsZXNPbmx5UGF0dGVy
bi5nZXQoKSwgRkNfU0NBTEFCTEUsIEZjVHJ1ZSk7CisKKyAgICBGY1VuaXF1ZVB0cjxGY09iamVj
dFNldD4gZmFtaWxpZXNPbmx5KEZjT2JqZWN0U2V0QnVpbGQoRkNfRkFNSUxZLCBudWxscHRyKSk7
CisgICAgRmNVbmlxdWVQdHI8RmNGb250U2V0PiBmb250U2V0KEZjRm9udExpc3QobnVsbHB0ciwg
c2NhbGFibGVzT25seVBhdHRlcm4uZ2V0KCksIGZhbWlsaWVzT25seS5nZXQoKSkpOworCiAgICAg
VmVjdG9yPFN0cmluZz4gZm9udEZhbWlsaWVzOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9u
dFNldC0+bmZvbnQ7IGkrKykgeworICAgICAgICBGY1BhdHRlcm4qIHBhdHRlcm4gPSBmb250U2V0
LT5mb250c1tpXTsKKyAgICAgICAgRmNDaGFyOCogZmFtaWx5ID0gbnVsbHB0cjsKKyAgICAgICAg
RmNQYXR0ZXJuR2V0U3RyaW5nKHBhdHRlcm4sIEZDX0ZBTUlMWSwgMCwgJmZhbWlseSk7CisgICAg
ICAgIGlmIChmYW1pbHkpCisgICAgICAgICAgICBmb250RmFtaWxpZXMuYXBwZW5kVmVjdG9yKHBh
dHRlcm5Ub0ZhbWlsaWVzKCpwYXR0ZXJuKSk7CisgICAgfQorCiAgICAgcmV0dXJuIGZvbnRGYW1p
bGllczsKIH0KIApAQCAtMjc3LDE2ICszMDMsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gc3Ry
b25nQWxpYXNlc0ZvckZhbWlseShjb25zdCBTdHJpbmcmIGZhbWlseSkKICAgICAgICAgfQogICAg
IH0KIAotICAgIC8vIFRha2UgdGhlIHJlc3VsdGluZyBwYXR0ZXJuIGFuZCByZW1vdmUgZXZlcnl0
aGluZyBidXQgdGhlIGZhbWlsaWVzLgotICAgIG1pbmltYWwgPSBhZG9wdFJlZihGY1BhdHRlcm5G
aWx0ZXIocGF0dGVybi5nZXQoKSwgZmFtaWxpZXNPbmx5LmdldCgpKSk7Ci0gICAgLy8gQ29udmVy
dCB0aGUgcGF0dGVybiB0byBhIHN0cmluZywgYW5kIGN1dCBvdXQgdGhlIG5vbi1mYW1pbHkganVu
ayB0aGF0IGdldHMgYWRkZWQgdG8gdGhlIGVuZC4KLSAgICBjaGFyKiBwYXR0ZXJuQ2hhcnMgPSBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihGY1BhdHRlcm5Gb3JtYXQocGF0dGVybi5nZXQoKSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oIiV7ZmFtaWx5fSIpKSk7Ci0gICAgU3RyaW5n
IHBhdHRlcm5TdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KHBhdHRlcm5DaGFycyk7Ci0gICAgZnJl
ZShwYXR0ZXJuQ2hhcnMpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0czsKLSAgICBwYXR0
ZXJuU3RyaW5nLnNwbGl0KCcsJywgcmVzdWx0cyk7Ci0gICAgcmV0dXJuIHJlc3VsdHM7CisgICAg
cmV0dXJuIHBhdHRlcm5Ub0ZhbWlsaWVzKCpwYXR0ZXJuKTsKIH0KIAogc3RhdGljIGJvb2wgYXJl
U3Ryb25nbHlBbGlhc2VkKGNvbnN0IFN0cmluZyYgZmFtaWx5QSwgY29uc3QgU3RyaW5nJiBmYW1p
bHlCKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDJhM2Q0MzhiMjQ1Yzg1YzRjNDdmNTU5MDNhZDY5NjhlNDMyYmVjZTMuLmZk
ZDU0MzU2ZWNiNGM0OWEyNDNkMjY2MDUzZTI0ZWFiNTliYWI4MDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNS0wNy0yOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0ZyZWV0eXBlXSBBbGxvdyBpbnNwZWN0b3Ig
dG8gcmV0cmlldmUgYSBsaXN0IG9mIHN5c3RlbSBmb250cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9u
dHMtZXhwZWN0ZWQudHh0OiBFeHBlY3Qgc29tZSBmcmVlIGZvbnRzIHRvIGJlIG1pc3NpbmcuLi4u
CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLmh0bWw6IENoZWNrIGZv
ciBzb21lIGZyZWUgZm9udHMuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnM6IFVuc2tpcCB0aGUgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL2Nz
cy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTUtMDctMjggIEJl
bmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlZWQgdXAg
dGhlIFN0cmluZ2lmaWVyOjp0b0pTT04oKSBmYXN0IGNhc2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0CmluZGV4IDJl
MzE2MWJlMGFhMTA0MDYxNjM0YmIwOWE4NDA0NmUzNjZiYjc3NmMuLjZjNGFhNzM5MGRmNmVkOTI1
ZGY2NThjZGMyYzNjZDRlNzdhMzZiNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDYgQEAK
IEhhcyBhdCBsZWFzdCA1IGZvbnRzOiB0cnVlCi1QQVNTOiBJbmNsdWRlcyBBcmlhbAotUEFTUzog
SW5jbHVkZXMgVGltZXMKK0luY2x1ZGVzIEFyaWFsCitJbmNsdWRlcyBUaW1lcworTWlzc2luZyBE
ZWphVnUgU2FucworTWlzc2luZyBMaWJlcmF0aW9uIFNlcmlmCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLmh0bWwKaW5kZXggODNlZjI3NGM1OGFjYzcw
NWFjYmZjZWUyNmY2MzhmODcwNjg2MmI4NC4uMjMyZjJlMDQ4YjlmZDFhZDEwZTFhYjIwY2YyMzlm
NzNlY2E4YWVjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lz
dGVtLWZvbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVt
LWZvbnRzLmh0bWwKQEAgLTMsMTAgKzMsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLS8vIFRlc3RpbmcgdGhhdCB3ZSBjYW4gZ2V0IHRo
ZSBmb250cyBvbiB0aGUgc3lzdGVtIGFuZCB0aGF0IHRoZSBmb250cyBjb250YWluIHNvbWUgdW5p
dmVyc2FsIGZvbnRzIChhcmlhbCwgdGltZXMsIGV0YykuCisvLyBUZXN0aW5nIHRoYXQgd2UgY2Fu
IGdldCB0aGUgZm9udHMgb24gdGhlIHN5c3RlbS4uLgogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBm
dW5jdGlvbiBoYXNGb250RmFtaWx5KGZvbnRGYW1pbGllcywgZm9udEZhbWlseSkgewotICAgICAg
ICByZXR1cm4gKGZvbnRGYW1pbGllcy5pbmNsdWRlcyhmb250RmFtaWx5KSA/ICJQQVNTOiBJbmNs
dWRlcyAiIDogIkZBSUw6IE1pc3NpbmcgIikgKyBmb250RmFtaWx5OworICAgICAgICByZXR1cm4g
KGZvbnRGYW1pbGllcy5pbmNsdWRlcyhmb250RmFtaWx5KSA/ICJJbmNsdWRlcyAiIDogIk1pc3Np
bmcgIikgKyBmb250RmFtaWx5OwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGZvbnRGYW1pbHlOYW1l
c0NhbGxiYWNrKGVycm9yLCBmb250RmFtaWx5TmFtZXMpIHsKQEAgLTE0LDggKzE0LDEyIEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAKICAgICAgICAgaWYgKCFlcnJvcikgewogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkhhcyBhdCBsZWFzdCA1IGZvbnRzOiAiICsgKGZvbnRGYW1pbHlOYW1l
cy5sZW5ndGggPj0gNSkpOworICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY291bnQgb24gYW55IGZv
bnQgZXhpc3Rpbmcgb24gZXZlcnkgcGxhdGZvcm0uIFNvIHdlIGxpc3QgZW5vdWdoIGZvbnRzIGhl
cmUKKyAgICAgICAgICAgIC8vIHN1Y2ggdGhhdCBhdCBsZWFzdCBvbmUgd2lsbCBleGlzdC4gVXBk
YXRlIHlvdXIgcG9ydCdzIHRlc3QgZXhwZWN0YXRpb25zIGFzIG5lZWRlZC4KICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKGhhc0ZvbnRGYW1pbHkoZm9udEZhbWlseU5hbWVzLCAiQXJpYWwi
KSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhoYXNGb250RmFtaWx5KGZvbnRGYW1p
bHlOYW1lcywgIlRpbWVzIikpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coaGFzRm9u
dEZhbWlseShmb250RmFtaWx5TmFtZXMsICJEZWphVnUgU2FucyIpKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKGhhc0ZvbnRGYW1pbHkoZm9udEZhbWlseU5hbWVzLCAiTGliZXJhdGlv
biBTZXJpZiIpKTsKICAgICAgICAgfQogCiAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDI4
Njc2NGI0ZDNmMTEzOGU3MTQwMzU3ODgyYWU1MzFjOGJkYzc2ZGYuLmMyODAxOGE3OTk3MjUzNzhh
ZWNiNTkyNzlmMDY2NGMxOWY2OThmY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMzE5LDcgKzEzMTksNiBAQCB3ZWJraXQub3JnL2IvMTM3Njk4IG1l
ZGlhL3ZpZGVvLWNvbnRyb2xzLWRyYWcuaHRtbCBbIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2Iv
MTM5MzYyIGluc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy5odG1sIFsgVGltZW91
dCBdCiB3ZWJraXQub3JnL2IvMTM5MzYyIGluc3BlY3Rvci9jc3Mvc2VsZWN0b3Itc3BlY2lmaWNp
dHkuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTQ3MDE4IGluc3BlY3Rvci9j
c3MvZ2V0LXN5c3RlbS1mb250cy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ3MjI5IGlu
c3BlY3Rvci9jc3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQK
IAogd2Via2l0Lm9yZy9iLzEzOTM2MyBtZWRpYS9tZWRpYS1jb250cm9scy10aW1lbGluZS11cGRh
dGVzLmh0bWwgWyBUaW1lb3V0IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDViNTc0NjI1N2IzNDM3Nzg2NWVkYzAxM2M1ZjgyZmU4ZTFjMzFhNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbnNwZWN0b3IvY3Nz
L2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorSGFzIGF0IGxl
YXN0IDUgZm9udHM6IHRydWUKK01pc3NpbmcgQXJpYWwKK01pc3NpbmcgVGltZXMKK0luY2x1ZGVz
IERlamFWdSBTYW5zCitJbmNsdWRlcyBMaWJlcmF0aW9uIFNlcmlmCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257748</attachid>
            <date>2015-07-29 08:37:40 -0700</date>
            <delta_ts>2015-07-29 18:49:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147018-20150729103617.patch</filename>
            <type>text/plain</type>
            <size>7871</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTEyNmUyMDhiZDAyNzQ4
OWI4MDMzMWU1YjU1MzE3OTNmZWEwZDViZi4uZmZjNjViN2M3YWU0ZTY1NDU4YjhjYWExM2NmNTli
MTBlNjY5ZDRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACisyMDE1LTA3LTI5ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbRnJlZXR5cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2ZSBhIGxpc3Qgb2Yg
c3lzdGVtIGZvbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHM7IHVuc2tpcHBlZCBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9u
dHMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0dGVyblRvRmFtaWxpZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRm9udEZhbWlsaWVzKTogSW1w
bGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJvbmdBbGlhc2VzRm9yRmFtaWx5KTogU3Bs
aXQgc29tZSBjb2RlIG9mZiB0byBwYXR0ZXJuVG9GYW1pbGllcy4KKwogMjAxNS0wNy0yOSAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2xlYW4g
dXAgUmVmUHRyQ2Fpcm8uY3BwCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDczODQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDc2
YjYzZGI1Y2Y2YWY2NGRhMzk4ODlmN2Y4YmZmNzM4NWFkMWEzN2EuLjdiNjAzOTgzNzRkNDk4Mjdj
OTZlNjVjZjQwNzEwMzMzMDI3MTkyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAK
QEAgLTk4LDEwICs5OCwzNCBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFj
a0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcgogICAgIHJldHVybiBm
b250Rm9yUGxhdGZvcm1EYXRhKGFsdGVybmF0ZUZvbnREYXRhKTsKIH0KIAorc3RhdGljIFZlY3Rv
cjxTdHJpbmc+IHBhdHRlcm5Ub0ZhbWlsaWVzKEZjUGF0dGVybiYgcGF0dGVybikKK3sKKyAgICBj
aGFyKiBwYXR0ZXJuQ2hhcnMgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihGY1BhdHRlcm5Gb3Jt
YXQoJnBhdHRlcm4sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KCIle2ZhbWlseX0i
KSkpOworICAgIFN0cmluZyBwYXR0ZXJuU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChwYXR0ZXJu
Q2hhcnMpOworICAgIGZyZWUocGF0dGVybkNoYXJzKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHJl
c3VsdHM7CisgICAgcGF0dGVyblN0cmluZy5zcGxpdCgnLCcsIHJlc3VsdHMpOworICAgIHJldHVy
biByZXN1bHRzOworfQorCiBWZWN0b3I8U3RyaW5nPiBGb250Q2FjaGU6OnN5c3RlbUZvbnRGYW1p
bGllcygpCiB7Ci0gICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDcwMTg+IFdl
YiBJbnNwZWN0b3I6IFtGcmVldHlwZV0gQWxsb3cgaW5zcGVjdG9yIHRvIHJldHJpZXZlIGEgbGlz
dCBvZiBzeXN0ZW0gZm9udHMKKyAgICBSZWZQdHI8RmNQYXR0ZXJuPiBzY2FsYWJsZXNPbmx5UGF0
dGVybiA9IGFkb3B0UmVmKEZjUGF0dGVybkNyZWF0ZSgpKTsKKyAgICBGY1BhdHRlcm5BZGRCb29s
KHNjYWxhYmxlc09ubHlQYXR0ZXJuLmdldCgpLCBGQ19TQ0FMQUJMRSwgRmNUcnVlKTsKKworICAg
IEZjVW5pcXVlUHRyPEZjT2JqZWN0U2V0PiBmYW1pbGllc09ubHkoRmNPYmplY3RTZXRCdWlsZChG
Q19GQU1JTFksIG51bGxwdHIpKTsKKyAgICBGY1VuaXF1ZVB0cjxGY0ZvbnRTZXQ+IGZvbnRTZXQo
RmNGb250TGlzdChudWxscHRyLCBzY2FsYWJsZXNPbmx5UGF0dGVybi5nZXQoKSwgZmFtaWxpZXNP
bmx5LmdldCgpKSk7CisKICAgICBWZWN0b3I8U3RyaW5nPiBmb250RmFtaWxpZXM7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBmb250U2V0LT5uZm9udDsgaSsrKSB7CisgICAgICAgIEZjUGF0dGVy
biogcGF0dGVybiA9IGZvbnRTZXQtPmZvbnRzW2ldOworICAgICAgICBGY0NoYXI4KiBmYW1pbHkg
PSBudWxscHRyOworICAgICAgICBGY1BhdHRlcm5HZXRTdHJpbmcocGF0dGVybiwgRkNfRkFNSUxZ
LCAwLCAmZmFtaWx5KTsKKyAgICAgICAgaWYgKGZhbWlseSkKKyAgICAgICAgICAgIGZvbnRGYW1p
bGllcy5hcHBlbmRWZWN0b3IocGF0dGVyblRvRmFtaWxpZXMoKnBhdHRlcm4pKTsKKyAgICB9CisK
ICAgICByZXR1cm4gZm9udEZhbWlsaWVzOwogfQogCkBAIC0yNzcsMTYgKzMwMSw3IEBAIHN0YXRp
YyBWZWN0b3I8U3RyaW5nPiBzdHJvbmdBbGlhc2VzRm9yRmFtaWx5KGNvbnN0IFN0cmluZyYgZmFt
aWx5KQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gVGFrZSB0aGUgcmVzdWx0aW5nIHBhdHRl
cm4gYW5kIHJlbW92ZSBldmVyeXRoaW5nIGJ1dCB0aGUgZmFtaWxpZXMuCi0gICAgbWluaW1hbCA9
IGFkb3B0UmVmKEZjUGF0dGVybkZpbHRlcihwYXR0ZXJuLmdldCgpLCBmYW1pbGllc09ubHkuZ2V0
KCkpKTsKLSAgICAvLyBDb252ZXJ0IHRoZSBwYXR0ZXJuIHRvIGEgc3RyaW5nLCBhbmQgY3V0IG91
dCB0aGUgbm9uLWZhbWlseSBqdW5rIHRoYXQgZ2V0cyBhZGRlZCB0byB0aGUgZW5kLgotICAgIGNo
YXIqIHBhdHRlcm5DaGFycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KEZjUGF0dGVybkZvcm1h
dChwYXR0ZXJuLmdldCgpLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPigiJXtmYW1p
bHl9IikpKTsKLSAgICBTdHJpbmcgcGF0dGVyblN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgocGF0
dGVybkNoYXJzKTsKLSAgICBmcmVlKHBhdHRlcm5DaGFycyk7Ci0KLSAgICBWZWN0b3I8U3RyaW5n
PiByZXN1bHRzOwotICAgIHBhdHRlcm5TdHJpbmcuc3BsaXQoJywnLCByZXN1bHRzKTsKLSAgICBy
ZXR1cm4gcmVzdWx0czsKKyAgICByZXR1cm4gcGF0dGVyblRvRmFtaWxpZXMoKnBhdHRlcm4pOwog
fQogCiBzdGF0aWMgYm9vbCBhcmVTdHJvbmdseUFsaWFzZWQoY29uc3QgU3RyaW5nJiBmYW1pbHlB
LCBjb25zdCBTdHJpbmcmIGZhbWlseUIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmEzZDQzOGIyNDVjODVjNGM0N2Y1NTkw
M2FkNjk2OGU0MzJiZWNlMy4uNGViODMxZjhkMzkyZmIxZTdkOGM2MjJlMDQwMzE1NWVlOTJmNDIx
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA3LTI5ICBNaWNoYWVsIENhdGFuemFybyAg
PG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRnJlZXR5
cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2ZSBhIGxpc3Qgb2Ygc3lzdGVtIGZvbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rv
ci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQ6IEV4cGVjdCBzb21lIGZyZWUgZm9u
dHMgdG8gYmUgbWlzc2luZy4uLi4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0t
Zm9udHMuaHRtbDogQ2hlY2sgZm9yIHNvbWUgZnJlZSBmb250cy4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczogVW5za2lwIHRoZSB0ZXN0LgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKwogMjAxNS0wNy0yOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
IAogICAgICAgICBTcGVlZCB1cCB0aGUgU3RyaW5naWZpZXI6OnRvSlNPTigpIGZhc3QgY2FzZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1l
eHBlY3RlZC50eHQKaW5kZXggMmUzMTYxYmUwYWExMDQwNjE2MzRiYjA5YTg0MDQ2ZTM2NmJiNzc2
Yy4uNmM0YWE3MzkwZGY2ZWQ5MjVkZjY1OGNkYzJjM2NkNGU3N2EzNmI0OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNiBAQAogSGFzIGF0IGxlYXN0IDUgZm9udHM6IHRydWUKLVBBU1M6IElu
Y2x1ZGVzIEFyaWFsCi1QQVNTOiBJbmNsdWRlcyBUaW1lcworSW5jbHVkZXMgQXJpYWwKK0luY2x1
ZGVzIFRpbWVzCitNaXNzaW5nIERlamFWdSBTYW5zCitNaXNzaW5nIExpYmVyYXRpb24gU2VyaWYK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbApp
bmRleCA4M2VmMjc0YzU4YWNjNzA1YWNiZmNlZTI2ZjYzOGY4NzA2ODYyYjg0Li4yMzJmMmUwNDhi
OWZkMWFkMTBlMWFiMjBjZjIzOWY3M2VjYThhZWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbApAQCAtMywxMCArMywxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotLy8gVGVzdGlu
ZyB0aGF0IHdlIGNhbiBnZXQgdGhlIGZvbnRzIG9uIHRoZSBzeXN0ZW0gYW5kIHRoYXQgdGhlIGZv
bnRzIGNvbnRhaW4gc29tZSB1bml2ZXJzYWwgZm9udHMgKGFyaWFsLCB0aW1lcywgZXRjKS4KKy8v
IFRlc3RpbmcgdGhhdCB3ZSBjYW4gZ2V0IHRoZSBmb250cyBvbiB0aGUgc3lzdGVtLi4uCiBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIGZ1bmN0aW9uIGhhc0ZvbnRGYW1pbHkoZm9udEZhbWlsaWVzLCBm
b250RmFtaWx5KSB7Ci0gICAgICAgIHJldHVybiAoZm9udEZhbWlsaWVzLmluY2x1ZGVzKGZvbnRG
YW1pbHkpID8gIlBBU1M6IEluY2x1ZGVzICIgOiAiRkFJTDogTWlzc2luZyAiKSArIGZvbnRGYW1p
bHk7CisgICAgICAgIHJldHVybiAoZm9udEZhbWlsaWVzLmluY2x1ZGVzKGZvbnRGYW1pbHkpID8g
IkluY2x1ZGVzICIgOiAiTWlzc2luZyAiKSArIGZvbnRGYW1pbHk7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gZm9udEZhbWlseU5hbWVzQ2FsbGJhY2soZXJyb3IsIGZvbnRGYW1pbHlOYW1lcykgewpA
QCAtMTQsOCArMTQsMTIgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIAogICAgICAgICBpZiAoIWVycm9y
KSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGFzIGF0IGxlYXN0IDUgZm9udHM6
ICIgKyAoZm9udEZhbWlseU5hbWVzLmxlbmd0aCA+PSA1KSk7CisgICAgICAgICAgICAvLyBXZSBj
YW4ndCBjb3VudCBvbiBhbnkgZm9udCBleGlzdGluZyBvbiBldmVyeSBwbGF0Zm9ybS4gU28gd2Ug
bGlzdCBlbm91Z2ggZm9udHMgaGVyZQorICAgICAgICAgICAgLy8gc3VjaCB0aGF0IGF0IGxlYXN0
IG9uZSB3aWxsIGV4aXN0LiBVcGRhdGUgeW91ciBwb3J0J3MgdGVzdCBleHBlY3RhdGlvbnMgYXMg
bmVlZGVkLgogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coaGFzRm9udEZhbWlseShmb250
RmFtaWx5TmFtZXMsICJBcmlhbCIpKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGhh
c0ZvbnRGYW1pbHkoZm9udEZhbWlseU5hbWVzLCAiVGltZXMiKSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZyhoYXNGb250RmFtaWx5KGZvbnRGYW1pbHlOYW1lcywgIkRlamFWdSBTYW5z
IikpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coaGFzRm9udEZhbWlseShmb250RmFt
aWx5TmFtZXMsICJMaWJlcmF0aW9uIFNlcmlmIikpOwogICAgICAgICB9CiAKICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMjg2NzY0YjRkM2YxMTM4ZTcxNDAzNTc4ODJhZTUzMWM4YmRjNzZk
Zi4uYzI4MDE4YTc5OTcyNTM3OGFlY2I1OTI3OWYwNjY0YzE5ZjY5OGZjYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzMTksNyArMTMxOSw2IEBAIHdl
YmtpdC5vcmcvYi8xMzc2OTggbWVkaWEvdmlkZW8tY29udHJvbHMtZHJhZy5odG1sIFsgVGltZW91
dCBdCiAKIHdlYmtpdC5vcmcvYi8xMzkzNjIgaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1t
YXRjaGVzLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xMzkzNjIgaW5zcGVjdG9yL2Nz
cy9zZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xNDcwMTggaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8xNDcyMjkgaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci5odG1s
IFsgU2tpcCBdICMgVGltZW91dAogCiB3ZWJraXQub3JnL2IvMTM5MzYzIG1lZGlhL21lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLXVwZGF0ZXMuaHRtbCBbIFRpbWVvdXQgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL2Nzcy9nZXQtc3lz
dGVtLWZvbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWI1NzQ2MjU3YjM0Mzc3ODY1ZWRj
MDEzYzVmODJmZThlMWMzMWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2IEBACitIYXMgYXQgbGVhc3QgNSBmb250czogdHJ1ZQorTWlzc2luZyBBcmlhbAorTWlz
c2luZyBUaW1lcworSW5jbHVkZXMgRGVqYVZ1IFNhbnMKK0luY2x1ZGVzIExpYmVyYXRpb24gU2Vy
aWYKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257798</attachid>
            <date>2015-07-29 18:49:56 -0700</date>
            <delta_ts>2015-07-30 07:51:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147018-20150729204832.patch</filename>
            <type>text/plain</type>
            <size>8435</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAwYTVlYTM0MmE4YmQy
NDBhZGMyMjIzOGQzNjI3OWJkMjdhMmU5Yi4uN2RmMTVlNTY4OWY2MDIxYzA0YWNkYTY4ZWYyNWNl
NDBlMzI4NWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTI5ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbRnJlZXR5cGVdIEFsbG93IGluc3BlY3RvciB0byByZXRyaWV2ZSBhIGxpc3Qgb2Yg
c3lzdGVtIGZvbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHM7IHVuc2tpcHBlZCBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9u
dHMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGF0dGVyblRvRmFtaWxpZXMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lzdGVtRm9udEZhbWlsaWVzKTogSW1w
bGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJvbmdBbGlhc2VzRm9yRmFtaWx5KTogU3Bs
aXQgc29tZSBjb2RlIG9mZiB0byBwYXR0ZXJuVG9GYW1pbGllcy4KKwogMjAxNS0wNy0yOSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBG
b250RGVzY3JpcHRpb25Gb250RGF0YUNhY2hlS2V5IHRvIEZvbnREZXNjcmlwdGlvbktleQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENh
Y2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDc2YjYzZGI1Y2Y2YWY2NGRhMzk4ODlmN2Y4
YmZmNzM4NWFkMWEzN2EuLjdiNjAzOTgzNzRkNDk4MjdjOTZlNjVjZjQwNzEwMzMzMDI3MTkyNzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0Zv
bnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTk4LDEwICs5OCwzNCBAQCBSZWZQ
dHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBkZXNjcgogICAgIHJldHVybiBmb250Rm9yUGxhdGZvcm1EYXRhKGFsdGVy
bmF0ZUZvbnREYXRhKTsKIH0KIAorc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhdHRlcm5Ub0ZhbWls
aWVzKEZjUGF0dGVybiYgcGF0dGVybikKK3sKKyAgICBjaGFyKiBwYXR0ZXJuQ2hhcnMgPSByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihGY1BhdHRlcm5Gb3JtYXQoJnBhdHRlcm4sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KCIle2ZhbWlseX0iKSkpOworICAgIFN0cmluZyBwYXR0ZXJu
U3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChwYXR0ZXJuQ2hhcnMpOworICAgIGZyZWUocGF0dGVy
bkNoYXJzKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdHM7CisgICAgcGF0dGVyblN0cmlu
Zy5zcGxpdCgnLCcsIHJlc3VsdHMpOworICAgIHJldHVybiByZXN1bHRzOworfQorCiBWZWN0b3I8
U3RyaW5nPiBGb250Q2FjaGU6OnN5c3RlbUZvbnRGYW1pbGllcygpCiB7Ci0gICAgLy8gRklYTUU6
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNDcwMTg+IFdlYiBJbnNwZWN0b3I6IFtGcmVldHlwZV0g
QWxsb3cgaW5zcGVjdG9yIHRvIHJldHJpZXZlIGEgbGlzdCBvZiBzeXN0ZW0gZm9udHMKKyAgICBS
ZWZQdHI8RmNQYXR0ZXJuPiBzY2FsYWJsZXNPbmx5UGF0dGVybiA9IGFkb3B0UmVmKEZjUGF0dGVy
bkNyZWF0ZSgpKTsKKyAgICBGY1BhdHRlcm5BZGRCb29sKHNjYWxhYmxlc09ubHlQYXR0ZXJuLmdl
dCgpLCBGQ19TQ0FMQUJMRSwgRmNUcnVlKTsKKworICAgIEZjVW5pcXVlUHRyPEZjT2JqZWN0U2V0
PiBmYW1pbGllc09ubHkoRmNPYmplY3RTZXRCdWlsZChGQ19GQU1JTFksIG51bGxwdHIpKTsKKyAg
ICBGY1VuaXF1ZVB0cjxGY0ZvbnRTZXQ+IGZvbnRTZXQoRmNGb250TGlzdChudWxscHRyLCBzY2Fs
YWJsZXNPbmx5UGF0dGVybi5nZXQoKSwgZmFtaWxpZXNPbmx5LmdldCgpKSk7CisKICAgICBWZWN0
b3I8U3RyaW5nPiBmb250RmFtaWxpZXM7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmb250U2V0
LT5uZm9udDsgaSsrKSB7CisgICAgICAgIEZjUGF0dGVybiogcGF0dGVybiA9IGZvbnRTZXQtPmZv
bnRzW2ldOworICAgICAgICBGY0NoYXI4KiBmYW1pbHkgPSBudWxscHRyOworICAgICAgICBGY1Bh
dHRlcm5HZXRTdHJpbmcocGF0dGVybiwgRkNfRkFNSUxZLCAwLCAmZmFtaWx5KTsKKyAgICAgICAg
aWYgKGZhbWlseSkKKyAgICAgICAgICAgIGZvbnRGYW1pbGllcy5hcHBlbmRWZWN0b3IocGF0dGVy
blRvRmFtaWxpZXMoKnBhdHRlcm4pKTsKKyAgICB9CisKICAgICByZXR1cm4gZm9udEZhbWlsaWVz
OwogfQogCkBAIC0yNzcsMTYgKzMwMSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBzdHJvbmdB
bGlhc2VzRm9yRmFtaWx5KGNvbnN0IFN0cmluZyYgZmFtaWx5KQogICAgICAgICB9CiAgICAgfQog
Ci0gICAgLy8gVGFrZSB0aGUgcmVzdWx0aW5nIHBhdHRlcm4gYW5kIHJlbW92ZSBldmVyeXRoaW5n
IGJ1dCB0aGUgZmFtaWxpZXMuCi0gICAgbWluaW1hbCA9IGFkb3B0UmVmKEZjUGF0dGVybkZpbHRl
cihwYXR0ZXJuLmdldCgpLCBmYW1pbGllc09ubHkuZ2V0KCkpKTsKLSAgICAvLyBDb252ZXJ0IHRo
ZSBwYXR0ZXJuIHRvIGEgc3RyaW5nLCBhbmQgY3V0IG91dCB0aGUgbm9uLWZhbWlseSBqdW5rIHRo
YXQgZ2V0cyBhZGRlZCB0byB0aGUgZW5kLgotICAgIGNoYXIqIHBhdHRlcm5DaGFycyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KEZjUGF0dGVybkZvcm1hdChwYXR0ZXJuLmdldCgpLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPigiJXtmYW1pbHl9IikpKTsKLSAgICBTdHJpbmcgcGF0
dGVyblN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgocGF0dGVybkNoYXJzKTsKLSAgICBmcmVlKHBh
dHRlcm5DaGFycyk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHRzOwotICAgIHBhdHRlcm5T
dHJpbmcuc3BsaXQoJywnLCByZXN1bHRzKTsKLSAgICByZXR1cm4gcmVzdWx0czsKKyAgICByZXR1
cm4gcGF0dGVyblRvRmFtaWxpZXMoKnBhdHRlcm4pOwogfQogCiBzdGF0aWMgYm9vbCBhcmVTdHJv
bmdseUFsaWFzZWQoY29uc3QgU3RyaW5nJiBmYW1pbHlBLCBjb25zdCBTdHJpbmcmIGZhbWlseUIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNjcxZDU2OGJhZGY2MzgyMDIzNTM3M2UxNDBjMmJjZWE0NzkzOWNhZS4uMzQ2YWVj
ODczMjZiMmVkNjQwZmY2MTdjOGY2YzM0NDgyYTk4ZTZlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE1LTA3LTI5ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRnJlZXR5cGVdIEFsbG93IGluc3BlY3RvciB0byBy
ZXRyaWV2ZSBhIGxpc3Qgb2Ygc3lzdGVtIGZvbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1l
eHBlY3RlZC50eHQ6IEV4cGVjdCBzb21lIGZyZWUgZm9udHMgdG8gYmUgbWlzc2luZy4uLi4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbDogQ2hlY2sgZm9yIHNv
bWUgZnJlZSBmb250cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczog
VW5za2lwIHRoZSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9pbnNwZWN0b3IvY3NzL2dl
dC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxNS0wNy0yOSAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0aGUgc3Bhbm5lciBw
bGFjZWhvbGRlciBmcm9tIG1fc3Bhbm5lck1hcCB3aGVuIHRoZSBwbGFjZWhvbGRlciBvYmplY3QK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDJlMzE2MWJlMGFhMTA0MDYxNjM0YmIwOWE4NDA0NmUzNjZiYjc3
NmMuLjI1Mzk3NTI0NDdhNGY2YWRjZTc2YmQ1NzNjMGU0NmJlYjAzMjE2MGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0LXN5c3RlbS1mb250cy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDcgQEAKLUhhcyBhdCBsZWFzdCA1IGZvbnRzOiB0cnVlCi1QQVNTOiBJ
bmNsdWRlcyBBcmlhbAotUEFTUzogSW5jbHVkZXMgVGltZXMKK1RoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgdGhlIGluc3BlY3RvciBjYW4gZW51bWVyYXRlIHN5c3RlbSBmb250IGZhbWlsaWVzLCBhbmQg
Y2hlY2tzIGZvciB0aGUgZXhpc3RhbmNlIG9mIGNvbW1vbiBmb250cy4KKworSW5jbHVkZXMgQXJp
YWwKK0luY2x1ZGVzIFRpbWVzCitNaXNzaW5nIERlamFWdSBTYW5zCitNaXNzaW5nIExpYmVyYXRp
b24gU2VyaWYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXQtc3lz
dGVtLWZvbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9u
dHMuaHRtbAppbmRleCA4M2VmMjc0YzU4YWNjNzA1YWNiZmNlZTI2ZjYzOGY4NzA2ODYyYjg0Li5k
YWZjYmFlYzYwZDYyNGE4ZjU5MzZiZTUzOWU5YmJlZWRhZGQyMmFiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRtbApAQCAtMywxOSArMywyMiBA
QAogPGhlYWQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgot
Ly8gVGVzdGluZyB0aGF0IHdlIGNhbiBnZXQgdGhlIGZvbnRzIG9uIHRoZSBzeXN0ZW0gYW5kIHRo
YXQgdGhlIGZvbnRzIGNvbnRhaW4gc29tZSB1bml2ZXJzYWwgZm9udHMgKGFyaWFsLCB0aW1lcywg
ZXRjKS4KIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgZnVuY3Rpb24gaGFzRm9udEZhbWlseShmb250
RmFtaWxpZXMsIGZvbnRGYW1pbHkpIHsKLSAgICAgICAgcmV0dXJuIChmb250RmFtaWxpZXMuaW5j
bHVkZXMoZm9udEZhbWlseSkgPyAiUEFTUzogSW5jbHVkZXMgIiA6ICJGQUlMOiBNaXNzaW5nICIp
ICsgZm9udEZhbWlseTsKKyAgICAgICAgcmV0dXJuIChmb250RmFtaWxpZXMuaW5jbHVkZXMoZm9u
dEZhbWlseSkgPyAiSW5jbHVkZXMgIiA6ICJNaXNzaW5nICIpICsgZm9udEZhbWlseTsKICAgICB9
CiAKICAgICBmdW5jdGlvbiBmb250RmFtaWx5TmFtZXNDYWxsYmFjayhlcnJvciwgZm9udEZhbWls
eU5hbWVzKSB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlcnJvciwgIkVycm9yIGlu
IGdldHRpbmcgZm9udCBmYW1pbHkgbmFtZXMuIik7CiAKICAgICAgICAgaWYgKCFlcnJvcikgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhhcyBhdCBsZWFzdCA1IGZvbnRzOiAiICsg
KGZvbnRGYW1pbHlOYW1lcy5sZW5ndGggPj0gNSkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoZm9udEZhbWlseU5hbWVzLmxlbmd0aCA+PSA1LCAiSGFzIGF0IGxlYXN0IDUgZm9u
dHMiKTsKKyAgICAgICAgICAgIC8vIFdlIGNhbid0IGNvdW50IG9uIGFueSBmb250IGV4aXN0aW5n
IG9uIGV2ZXJ5IHBsYXRmb3JtLCBzbyB3ZSBsaXN0IGVub3VnaCBmb250cyBoZXJlCisgICAgICAg
ICAgICAvLyBzdWNoIHRoYXQgYXQgbGVhc3Qgb25lIHdpbGwgZXhpc3QuIFVwZGF0ZSB5b3VyIHBv
cnQncyB0ZXN0IGV4cGVjdGF0aW9ucyBhcyBuZWVkZWQuCiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhoYXNGb250RmFtaWx5KGZvbnRGYW1pbHlOYW1lcywgIkFyaWFsIikpOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coaGFzRm9udEZhbWlseShmb250RmFtaWx5TmFtZXMsICJU
aW1lcyIpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGhhc0ZvbnRGYW1pbHkoZm9u
dEZhbWlseU5hbWVzLCAiRGVqYVZ1IFNhbnMiKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZyhoYXNGb250RmFtaWx5KGZvbnRGYW1pbHlOYW1lcywgIkxpYmVyYXRpb24gU2VyaWYiKSk7
CiAgICAgICAgIH0KIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpAQCAt
MjQsNSArMjcsOCBAQCBmdW5jdGlvbiB0ZXN0KCkgewogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+PC9ib2R5PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICA8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHRoZSBpbnNwZWN0b3IgY2FuIGVudW1lcmF0
ZSBzeXN0ZW0gZm9udCBmYW1pbGllcywgYW5kIGNoZWNrcyBmb3IgdGhlCisgICAgIGV4aXN0YW5j
ZSBvZiBjb21tb24gZm9udHMuPC9wPgorPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyODY3NjRiNGQzZjExMzhlNzE0MDM1Nzg4
MmFlNTMxYzhiZGM3NmRmLi5jMjgwMThhNzk5NzI1Mzc4YWVjYjU5Mjc5ZjA2NjRjMTlmNjk4ZmNh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTMxOSw3
ICsxMzE5LDYgQEAgd2Via2l0Lm9yZy9iLzEzNzY5OCBtZWRpYS92aWRlby1jb250cm9scy1kcmFn
Lmh0bWwgWyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzEzOTM2MiBpbnNwZWN0b3IvY3NzL3Bz
ZXVkby1lbGVtZW50LW1hdGNoZXMuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzEzOTM2
MiBpbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwgWyBUaW1lb3V0IFBhc3Mg
XQotd2Via2l0Lm9yZy9iLzE0NzAxOCBpbnNwZWN0b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0NzIyOSBpbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxl
LXNlbGVjdG9yLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CiAKIHdlYmtpdC5vcmcvYi8xMzkzNjMg
bWVkaWEvbWVkaWEtY29udHJvbHMtdGltZWxpbmUtdXBkYXRlcy5odG1sIFsgVGltZW91dCBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL2Nzcy9nZXQtc3lz
dGVtLWZvbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbnNwZWN0
b3IvY3NzL2dldC1zeXN0ZW0tZm9udHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2ZmM3N2Fh
ZmJmNTIzOThkMzUwNmFhMGEzMTZiMWM2MzAzZDYyZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgdGhlIGluc3Bl
Y3RvciBjYW4gZW51bWVyYXRlIHN5c3RlbSBmb250IGZhbWlsaWVzLCBhbmQgY2hlY2tzIGZvciB0
aGUgZXhpc3RhbmNlIG9mIGNvbW1vbiBmb250cy4KKworTWlzc2luZyBBcmlhbAorTWlzc2luZyBU
aW1lcworSW5jbHVkZXMgRGVqYVZ1IFNhbnMKK0luY2x1ZGVzIExpYmVyYXRpb24gU2VyaWYKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>