<?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>195573</bug_id>
          
          <creation_ts>2019-03-11 14:55:47 -0700</creation_ts>
          <short_desc>Alter Tools/Scripts/dump-class-layout to be able to dump all classes with suspicious padding</short_desc>
          <delta_ts>2019-03-12 15:45:35 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>195648</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1515016</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-11 14:55:47 -0700</bug_when>
    <thetext>Finding exactly the classes whose padding can be reduced might be tricky, but finding classes with at least 8 bytes of padding at the top-level is easy, and it is a very good approximation of what we want.
It is quite easy to then go through the list and see at a glance if their padding can be reduced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515024</commentid>
    <comment_count>1</comment_count>
      <attachid>364292</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-11 15:01:17 -0700</bug_when>
    <thetext>Created attachment 364292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515095</commentid>
    <comment_count>2</comment_count>
      <attachid>364292</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-11 16:50:25 -0700</bug_when>
    <thetext>Comment on attachment 364292
Patch

After using the script a bit more I realized it has a fairly high rate of duplicates, so I am removing it from review until I find a way to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515166</commentid>
    <comment_count>3</comment_count>
      <attachid>364329</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-11 18:17:49 -0700</bug_when>
    <thetext>Created attachment 364329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515190</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-11 19:15:01 -0700</bug_when>
    <thetext>I didn’t read the patch, but we have existing tests for this code and I noticed you had **no** tests in your patch. Tests please or explain why you can’t in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515195</commentid>
    <comment_count>5</comment_count>
      <attachid>364329</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-11 19:20:03 -0700</bug_when>
    <thetext>Comment on attachment 364329
Patch

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

&gt; Tools/Scripts/dump-class-layout:55
&gt; +        help=&apos;name of the class or struct to dump. ALL_WASTEFUL is a special name that makes it dump all classes with at least 8 bytes of padding at the top level.&apos;)

OK as-is, but in my eyes this just reads lazy and not at all intuitive. But hey, you explained in the usage so I guess that’s fair :/. I personally use this tool quite a bit. So I find this kind of Jack very bitter to swallow, but maybe I won’t ever use this feature. Exposing a new command line flag is the correct approach to this situation and the most Unix-like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515201</commentid>
    <comment_count>6</comment_count>
      <attachid>364329</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-11 19:27:30 -0700</bug_when>
    <thetext>Comment on attachment 364329
Patch

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

r- for another round.

&gt;&gt; Tools/Scripts/dump-class-layout:55
&gt;&gt; +        help=&apos;name of the class or struct to dump. ALL_WASTEFUL is a special name that makes it dump all classes with at least 8 bytes of padding at the top level.&apos;)
&gt; 
&gt; OK as-is, but in my eyes this just reads lazy and not at all intuitive. But hey, you explained in the usage so I guess that’s fair :/. I personally use this tool quite a bit. So I find this kind of Jack very bitter to swallow, but maybe I won’t ever use this feature. Exposing a new command line flag is the correct approach to this situation and the most Unix-like.

I think it would be better as a new argument --all-wasteful that just overrides classname.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515522</commentid>
    <comment_count>7</comment_count>
      <attachid>364409</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-12 11:06:55 -0700</bug_when>
    <thetext>Created attachment 364409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515533</commentid>
    <comment_count>8</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-03-12 11:10:03 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; Comment on attachment 364329 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=364329&amp;action=review
&gt; 
&gt; r- for another round.
&gt; 
&gt; &gt;&gt; Tools/Scripts/dump-class-layout:55
&gt; &gt;&gt; +        help=&apos;name of the class or struct to dump. ALL_WASTEFUL is a special name that makes it dump all classes with at least 8 bytes of padding at the top level.&apos;)
&gt; &gt; 
&gt; &gt; OK as-is, but in my eyes this just reads lazy and not at all intuitive. But hey, you explained in the usage so I guess that’s fair :/. I personally use this tool quite a bit. So I find this kind of Jack very bitter to swallow, but maybe I won’t ever use this feature. Exposing a new command line flag is the correct approach to this situation and the most Unix-like.
&gt; 
&gt; I think it would be better as a new argument --all-wasteful that just
&gt; overrides classname.

Fair enough, I should have used a new argument from the start. I&apos;ve updated a new patch with this fixed (and fixed the problem where it used to dump duplicate types).

I could not see how to tell argparse that exactly one of classname and --all-wasteful must be set, so I added that check separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515643</commentid>
    <comment_count>9</comment_count>
      <attachid>364409</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-12 13:30:06 -0700</bug_when>
    <thetext>Comment on attachment 364409
Patch

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

&gt; Tools/Scripts/dump-class-layout:88
&gt; +    if args.all_wasteful and (args.classname is not None):
&gt; +        print &quot;The -w/--all-wasteful option is incompatible with providing a class name&quot;

Maybe we should allow multiple classnames, and then you could just handle both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515658</commentid>
    <comment_count>10</comment_count>
      <attachid>364409</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-12 13:55:55 -0700</bug_when>
    <thetext>Comment on attachment 364409
Patch

Clearing flags on attachment: 364409

Committed r242825: &lt;https://trac.webkit.org/changeset/242825&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515659</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-12 13:55:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515660</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-12 13:56:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/48822054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515727</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-12 15:45:35 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 195648</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364292</attachid>
            <date>2019-03-11 15:01:17 -0700</date>
            <delta_ts>2019-03-11 18:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195573-20190311150116.patch</filename>
            <type>text/plain</type>
            <size>4911</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0Mjc0MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDE5LTAzLTExICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5j
b20+CisKKyAgICAgICAgQWx0ZXIgVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dCB0byBi
ZSBhYmxlIHRvIGR1bXAgYWxsIGNsYXNzZXMgd2l0aCBzdXNwaWNpb3VzIHBhZGRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTU3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsc28gbW9kaWZpZWQg
dGhlIHNjcmlwdCBzbyB0aGF0IHdoZW4gbXVsdGlwbGUgdHlwZXMgbWF0Y2ggYSBnaXZlbiBuYW1l
IGl0IHNob3dzIHRoZW0gYWxsIGFuZCBub3QgYXJiaXRyYXJpbHkgcGljayBvbmUuCisKKyAgICAg
ICAgKiBTY3JpcHRzL2R1bXAtY2xhc3MtbGF5b3V0OgorICAgICAgICAobWFpbik6CisgICAgICAg
ICogbGxkYi9sbGRiX2R1bXBfY2xhc3NfbGF5b3V0LnB5OgorICAgICAgICAoQ2xhc3NMYXlvdXQu
X19pbml0X18pOgorICAgICAgICAoQ2xhc3NMYXlvdXQuX2NvbXB1dGVfcGFkZGluZ19yZWN1cnNp
dmUpOgorICAgICAgICAoTExEQkRlYnVnZ2VySW5zdGFuY2UuZHVtcF9sYXlvdXRfZm9yX2NsYXNz
bmFtZSk6CisgICAgICAgIChMTERCRGVidWdnZXJJbnN0YW5jZSk6CisgICAgICAgIChMTERCRGVi
dWdnZXJJbnN0YW5jZS5kdW1wX2FsbF93YXN0ZWZ1bF9sYXlvdXRzKToKKyAgICAgICAgKExMREJE
ZWJ1Z2dlckluc3RhbmNlLmxheW91dF9mb3JfY2xhc3NuYW1lKTogRGVsZXRlZC4KKwogMjAxOS0w
My0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBhIFdLQ29udGVudFJ1bGVMaXN0IHZhcmlhbnQgdGhhdCB1c2VzIGNvcGllZCBtZW1v
cnkgaW5zdGVhZCBvZiBtbWFwJ2Qgc2hhcmVkIG1lbW9yeSBmb3IgY2xhc3MgQSBjb250YWluZXJp
emVkIGFwcHMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvZHVtcC1jbGFzcy1sYXlvdXQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dAkocmV2aXNpb24gMjQyNzIwKQor
KysgVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NyArNTIsNyBAQCBkZWYgbWFpbigpOgogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2ZyYW1ld29y
aycsIG1ldGF2YXI9J2ZyYW1ld29yaycsCiAgICAgICAgIGhlbHA9J25hbWUgb2YgdGhlIGZyYW1l
d29yayBjb250YWluaW5nIHRoZSBjbGFzcyAoZS5nLiAiV2ViQ29yZSIpJykKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCdjbGFzc25hbWUnLCBtZXRhdmFyPSdjbGFzc25hbWUnLAotICAgICAgICBo
ZWxwPSduYW1lIG9mIHRoZSBjbGFzcyBvciBzdHJ1Y3QgdG8gZHVtcCcpCisgICAgICAgIGhlbHA9
J25hbWUgb2YgdGhlIGNsYXNzIG9yIHN0cnVjdCB0byBkdW1wLiBBTExfV0FTVEVGVUwgaXMgYSBz
cGVjaWFsIG5hbWUgdGhhdCBtYWtlcyBpdCBkdW1wIGFsbCBjbGFzc2VzIHdpdGggYXQgbGVhc3Qg
OCBieXRlcyBvZiBwYWRkaW5nIGF0IHRoZSB0b3AgbGV2ZWwuJykKIAogICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoJy1iJywgJy0tYnVpbGQtZGlyZWN0b3J5JywgZGVzdD0nYnVpbGRfZGlyZWN0b3J5
JywgYWN0aW9uPSdzdG9yZScsCiAgICAgICAgIGhlbHA9J1BhdGggdG8gdGhlIGRpcmVjdG9yeSB1
bmRlciB3aGljaCBidWlsZCBmaWxlcyBhcmUga2VwdCAoc2hvdWxkIG5vdCBpbmNsdWRlIGNvbmZp
Z3VyYXRpb24pJykKQEAgLTgxLDkgKzgxLDEwIEBAIGRlZiBtYWluKCk6CiAgICAgICAgIHRhcmdl
dF9wYXRoID0gb3MucGF0aC5qb2luKGJ1aWxkX2RpciwgYXJncy5jb25maWcsIGFyZ3MuZnJhbWV3
b3JrICsgIi5mcmFtZXdvcmsiLCBhcmdzLmZyYW1ld29yayk7CiAgICAgCiAgICAgbGxkYl9pbnN0
YW5jZSA9IExMREJEZWJ1Z2dlckluc3RhbmNlKHRhcmdldF9wYXRoLCBhcmdzLmFyY2gpCi0gICAg
Y2xhc3NfbGF5b3V0ID0gbGxkYl9pbnN0YW5jZS5sYXlvdXRfZm9yX2NsYXNzbmFtZShhcmdzLmNs
YXNzbmFtZSkKLSAgICBjbGFzc19sYXlvdXQuZHVtcCgpCi0KKyAgICBpZiBhcmdzLmNsYXNzbmFt
ZSA9PSAiQUxMX1dBU1RFRlVMIjoKKyAgICAgICAgbGxkYl9pbnN0YW5jZS5kdW1wX2FsbF93YXN0
ZWZ1bF9sYXlvdXRzKCkKKyAgICBlbHNlOgorICAgICAgICBsbGRiX2luc3RhbmNlLmR1bXBfbGF5
b3V0X2Zvcl9jbGFzc25hbWUoYXJncy5jbGFzc25hbWUpCiAKIGlmIF9fbmFtZV9fID09ICJfX21h
aW5fXyI6CiAgICAgbWFpbigpCkluZGV4OiBUb29scy9sbGRiL2xsZGJfZHVtcF9jbGFzc19sYXlv
dXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvbGxkYi9sbGRiX2R1bXBfY2xhc3NfbGF5b3V0LnB5
CShyZXZpc2lvbiAyNDI3MjApCisrKyBUb29scy9sbGRiL2xsZGJfZHVtcF9jbGFzc19sYXlvdXQu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsNyBAQCBjbGFzcyBDbGFzc0xheW91dChD
bGFzc0xheW91dEJhc2UpOgogICAgICAgICBzZWxmLnRvdGFsX2J5dGVfc2l6ZSA9IHNlbGYudHlw
ZS5HZXRCeXRlU2l6ZSgpCiAgICAgICAgIHNlbGYucG9pbnRlcl9zaXplID0gc2VsZi50YXJnZXQu
R2V0QWRkcmVzc0J5dGVTaXplKCkKICAgICAgICAgc2VsZi50b3RhbF9wYWRfYnl0ZXMgPSAwCisg
ICAgICAgIHNlbGYudG9wX2xldmVsX3BhZF9ieXRlcyA9IDAKICAgICAgICAgc2VsZi5kYXRhX21l
bWJlcnMgPSBbXQogICAgICAgICBzZWxmLnZpcnR1YWxfYmFzZV9jbGFzc2VzID0gc2VsZi5fdmly
dHVhbF9iYXNlX2NsYXNzZXNfZGljdGlvbmFyeSgpCiAgICAgICAgIHNlbGYuX3BhcnNlKGNvbnRh
aW5lckNsYXNzLCBkZXJpdmVkQ2xhc3MpCkBAIC0zMTksNiArMzIwLDggQEAgY2xhc3MgQ2xhc3NM
YXlvdXQoQ2xhc3NMYXlvdXRCYXNlKToKIAogICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFf
bWVtYmVycy5pbnNlcnQoaSwgcGFkZGluZ19tZW1iZXIpCiAgICAgICAgICAgICAgICAgICAgIHBh
ZGRpbmdfYnl0ZXMgKz0gcGFkZGluZ19zaXplCisgICAgICAgICAgICAgICAgICAgIGlmIGRlcHRo
ID09IDAgYW5kIHBhZGRpbmdfc2l6ZSA8IDg6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnRvcF9sZXZlbF9wYWRfYnl0ZXMgKz0gcGFkZGluZ19zaXplCiAgICAgICAgICAgICAgICAgICAg
IGkgKz0gMQogCiAgICAgICAgICAgICAgICAgaWYgc2VsZi5NRU1CRVJfSVNfQklURklFTEQgaW4g
ZGF0YV9tZW1iZXI6CkBAIC0zNjQsNiArMzY3LDcgQEAgY2xhc3MgQ2xhc3NMYXlvdXQoQ2xhc3NM
YXlvdXRCYXNlKToKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc2VsZi5kYXRh
X21lbWJlcnMuYXBwZW5kKHBhZGRpbmdfbWVtYmVyKQogICAgICAgICAgICAgICAgIHBhZGRpbmdf
Ynl0ZXMgKz0gcGFkZGluZ19zaXplCisgICAgICAgICAgICAgICAgc2VsZi50b3BfbGV2ZWxfcGFk
X2J5dGVzICs9IHBhZGRpbmdfc2l6ZQogCiAgICAgICAgIHJldHVybiBbcGFkZGluZ19ieXRlcywg
Y3VycmVudF9vZmZzZXRdCiAKQEAgLTQxMSwxMSArNDE1LDE3IEBAIGNsYXNzIExMREJEZWJ1Z2dl
ckluc3RhbmNlOgogCiAgICAgICAgIHJldHVybiBsbGRiLkxMREJfQVJDSF9ERUZBVUxUCiAKLSAg
ICBkZWYgbGF5b3V0X2Zvcl9jbGFzc25hbWUoc2VsZiwgY2xhc3NuYW1lKToKKyAgICBkZWYgZHVt
cF9sYXlvdXRfZm9yX2NsYXNzbmFtZShzZWxmLCBjbGFzc25hbWUpOgogICAgICAgICB0eXBlcyA9
IHNlbGYubW9kdWxlLkZpbmRUeXBlcyhjbGFzc25hbWUpCi0gICAgICAgIGlmIHR5cGVzLkdldFNp
emUoKToKLSAgICAgICAgICAgICMgVGhlcmUgY2FuIGJlIG1vcmUgdGhhdCBvbmUgdHlwZSB3aXRo
IGEgZ2l2ZW4gbmFtZSwgYnV0IGZvciBub3cganVzdCByZXR1cm4gdGhlIGZpcnN0IG9uZS4KLSAg
ICAgICAgICAgIHJldHVybiBDbGFzc0xheW91dChzZWxmLnRhcmdldCwgdHlwZXMuR2V0VHlwZUF0
SW5kZXgoMCkpCi0KLSAgICAgICAgcHJpbnQgJ2Vycm9yOiBubyB0eXBlIG1hdGNoZXMgIiVzIiBp
biAiJXMiJyAlIChjbGFzc25hbWUsIHNlbGYubW9kdWxlLmZpbGUpCi0gICAgICAgIHJldHVybiBO
b25lCisgICAgICAgIGlmIG5vdCB0eXBlcy5HZXRTaXplKCk6CisgICAgICAgICAgICBwcmludCAn
ZXJyb3I6IG5vIHR5cGUgbWF0Y2hlcyAiJXMiIGluICIlcyInICUgKGNsYXNzbmFtZSwgc2VsZi5t
b2R1bGUuZmlsZSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGZvciB0IGluIHR5
cGVzOgorICAgICAgICAgICAgQ2xhc3NMYXlvdXQoc2VsZi50YXJnZXQsIHQpLmR1bXAoKQorCisg
ICAgZGVmIGR1bXBfYWxsX3dhc3RlZnVsX2xheW91dHMoc2VsZik6CisgICAgICAgIHR5cGVzID0g
c2VsZi5tb2R1bGUuR2V0VHlwZXMobGxkYi5lVHlwZUNsYXNzQ2xhc3MgfCBsbGRiLmVUeXBlQ2xh
c3NTdHJ1Y3QpCisgICAgICAgIGZvciB0IGluIHR5cGVzOgorICAgICAgICAgICAgY2xhc3NMYXlv
dXQgPSBDbGFzc0xheW91dChzZWxmLnRhcmdldCwgdCkKKyAgICAgICAgICAgIGlmIGNsYXNzTGF5
b3V0LnRvcF9sZXZlbF9wYWRfYnl0ZXMgPj0gODoKKyAgICAgICAgICAgICAgICBjbGFzc0xheW91
dC5kdW1wKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364329</attachid>
            <date>2019-03-11 18:17:49 -0700</date>
            <delta_ts>2019-03-12 11:06:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195573-20190311181748.patch</filename>
            <type>text/plain</type>
            <size>4976</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0Mjc2MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDE5LTAzLTExICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5j
b20+CisKKyAgICAgICAgQWx0ZXIgVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dCB0byBi
ZSBhYmxlIHRvIGR1bXAgYWxsIGNsYXNzZXMgd2l0aCBzdXNwaWNpb3VzIHBhZGRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTU3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsc28gbW9kaWZpZWQg
dGhlIHNjcmlwdCBzbyB0aGF0IHdoZW4gbXVsdGlwbGUgdHlwZXMgbWF0Y2ggYSBnaXZlbiBuYW1l
IGl0IHNob3dzIHRoZW0gYWxsIGFuZCBub3QgYXJiaXRyYXJpbHkgcGljayBvbmUuCisKKyAgICAg
ICAgKiBTY3JpcHRzL2R1bXAtY2xhc3MtbGF5b3V0OgorICAgICAgICAobWFpbik6CisgICAgICAg
ICogbGxkYi9sbGRiX2R1bXBfY2xhc3NfbGF5b3V0LnB5OgorICAgICAgICAoQ2xhc3NMYXlvdXQu
X19pbml0X18pOgorICAgICAgICAoQ2xhc3NMYXlvdXQuX2NvbXB1dGVfcGFkZGluZ19yZWN1cnNp
dmUpOgorICAgICAgICAoTExEQkRlYnVnZ2VySW5zdGFuY2UuZHVtcF9sYXlvdXRfZm9yX2NsYXNz
bmFtZSk6CisgICAgICAgIChMTERCRGVidWdnZXJJbnN0YW5jZSk6CisgICAgICAgIChMTERCRGVi
dWdnZXJJbnN0YW5jZS5kdW1wX2FsbF93YXN0ZWZ1bF9sYXlvdXRzKToKKyAgICAgICAgKExMREJE
ZWJ1Z2dlckluc3RhbmNlLmxheW91dF9mb3JfY2xhc3NuYW1lKTogRGVsZXRlZC4KKwogMjAxOS0w
My0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydCBp
biBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoKQpJbmRleDogVG9v
bHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L2R1bXAtY2xhc3MtbGF5b3V0CShyZXZpc2lvbiAyNDI3NjApCisrKyBUb29scy9TY3JpcHRzL2R1
bXAtY2xhc3MtbGF5b3V0CSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGRlZiBtYWlu
KCk6CiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnZnJhbWV3b3JrJywgbWV0YXZhcj0nZnJhbWV3
b3JrJywKICAgICAgICAgaGVscD0nbmFtZSBvZiB0aGUgZnJhbWV3b3JrIGNvbnRhaW5pbmcgdGhl
IGNsYXNzIChlLmcuICJXZWJDb3JlIiknKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2NsYXNz
bmFtZScsIG1ldGF2YXI9J2NsYXNzbmFtZScsCi0gICAgICAgIGhlbHA9J25hbWUgb2YgdGhlIGNs
YXNzIG9yIHN0cnVjdCB0byBkdW1wJykKKyAgICAgICAgaGVscD0nbmFtZSBvZiB0aGUgY2xhc3Mg
b3Igc3RydWN0IHRvIGR1bXAuIEFMTF9XQVNURUZVTCBpcyBhIHNwZWNpYWwgbmFtZSB0aGF0IG1h
a2VzIGl0IGR1bXAgYWxsIGNsYXNzZXMgd2l0aCBhdCBsZWFzdCA4IGJ5dGVzIG9mIHBhZGRpbmcg
YXQgdGhlIHRvcCBsZXZlbC4nKQogCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLWInLCAnLS1i
dWlsZC1kaXJlY3RvcnknLCBkZXN0PSdidWlsZF9kaXJlY3RvcnknLCBhY3Rpb249J3N0b3JlJywK
ICAgICAgICAgaGVscD0nUGF0aCB0byB0aGUgZGlyZWN0b3J5IHVuZGVyIHdoaWNoIGJ1aWxkIGZp
bGVzIGFyZSBrZXB0IChzaG91bGQgbm90IGluY2x1ZGUgY29uZmlndXJhdGlvbiknKQpAQCAtODEs
OSArODEsMTAgQEAgZGVmIG1haW4oKToKICAgICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpv
aW4oYnVpbGRfZGlyLCBhcmdzLmNvbmZpZywgYXJncy5mcmFtZXdvcmsgKyAiLmZyYW1ld29yayIs
IGFyZ3MuZnJhbWV3b3JrKTsKICAgICAKICAgICBsbGRiX2luc3RhbmNlID0gTExEQkRlYnVnZ2Vy
SW5zdGFuY2UodGFyZ2V0X3BhdGgsIGFyZ3MuYXJjaCkKLSAgICBjbGFzc19sYXlvdXQgPSBsbGRi
X2luc3RhbmNlLmxheW91dF9mb3JfY2xhc3NuYW1lKGFyZ3MuY2xhc3NuYW1lKQotICAgIGNsYXNz
X2xheW91dC5kdW1wKCkKLQorICAgIGlmIGFyZ3MuY2xhc3NuYW1lID09ICJBTExfV0FTVEVGVUwi
OgorICAgICAgICBsbGRiX2luc3RhbmNlLmR1bXBfYWxsX3dhc3RlZnVsX2xheW91dHMoKQorICAg
IGVsc2U6CisgICAgICAgIGxsZGJfaW5zdGFuY2UuZHVtcF9sYXlvdXRfZm9yX2NsYXNzbmFtZShh
cmdzLmNsYXNzbmFtZSkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICBtYWluKCkK
SW5kZXg6IFRvb2xzL2xsZGIvbGxkYl9kdW1wX2NsYXNzX2xheW91dC5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9sbGRiL2xsZGJfZHVtcF9jbGFzc19sYXlvdXQucHkJKHJldmlzaW9uIDI0Mjc2MCkK
KysrIFRvb2xzL2xsZGIvbGxkYl9kdW1wX2NsYXNzX2xheW91dC5weQkod29ya2luZyBjb3B5KQpA
QCAtMTQ1LDYgKzE0NSw3IEBAIGNsYXNzIENsYXNzTGF5b3V0KENsYXNzTGF5b3V0QmFzZSk6CiAg
ICAgICAgIHNlbGYudG90YWxfYnl0ZV9zaXplID0gc2VsZi50eXBlLkdldEJ5dGVTaXplKCkKICAg
ICAgICAgc2VsZi5wb2ludGVyX3NpemUgPSBzZWxmLnRhcmdldC5HZXRBZGRyZXNzQnl0ZVNpemUo
KQogICAgICAgICBzZWxmLnRvdGFsX3BhZF9ieXRlcyA9IDAKKyAgICAgICAgc2VsZi50b3BfbGV2
ZWxfcGFkX2J5dGVzID0gMAogICAgICAgICBzZWxmLmRhdGFfbWVtYmVycyA9IFtdCiAgICAgICAg
IHNlbGYudmlydHVhbF9iYXNlX2NsYXNzZXMgPSBzZWxmLl92aXJ0dWFsX2Jhc2VfY2xhc3Nlc19k
aWN0aW9uYXJ5KCkKICAgICAgICAgc2VsZi5fcGFyc2UoY29udGFpbmVyQ2xhc3MsIGRlcml2ZWRD
bGFzcykKQEAgLTMxOSw2ICszMjAsOCBAQCBjbGFzcyBDbGFzc0xheW91dChDbGFzc0xheW91dEJh
c2UpOgogCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YV9tZW1iZXJzLmluc2VydChpLCBw
YWRkaW5nX21lbWJlcikKICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ19ieXRlcyArPSBwYWRk
aW5nX3NpemUKKyAgICAgICAgICAgICAgICAgICAgaWYgZGVwdGggPT0gMCBhbmQgcGFkZGluZ19z
aXplIDwgODoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudG9wX2xldmVsX3BhZF9ieXRl
cyArPSBwYWRkaW5nX3NpemUKICAgICAgICAgICAgICAgICAgICAgaSArPSAxCiAKICAgICAgICAg
ICAgICAgICBpZiBzZWxmLk1FTUJFUl9JU19CSVRGSUVMRCBpbiBkYXRhX21lbWJlcjoKQEAgLTM2
NCw2ICszNjcsNyBAQCBjbGFzcyBDbGFzc0xheW91dChDbGFzc0xheW91dEJhc2UpOgogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzZWxmLmRhdGFfbWVtYmVycy5hcHBlbmQocGFk
ZGluZ19tZW1iZXIpCiAgICAgICAgICAgICAgICAgcGFkZGluZ19ieXRlcyArPSBwYWRkaW5nX3Np
emUKKyAgICAgICAgICAgICAgICBzZWxmLnRvcF9sZXZlbF9wYWRfYnl0ZXMgKz0gcGFkZGluZ19z
aXplCiAKICAgICAgICAgcmV0dXJuIFtwYWRkaW5nX2J5dGVzLCBjdXJyZW50X29mZnNldF0KIApA
QCAtNDExLDExICs0MTUsMjIgQEAgY2xhc3MgTExEQkRlYnVnZ2VySW5zdGFuY2U6CiAKICAgICAg
ICAgcmV0dXJuIGxsZGIuTExEQl9BUkNIX0RFRkFVTFQKIAotICAgIGRlZiBsYXlvdXRfZm9yX2Ns
YXNzbmFtZShzZWxmLCBjbGFzc25hbWUpOgorICAgIGRlZiBkdW1wX2xheW91dF9mb3JfY2xhc3Nu
YW1lKHNlbGYsIGNsYXNzbmFtZSk6CiAgICAgICAgIHR5cGVzID0gc2VsZi5tb2R1bGUuRmluZFR5
cGVzKGNsYXNzbmFtZSkKLSAgICAgICAgaWYgdHlwZXMuR2V0U2l6ZSgpOgotICAgICAgICAgICAg
IyBUaGVyZSBjYW4gYmUgbW9yZSB0aGF0IG9uZSB0eXBlIHdpdGggYSBnaXZlbiBuYW1lLCBidXQg
Zm9yIG5vdyBqdXN0IHJldHVybiB0aGUgZmlyc3Qgb25lLgotICAgICAgICAgICAgcmV0dXJuIENs
YXNzTGF5b3V0KHNlbGYudGFyZ2V0LCB0eXBlcy5HZXRUeXBlQXRJbmRleCgwKSkKLQotICAgICAg
ICBwcmludCAnZXJyb3I6IG5vIHR5cGUgbWF0Y2hlcyAiJXMiIGluICIlcyInICUgKGNsYXNzbmFt
ZSwgc2VsZi5tb2R1bGUuZmlsZSkKLSAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgaWYgbm90
IHR5cGVzLkdldFNpemUoKToKKyAgICAgICAgICAgIHByaW50ICdlcnJvcjogbm8gdHlwZSBtYXRj
aGVzICIlcyIgaW4gIiVzIicgJSAoY2xhc3NuYW1lLCBzZWxmLm1vZHVsZS5maWxlKQorICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZm9yIHQgaW4gdHlwZXM6CisgICAgICAgICAgICBD
bGFzc0xheW91dChzZWxmLnRhcmdldCwgdCkuZHVtcCgpCisKKyAgICBkZWYgZHVtcF9hbGxfd2Fz
dGVmdWxfbGF5b3V0cyhzZWxmKToKKyAgICAgICAgdHlwZXMgPSBzZWxmLm1vZHVsZS5HZXRUeXBl
cyhsbGRiLmVUeXBlQ2xhc3NDbGFzcyB8IGxsZGIuZVR5cGVDbGFzc1N0cnVjdCkKKyAgICAgICAg
c2VlblR5cGVzID0gc2V0KCkKKyAgICAgICAgZm9yIHQgaW4gdHlwZXM6CisgICAgICAgICAgICBp
ZiB0IGluIHNlZW5UeXBlczoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAg
c2VlblR5cGVzLmFkZCh0KQorICAgICAgICAgICAgY2xhc3NMYXlvdXQgPSBDbGFzc0xheW91dChz
ZWxmLnRhcmdldCwgdCkKKyAgICAgICAgICAgIGlmIGNsYXNzTGF5b3V0LnRvcF9sZXZlbF9wYWRf
Ynl0ZXMgPj0gODoKKyAgICAgICAgICAgICAgICBjbGFzc0xheW91dC5kdW1wKCkKKyAgICAgICAg
ICAgICAgICBwcmludCAiIgo=
</data>
<flag name="review"
          id="380849"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364409</attachid>
            <date>2019-03-12 11:06:55 -0700</date>
            <delta_ts>2019-03-12 13:55:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch195573</filename>
            <type>text/plain</type>
            <size>5453</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0Mjc2MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDE5LTAzLTExICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5j
b20+CisKKyAgICAgICAgQWx0ZXIgVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dCB0byBi
ZSBhYmxlIHRvIGR1bXAgYWxsIGNsYXNzZXMgd2l0aCBzdXNwaWNpb3VzIHBhZGRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTU3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsc28gbW9kaWZpZWQg
dGhlIHNjcmlwdCBzbyB0aGF0IHdoZW4gbXVsdGlwbGUgdHlwZXMgbWF0Y2ggYSBnaXZlbiBuYW1l
IGl0IHNob3dzIHRoZW0gYWxsIGFuZCBub3QgYXJiaXRyYXJpbHkgcGljayBvbmUuCisKKyAgICAg
ICAgKiBTY3JpcHRzL2R1bXAtY2xhc3MtbGF5b3V0OgorICAgICAgICAobWFpbik6CisgICAgICAg
ICogbGxkYi9sbGRiX2R1bXBfY2xhc3NfbGF5b3V0LnB5OgorICAgICAgICAoQ2xhc3NMYXlvdXQu
X19pbml0X18pOgorICAgICAgICAoQ2xhc3NMYXlvdXQuX2NvbXB1dGVfcGFkZGluZ19yZWN1cnNp
dmUpOgorICAgICAgICAoTExEQkRlYnVnZ2VySW5zdGFuY2UuZHVtcF9sYXlvdXRfZm9yX2NsYXNz
bmFtZSk6CisgICAgICAgIChMTERCRGVidWdnZXJJbnN0YW5jZSk6CisgICAgICAgIChMTERCRGVi
dWdnZXJJbnN0YW5jZS5kdW1wX2FsbF93YXN0ZWZ1bF9sYXlvdXRzKToKKyAgICAgICAgKExMREJE
ZWJ1Z2dlckluc3RhbmNlLmxheW91dF9mb3JfY2xhc3NuYW1lKTogRGVsZXRlZC4KKwogMjAxOS0w
My0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydCBp
biBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoKQpJbmRleDogVG9v
bHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L2R1bXAtY2xhc3MtbGF5b3V0CShyZXZpc2lvbiAyNDI3NjEpCisrKyBUb29scy9TY3JpcHRzL2R1
bXAtY2xhc3MtbGF5b3V0CSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBACiAgICAgcGFy
c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0R1bXBzIHRoZSBpbi1t
ZW1vcnkgbGF5b3V0IG9mIHRoZSBnaXZlbiBjbGFzcyBvciBjbGFzc2VzLCBzaG93aW5nIHBhZGRp
bmcgaG9sZXMuJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmcmFtZXdvcmsnLCBtZXRhdmFy
PSdmcmFtZXdvcmsnLAogICAgICAgICBoZWxwPSduYW1lIG9mIHRoZSBmcmFtZXdvcmsgY29udGFp
bmluZyB0aGUgY2xhc3MgKGUuZy4gIldlYkNvcmUiKScpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgnY2xhc3NuYW1lJywgbWV0YXZhcj0nY2xhc3NuYW1lJywKKyAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCdjbGFzc25hbWUnLCBtZXRhdmFyPSdjbGFzc25hbWUnLCBuYXJncz0nPycsCiAgICAgICAg
IGhlbHA9J25hbWUgb2YgdGhlIGNsYXNzIG9yIHN0cnVjdCB0byBkdW1wJykKIAogICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoJy1iJywgJy0tYnVpbGQtZGlyZWN0b3J5JywgZGVzdD0nYnVpbGRfZGly
ZWN0b3J5JywgYWN0aW9uPSdzdG9yZScsCkBAIC02Niw2ICs2Niw5IEBACiAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLXQnLCAnLS10YXJnZXQtcGF0aCcsIGRlc3Q9J3RhcmdldF9wYXRoJywgYWN0
aW9uPSdzdG9yZScsCiAgICAgICAgIGhlbHA9J1BhdGggdG8gdGhlIHRhcmdldCcpCiAKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCctdycsICctLWFsbC13YXN0ZWZ1bCcsIGRlc3Q9J2FsbF93YXN0
ZWZ1bCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgIGhlbHA9J0V4Y2x1c2l2ZSB3aXRo
IGNsYXNzbmFtZSwgZHVtcHMgdGhlIGxheW91dCBvZiBhbGwgY2xhc3NlcyB3aXRoIGF0IGxlYXN0
IDggYnl0ZXMgb2YgcGFkZGluZyBhdCB0aGUgdG9wLWxldmVsJykKKwogICAgIGFyZ3MgPSBwYXJz
ZXIucGFyc2VfYXJncygpCiAgICAgYnVpbGRfZGlyID0gd2Via2l0X2J1aWxkX2RpcigpCiAKQEAg
LTgxLDkgKzg0LDE0IEBACiAgICAgICAgIHRhcmdldF9wYXRoID0gb3MucGF0aC5qb2luKGJ1aWxk
X2RpciwgYXJncy5jb25maWcsIGFyZ3MuZnJhbWV3b3JrICsgIi5mcmFtZXdvcmsiLCBhcmdzLmZy
YW1ld29yayk7CiAgICAgCiAgICAgbGxkYl9pbnN0YW5jZSA9IExMREJEZWJ1Z2dlckluc3RhbmNl
KHRhcmdldF9wYXRoLCBhcmdzLmFyY2gpCi0gICAgY2xhc3NfbGF5b3V0ID0gbGxkYl9pbnN0YW5j
ZS5sYXlvdXRfZm9yX2NsYXNzbmFtZShhcmdzLmNsYXNzbmFtZSkKLSAgICBjbGFzc19sYXlvdXQu
ZHVtcCgpCisgICAgaWYgYXJncy5hbGxfd2FzdGVmdWwgYW5kIChhcmdzLmNsYXNzbmFtZSBpcyBu
b3QgTm9uZSk6CisgICAgICAgIHByaW50ICJUaGUgLXcvLS1hbGwtd2FzdGVmdWwgb3B0aW9uIGlz
IGluY29tcGF0aWJsZSB3aXRoIHByb3ZpZGluZyBhIGNsYXNzIG5hbWUiCisgICAgZWxpZiBhcmdz
LmFsbF93YXN0ZWZ1bDoKKyAgICAgICAgbGxkYl9pbnN0YW5jZS5kdW1wX2FsbF93YXN0ZWZ1bF9s
YXlvdXRzKCkKKyAgICBlbGlmIGFyZ3MuY2xhc3NuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICBs
bGRiX2luc3RhbmNlLmR1bXBfbGF5b3V0X2Zvcl9jbGFzc25hbWUoYXJncy5jbGFzc25hbWUpCisg
ICAgZWxzZToKKyAgICAgICAgcHJpbnQgIllvdSBtdXN0IGVpdGhlciBwcm92aWRlIGEgY2xhc3Mg
bmFtZSBvciB0aGUgLXcvLS1hbGwtd2FzdGVmdWwgb3B0aW9uIgogCi0KIGlmIF9fbmFtZV9fID09
ICJfX21haW5fXyI6CiAgICAgbWFpbigpCkluZGV4OiBUb29scy9sbGRiL2xsZGJfZHVtcF9jbGFz
c19sYXlvdXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvbGxkYi9sbGRiX2R1bXBfY2xhc3NfbGF5
b3V0LnB5CShyZXZpc2lvbiAyNDI3NjEpCisrKyBUb29scy9sbGRiL2xsZGJfZHVtcF9jbGFzc19s
YXlvdXQucHkJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUsNyBAQAogICAgICAgICBzZWxm
LnRvdGFsX2J5dGVfc2l6ZSA9IHNlbGYudHlwZS5HZXRCeXRlU2l6ZSgpCiAgICAgICAgIHNlbGYu
cG9pbnRlcl9zaXplID0gc2VsZi50YXJnZXQuR2V0QWRkcmVzc0J5dGVTaXplKCkKICAgICAgICAg
c2VsZi50b3RhbF9wYWRfYnl0ZXMgPSAwCisgICAgICAgIHNlbGYudG9wX2xldmVsX3BhZF9ieXRl
cyA9IDAKICAgICAgICAgc2VsZi5kYXRhX21lbWJlcnMgPSBbXQogICAgICAgICBzZWxmLnZpcnR1
YWxfYmFzZV9jbGFzc2VzID0gc2VsZi5fdmlydHVhbF9iYXNlX2NsYXNzZXNfZGljdGlvbmFyeSgp
CiAgICAgICAgIHNlbGYuX3BhcnNlKGNvbnRhaW5lckNsYXNzLCBkZXJpdmVkQ2xhc3MpCkBAIC0z
MTksNiArMzIwLDggQEAKIAogICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGFfbWVtYmVycy5p
bnNlcnQoaSwgcGFkZGluZ19tZW1iZXIpCiAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdfYnl0
ZXMgKz0gcGFkZGluZ19zaXplCisgICAgICAgICAgICAgICAgICAgIGlmIGRlcHRoID09IDAgYW5k
IHBhZGRpbmdfc2l6ZSA8IDg6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRvcF9sZXZl
bF9wYWRfYnl0ZXMgKz0gcGFkZGluZ19zaXplCiAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQog
CiAgICAgICAgICAgICAgICAgaWYgc2VsZi5NRU1CRVJfSVNfQklURklFTEQgaW4gZGF0YV9tZW1i
ZXI6CkBAIC0zNjQsNiArMzY3LDcgQEAKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgc2VsZi5kYXRhX21lbWJlcnMuYXBwZW5kKHBhZGRpbmdfbWVtYmVyKQogICAgICAgICAgICAg
ICAgIHBhZGRpbmdfYnl0ZXMgKz0gcGFkZGluZ19zaXplCisgICAgICAgICAgICAgICAgc2VsZi50
b3BfbGV2ZWxfcGFkX2J5dGVzICs9IHBhZGRpbmdfc2l6ZQogCiAgICAgICAgIHJldHVybiBbcGFk
ZGluZ19ieXRlcywgY3VycmVudF9vZmZzZXRdCiAKQEAgLTQxMSwxMSArNDE1LDIyIEBACiAKICAg
ICAgICAgcmV0dXJuIGxsZGIuTExEQl9BUkNIX0RFRkFVTFQKIAotICAgIGRlZiBsYXlvdXRfZm9y
X2NsYXNzbmFtZShzZWxmLCBjbGFzc25hbWUpOgorICAgIGRlZiBkdW1wX2xheW91dF9mb3JfY2xh
c3NuYW1lKHNlbGYsIGNsYXNzbmFtZSk6CiAgICAgICAgIHR5cGVzID0gc2VsZi5tb2R1bGUuRmlu
ZFR5cGVzKGNsYXNzbmFtZSkKLSAgICAgICAgaWYgdHlwZXMuR2V0U2l6ZSgpOgotICAgICAgICAg
ICAgIyBUaGVyZSBjYW4gYmUgbW9yZSB0aGF0IG9uZSB0eXBlIHdpdGggYSBnaXZlbiBuYW1lLCBi
dXQgZm9yIG5vdyBqdXN0IHJldHVybiB0aGUgZmlyc3Qgb25lLgotICAgICAgICAgICAgcmV0dXJu
IENsYXNzTGF5b3V0KHNlbGYudGFyZ2V0LCB0eXBlcy5HZXRUeXBlQXRJbmRleCgwKSkKKyAgICAg
ICAgaWYgbm90IHR5cGVzLkdldFNpemUoKToKKyAgICAgICAgICAgIHByaW50ICdlcnJvcjogbm8g
dHlwZSBtYXRjaGVzICIlcyIgaW4gIiVzIicgJSAoY2xhc3NuYW1lLCBzZWxmLm1vZHVsZS5maWxl
KQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZm9yIHQgaW4gdHlwZXM6CisgICAg
ICAgICAgICBDbGFzc0xheW91dChzZWxmLnRhcmdldCwgdCkuZHVtcCgpCiAKLSAgICAgICAgcHJp
bnQgJ2Vycm9yOiBubyB0eXBlIG1hdGNoZXMgIiVzIiBpbiAiJXMiJyAlIChjbGFzc25hbWUsIHNl
bGYubW9kdWxlLmZpbGUpCi0gICAgICAgIHJldHVybiBOb25lCisgICAgZGVmIGR1bXBfYWxsX3dh
c3RlZnVsX2xheW91dHMoc2VsZik6CisgICAgICAgIHR5cGVzID0gc2VsZi5tb2R1bGUuR2V0VHlw
ZXMobGxkYi5lVHlwZUNsYXNzQ2xhc3MgfCBsbGRiLmVUeXBlQ2xhc3NTdHJ1Y3QpCisgICAgICAg
IHNlZW5UeXBlcyA9IHNldCgpCisgICAgICAgIGZvciB0IGluIHR5cGVzOgorICAgICAgICAgICAg
aWYgdC5HZXROYW1lKCkgaW4gc2VlblR5cGVzOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICBzZWVuVHlwZXMuYWRkKHQuR2V0TmFtZSgpKQorICAgICAgICAgICAgY2xhc3NM
YXlvdXQgPSBDbGFzc0xheW91dChzZWxmLnRhcmdldCwgdCkKKyAgICAgICAgICAgIGlmIGNsYXNz
TGF5b3V0LnRvcF9sZXZlbF9wYWRfYnl0ZXMgPj0gODoKKyAgICAgICAgICAgICAgICBjbGFzc0xh
eW91dC5kdW1wKCkKKyAgICAgICAgICAgICAgICBwcmludCAiIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>