<?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>81467</bug_id>
          
          <creation_ts>2012-03-17 22:53:16 -0700</creation_ts>
          <short_desc>webkitpy: Make FreeBSD be recognized as a valid platform.</short_desc>
          <delta_ts>2012-05-03 19:21:52 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raphael Kubo da Costa (:rakuco)">rakuco</reporter>
          <assigned_to name="Raphael Kubo da Costa (:rakuco)">rakuco</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>581420</commentid>
    <comment_count>0</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-03-17 22:53:16 -0700</bug_when>
    <thetext>webkitpy: Make FreeBSD be recognized as a valid platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581421</commentid>
    <comment_count>1</comment_count>
      <attachid>132484</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-03-17 22:56:11 -0700</bug_when>
    <thetext>Created attachment 132484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581422</commentid>
    <comment_count>2</comment_count>
      <attachid>132484</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-17 23:02:17 -0700</bug_when>
    <thetext>Comment on attachment 132484
Patch

Oh boy.  I think you just want to pretend to be linux...  Maybe not... but this just seems like signing up for a world of pain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581423</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-03-17 23:12:08 -0700</bug_when>
    <thetext>I&apos;m all ears to suggestions. If just pretending to be Linux in platforminfo.py is better, I&apos;m fine with that. Can&apos;t think of a better solution for the other files, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581424</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-17 23:32:01 -0700</bug_when>
    <thetext>Theoretically more of webkitpy should depend on PlatformInfo, instead of grabbing at sys.platform directly.  But I&apos;ll look at this tomorrow when I&apos;m more awake. :)  Your patch is probably fine...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581561</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-18 19:09:18 -0700</bug_when>
    <thetext>Which WebKit ports run on FreeBSD?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581567</commentid>
    <comment_count>6</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-03-18 19:19:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Which WebKit ports run on FreeBSD?

The EFL one, and probably the GTK+ and Qt ones as well (I haven&apos;t built them in a while, but stable versions of these ports are regularly packaged). Chrome is also packaged, so I guess the chromium port also runs on FreeBSD, and, if it doesn&apos;t have any exotic dependencies, so does the wx port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581620</commentid>
    <comment_count>7</comment_count>
      <attachid>132484</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-18 21:38:03 -0700</bug_when>
    <thetext>Comment on attachment 132484
Patch

I&apos;m inclined to mark this patch R- unless/until you plan to run FreeBSD-based bots on build.webkit.org.  As far as I know, there are no such bots and I haven&apos;t heard that anyone plans to add one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615862</commentid>
    <comment_count>8</comment_count>
      <attachid>140141</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-03 18:26:29 -0700</bug_when>
    <thetext>Created attachment 140141
Second attempt with a smaller patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615866</commentid>
    <comment_count>9</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-03 18:29:12 -0700</bug_when>
    <thetext>With dpranke&apos;s help, I&apos;ve been committing some changes which have helped make this patch smaller. The current sys.platform and PlatformInfo.is_foo() checks in webkitpy are for Windows-only code, so supporting FreeBSD is mostly a matter of adding is_freebsd() to PlatformInfo.

As for a build bot, dpranke and I talked about it on IRC today, and it&apos;s mostly a matter of having some spare CPU cycles for that (as an individual developer I don&apos;t have a machine for that) and we&apos;ll try to get one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615867</commentid>
    <comment_count>10</comment_count>
      <attachid>140141</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-03 18:29:19 -0700</bug_when>
    <thetext>Comment on attachment 140141
Second attempt with a smaller patch

The patch looks fine to me. Adam, I think it&apos;s reasonable to land this given that it&apos;s basically one if-statement and a bunch of unit tests. The maintenance needs for bsd should be pretty low. On a related note, I think I will ping a few people to see if they want to pony up to support at least a minimal BSD bot. I know we had a chromium port to BSD at some point (e.g., for the capsicum work) and so someone might be interested in keeping it going.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615872</commentid>
    <comment_count>11</comment_count>
      <attachid>140141</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-03 18:32:43 -0700</bug_when>
    <thetext>Comment on attachment 140141
Second attempt with a smaller patch

Yep, agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615885</commentid>
    <comment_count>12</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-03 18:52:27 -0700</bug_when>
    <thetext>Committed r116061: &lt;http://trac.webkit.org/changeset/116061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615894</commentid>
    <comment_count>13</comment_count>
      <attachid>140141</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-03 19:02:57 -0700</bug_when>
    <thetext>Comment on attachment 140141
Second attempt with a smaller patch

OK.  I guess we&apos;ll end up using this check more places? I&apos;m still surprised that freebsd wants to be different from linux (I understand that they can be quite different, having worked on Apple&apos;s BSD team, but I&apos;m surprised that webkitpy would need to know much about those differences.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615897</commentid>
    <comment_count>14</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-03 19:17:33 -0700</bug_when>
    <thetext>In practice, right now there is no difference between linux and freebsd for webkitpy. abarth, dprank and I talked about just lying that freebsd is linux in PlatformInfo.is_linux() in March, and at the time Dirk felt &quot;a little leery&quot; about that. We then discussed adding is_unix() (or some thing like that) to PlatformInfo, but that has not been done yet (99% percent of the calls are for is_mac() and is_win() anyway).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615900</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-05-03 19:21:52 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 140141 [details])
&gt; OK.  I guess we&apos;ll end up using this check more places? I&apos;m still surprised that freebsd wants to be different from linux (I understand that they can be quite different, having worked on Apple&apos;s BSD team, but I&apos;m surprised that webkitpy would need to know much about those differences.)

At the moment, is_linux() and is_freebsd() are both only used in one place (and it&apos;s the same place, to determine the default port to use in PortFactory() if not win/mac.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132484</attachid>
            <date>2012-03-17 22:56:11 -0700</date>
            <delta_ts>2012-05-03 18:26:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81467-20120318025608.patch</filename>
            <type>text/plain</type>
            <size>11740</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMTMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTIzNDllMzMxZGNmN2E2MzMyZGVhMzMxODg2NWY2Y2I3
MjQyYjlkNy4uNDkwZjc2ZjIzYmJhMGJiNTlkOTFjYzk4ZWFkMzlkN2NhMzMxYWQxMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDEyLTAzLTE4ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29ARnJlZUJTRC5v
cmc+CisKKyAgICAgICAgd2Via2l0cHk6IE1ha2UgRnJlZUJTRCBiZSByZWNvZ25pemVkIGFzIGEg
dmFsaWQgcGxhdGZvcm0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MTQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZyZWVCU0Qgd29ya3MgYWxtb3N0IGlkZW50aWNhbGx5IHRvIExpbnV4IGFuZCBEYXJ3
aW4sIHNvIGFkZGluZworICAgICAgICBzdXBwb3J0IHRvIGl0IGJvaWxzIGRvd24gbW9zdGx5IHRv
IGFkZGluZyBhbm90aGVyIGlmIG9yIGV4dGVuZGluZworICAgICAgICBhbiBleGlzdGluZyBvbmUu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5
OgorICAgICAgICAoRXhlY3V0aXZlLmNoZWNrX3J1bm5pbmdfcGlkKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZV9sb2NrLnB5OgorICAgICAgICAoRmlsZUxv
Y2suX2NyZWF0ZV9sb2NrKToKKyAgICAgICAgKEZpbGVMb2NrLl9yZW1vdmVfbG9jayk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAg
ICAgICAgKFBsYXRmb3JtSW5mby5fX2luaXRfXyk6CisgICAgICAgIChQbGF0Zm9ybUluZm8uaXNf
ZnJlZWJzZCk6CisgICAgICAgIChQbGF0Zm9ybUluZm8uX2RldGVybWluZV9vc19uYW1lKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2su
cHk6CisgICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLmlzX2ZyZWVic2QpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHk6Cisg
ICAgICAgIChmYWtlX3BsYXRmb3JtKToKKyAgICAgICAgKGZha2VfcGxhdGZvcm0uRmFrZVBsYXRm
b3JtTW9kdWxlLnJlbGVhc2UpOgorICAgICAgICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0X3JlYWxf
Y29kZSk6CisgICAgICAgIChUZXN0UGxhdGZvcm1JbmZvLnRlc3Rfb3NfbmFtZV9hbmRfd3JhcHBl
cnMpOgorICAgICAgICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0X29zX3ZlcnNpb24pOgorICAgICAg
ICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0X2Rpc3BsYXlfbmFtZSk6CisgICAgICAgIChUZXN0UGxh
dGZvcm1JbmZvLnRlc3RfdG90YWxfYnl0ZXNfbWVtb3J5KToKKyAgICAgICAgKFRlc3RQbGF0Zm9y
bUluZm8udGVzdF9mcmVlX2J5dGVzX21lbW9yeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAoUG9ydEZhY3RvcnkuX2Rl
ZmF1bHRfcG9ydCk6CisKIDIwMTItMDMtMTcgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vj
b0BGcmVlQlNELm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBzd2l0Y2ggdG8gdXNpbmcgbXkg
RnJlZUJTRC5vcmcgZW1haWwgYWRkcmVzcywgdGhlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQppbmRleCAwNmY4NzBjNzIwYWM1ZWFhYWZj
YWQ4NDJhM2I0NjBiZGNiNGMwZGU4Li5kY2RmN2M3MzdmNTc0NGIwYWNjNjU0MzRiZjNkMGJmYjY5
YzNkYjI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
ZXhlY3V0aXZlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9l
eGVjdXRpdmUucHkKQEAgLTI1NSw3ICsyNTUsNyBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToK
IAogICAgIGRlZiBjaGVja19ydW5uaW5nX3BpZChzZWxmLCBwaWQpOgogICAgICAgICAiIiJSZXR1
cm4gVHJ1ZSBpZiBwaWQgaXMgYWxpdmUsIG90aGVyd2lzZSByZXR1cm4gRmFsc2UuIiIiCi0gICAg
ICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpIG9yIHN5cy5wbGF0Zm9ybSBp
biAoJ2RhcndpbicsICdjeWd3aW4nKToKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dp
dGgoJ2xpbnV4Jykgb3Igc3lzLnBsYXRmb3JtIGluICgnZGFyd2luJywgJ2N5Z3dpbicpIG9yIHN5
cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNkJyk6CiAgICAgICAgICAgICB0cnk6CiAgICAg
ICAgICAgICAgICAgb3Mua2lsbChwaWQsIDApCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlX2xv
Y2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZV9sb2NrLnB5
CmluZGV4IGI0YmZmZmM0MGM3NWNlNTIzNTk3NjZmOGJiYjU2ZWEwNzc4MDMwNGYuLjljYThkZTU2
NTg4M2E4OGU1NDczZjRlZmU2YTZiNjMxZDYyZjU1MGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9maWxlX2xvY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVfbG9jay5weQpAQCAtNDMsNyArNDMsNyBAQCBj
bGFzcyBGaWxlTG9jayhvYmplY3QpOgogICAgICAgICBzZWxmLl9tYXhfd2FpdF90aW1lX3NlYyA9
IG1heF93YWl0X3RpbWVfc2VjCiAKICAgICBkZWYgX2NyZWF0ZV9sb2NrKHNlbGYpOgotICAgICAg
ICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKSBvciBzeXMucGxhdGZvcm0gaW4g
KCdkYXJ3aW4nLCAnY3lnd2luJyk6CisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRo
KCdsaW51eCcpIG9yIHN5cy5wbGF0Zm9ybSBpbiAoJ2RhcndpbicsICdjeWd3aW4nKSBvciBzeXMu
cGxhdGZvcm0uc3RhcnRzd2l0aCgnZnJlZWJzZCcpOgogICAgICAgICAgICAgaW1wb3J0IGZjbnRs
CiAgICAgICAgICAgICBmY250bC5mbG9jayhzZWxmLl9sb2NrX2ZpbGVfZGVzY3JpcHRvciwgZmNu
dGwuTE9DS19FWCB8IGZjbnRsLkxPQ0tfTkIpCiAgICAgICAgIGVsaWYgc3lzLnBsYXRmb3JtID09
ICd3aW4zMic6CkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIEZpbGVMb2NrKG9iamVjdCk6CiAgICAg
ICAgICAgICBtc3ZjcnQubG9ja2luZyhzZWxmLl9sb2NrX2ZpbGVfZGVzY3JpcHRvciwgbXN2Y3J0
LkxLX05CTENLLCAzMikKIAogICAgIGRlZiBfcmVtb3ZlX2xvY2soc2VsZik6Ci0gICAgICAgIGlm
IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpIG9yIHN5cy5wbGF0Zm9ybSBpbiAoJ2Rh
cndpbicsICdjeWd3aW4nKToKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xp
bnV4Jykgb3Igc3lzLnBsYXRmb3JtIGluICgnZGFyd2luJywgJ2N5Z3dpbicpIG9yIHN5cy5wbGF0
Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNkJyk6CiAgICAgICAgICAgICBpbXBvcnQgZmNudGwKICAg
ICAgICAgICAgIGZjbnRsLmZsb2NrKHNlbGYuX2xvY2tfZmlsZV9kZXNjcmlwdG9yLCBmY250bC5M
T0NLX1VOKQogICAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKaW5k
ZXggZGQ2ZDY4NDRjNDM1NjI1YjIyOWIyN2U2MDcyZWRmMmJiOGY0MDNjNC4uMjJjYWZiYmVlZjJk
NmYyMTE3NDhhYmRhOGQ5YmE4ZTk0OTE0MzAxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5CkBAIC00OCw2ICs0OCw4IEBA
IGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgICAgICBzZWxmLm9zX25hbWUgPSBzZWxm
Ll9kZXRlcm1pbmVfb3NfbmFtZShzeXNfbW9kdWxlLnBsYXRmb3JtKQogICAgICAgICBpZiBzZWxm
Lm9zX25hbWUgPT0gJ2xpbnV4JzoKICAgICAgICAgICAgIHNlbGYub3NfdmVyc2lvbiA9IHNlbGYu
X2RldGVybWluZV9saW51eF92ZXJzaW9uKCkKKyAgICAgICAgaWYgc2VsZi5vc19uYW1lID09ICdm
cmVlYnNkJzoKKyAgICAgICAgICAgIHNlbGYub3NfdmVyc2lvbiA9IHBsYXRmb3JtX21vZHVsZS5y
ZWxlYXNlKCkKICAgICAgICAgaWYgc2VsZi5vc19uYW1lLnN0YXJ0c3dpdGgoJ21hYycpOgogICAg
ICAgICAgICAgc2VsZi5vc192ZXJzaW9uID0gc2VsZi5fZGV0ZXJtaW5lX21hY192ZXJzaW9uKHBs
YXRmb3JtX21vZHVsZS5tYWNfdmVyKClbMF0pCiAgICAgICAgIGlmIHNlbGYub3NfbmFtZS5zdGFy
dHN3aXRoKCd3aW4nKToKQEAgLTYyLDYgKzY0LDkgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVj
dCk6CiAgICAgZGVmIGlzX2xpbnV4KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1l
ID09ICdsaW51eCcKIAorICAgIGRlZiBpc19mcmVlYnNkKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5vc19uYW1lID09ICdmcmVlYnNkJworCiAgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToK
ICAgICAgICAgIyBwbGF0Zm9ybS5wbGF0Zm9ybSgpIHJldHVybnMgRGFyd2luIGluZm9ybWF0aW9u
IGZvciBNYWMsIHdoaWNoIGlzIGp1c3QgY29uZnVzaW5nLgogICAgICAgICBpZiBzZWxmLmlzX21h
YygpOgpAQCAtOTMsNiArOTgsOCBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAg
ICAgICAgIHJldHVybiAnbGludXgnCiAgICAgICAgIGlmIHN5c19wbGF0Zm9ybSBpbiAoJ3dpbjMy
JywgJ2N5Z3dpbicpOgogICAgICAgICAgICAgcmV0dXJuICd3aW4nCisgICAgICAgIGlmIHN5c19w
bGF0Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNkJyk6CisgICAgICAgICAgICByZXR1cm4gJ2ZyZWVi
c2QnCiAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCd1bnJlY29nbml6ZWQgcGxhdGZvcm0g
c3RyaW5nICIlcyInICUgc3lzX3BsYXRmb3JtKQogCiAgICAgZGVmIF9kZXRlcm1pbmVfbWFjX3Zl
cnNpb24oc2VsZiwgbWFjX3ZlcnNpb25fc3RyaW5nKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQppbmRleCA3
MzAyNzYxZGUwYmYyZjE5YTczM2UyNTlkNjFiZDNmMWZkMjJkYzM3Li41YzMwNzc5NjIyZGM1MzRl
NGQ5ZGNiM2FjNjJkMGQyMWZjMGI2YjFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5CkBAIC00MCw2ICs0
MCw5IEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICBkZWYgaXNfd2luKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICd3aW4nCiAKKyAgICBkZWYgaXNf
ZnJlZWJzZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYub3NfbmFtZSA9PSAnZnJlZWJzZCcK
KwogICAgIGRlZiBkaXNwbGF5X25hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiAiTW9ja1BsYXRm
b3JtIDEuMCIKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHkKaW5kZXggYWM5Y2ZiMGQ3NDU1ZTg4
OGE0ZWQ4ODFjZDI2MjZlNTMyY2I5MzcwMy4uNWExZjg1ZmMzOWIyNzFmNTY3ZTZkNmVhNzU1MDg3
YWY0MmVmNmVkYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CkBAIC00NSw3ICs0NSw3IEBA
IGRlZiBmYWtlX3N5cyhwbGF0Zm9ybV9zdHI9J2RhcndpbicsIHdpbmRvd3NfdmVyc2lvbl90dXBs
ZT1Ob25lKToKICAgICByZXR1cm4gRmFrZVN5c01vZHVsZSgpCiAKIAotZGVmIGZha2VfcGxhdGZv
cm0obWFjX3ZlcnNpb25fc3RyaW5nPScxMC42LjMnKToKK2RlZiBmYWtlX3BsYXRmb3JtKG1hY192
ZXJzaW9uX3N0cmluZz0nMTAuNi4zJywgcmVsZWFzZV9zdHJpbmc9J2JhcicpOgogCiAgICAgY2xh
c3MgRmFrZVBsYXRmb3JtTW9kdWxlKG9iamVjdCk6CiAgICAgICAgIGRlZiBtYWNfdmVyKHNlbGYp
OgpAQCAtNTQsNiArNTQsOSBAQCBkZWYgZmFrZV9wbGF0Zm9ybShtYWNfdmVyc2lvbl9zdHJpbmc9
JzEwLjYuMycpOgogICAgICAgICBkZWYgcGxhdGZvcm0oc2VsZik6CiAgICAgICAgICAgICByZXR1
cm4gJ2ZvbycKIAorICAgICAgICBkZWYgcmVsZWFzZShzZWxmKToKKyAgICAgICAgICAgIHJldHVy
biByZWxlYXNlX3N0cmluZworCiAgICAgcmV0dXJuIEZha2VQbGF0Zm9ybU1vZHVsZSgpCiAKIApA
QCAtNzUsNyArNzgsNyBAQCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoaW5mby5vc19uYW1lLCAnJykKICAgICAg
ICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoaW5mby5vc192ZXJzaW9uLCAnJykKICAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFcXVhbHMoaW5mby5kaXNwbGF5X25hbWUoKSwgJycpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShpbmZvLmlzX21hYygpIG9yIGluZm8uaXNfd2luKCkgb3IgaW5mby5pc19saW51
eCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5pc19tYWMoKSBvciBpbmZvLmlzX3dp
bigpIG9yIGluZm8uaXNfbGludXgoKSBvciBpbmZvLmlzX2ZyZWVic2QoKSkKIAogICAgICAgICBp
ZiBpbmZvLmlzX21hYygpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGluZm8udG90YWxf
Ynl0ZXNfbWVtb3J5KCkgPiAwKQpAQCAtODksMjkgKzkyLDQxIEBAIGNsYXNzIFRlc3RQbGF0Zm9y
bUluZm8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5p
c19saW51eCgpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc193aW4oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShpbmZvLmlzX2ZyZWVic2QoKSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8o
ZmFrZV9zeXMoJ2xpbnV4MycpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5pc19saW51
eCgpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoaW5mby5pc193aW4oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShp
bmZvLmlzX2ZyZWVic2QoKSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9z
eXMoJ2RhcndpbicpLCBmYWtlX3BsYXRmb3JtKCcxMC42LjMnKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoaW5mby5vc19uYW1lLCAnbWFjJykKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShp
bmZvLmlzX2xpbnV4KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvLmlzX21hYygpKQog
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfd2luKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoaW5mby5pc19mcmVlYnNkKCkpCiAKICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9p
bmZvKGZha2Vfc3lzKCd3aW4zMicsIHR1cGxlKFs2LCAxLCA3NjAwXSkpKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhpbmZvLm9zX25hbWUsICd3aW4nKQogICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGluZm8uaXNfbGludXgoKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX21h
YygpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5pc193aW4oKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShpbmZvLmlzX2ZyZWVic2QoKSkKIAogICAgICAgICBpbmZvID0gc2VsZi5t
YWtlX2luZm8oZmFrZV9zeXMoJ2N5Z3dpbicpLCBleGVjdXRpdmU9ZmFrZV9leGVjdXRpdmUoJzYu
MS43NjAwJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGluZm8ub3NfbmFtZSwgJ3dpbicp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19saW51eCgpKQogICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZv
LmlzX3dpbigpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfZnJlZWJzZCgpKQor
CisgICAgICAgIGluZm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnZnJlZWJzZDgnKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5mby5vc19uYW1lLCAnZnJlZWJzZCcpCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19saW51eCgpKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGluZm8uaXNfbWFjKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc193aW4o
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGluZm8uaXNfZnJlZWJzZCgpKQogCiAgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBzZWxmLm1ha2VfaW5mbywgZmFrZV9z
eXMoJ3ZtcycpKQogCkBAIC0xMjQsNiArMTM5LDkgQEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtl
X2luZm8oZmFrZV9zeXMoJ2xpbnV4MicpKS5vc192ZXJzaW9uLCAnbHVjaWQnKQogCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdmcmVlYnNkOCcpLCBm
YWtlX3BsYXRmb3JtKCcnLCAnOC4zLVBSRVJFTEVBU0UnKSkub3NfdmVyc2lvbiwgJzguMy1QUkVS
RUxFQVNFJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX2luZm8oZmFrZV9z
eXMoJ2ZyZWVic2Q5JyksIGZha2VfcGxhdGZvcm0oJycsICc5LjAtUkVMRUFTRScpKS5vc192ZXJz
aW9uLCAnOS4wLVJFTEVBU0UnKQorCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlv
bkVycm9yLCBzZWxmLm1ha2VfaW5mbywgZmFrZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzUsIDAsIDEy
MzRdKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lz
KCd3aW4zMicsIHR1cGxlKFs2LCAyLCAxMjM0XSkpKS5vc192ZXJzaW9uLCAnZnV0dXJlJykKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywg
dHVwbGUoWzYsIDEsIDc2MDBdKSkpLm9zX3ZlcnNpb24sICc3c3AwJykKQEAgLTE0Niw2ICsxNjQs
OSBAQCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
aW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdsaW51eDInKSkKICAgICAgICAgc2VsZi5h
c3NlcnROb3RFcXVhbHMoaW5mby5kaXNwbGF5X25hbWUoKSwgJycpCiAKKyAgICAgICAgaW5mbyA9
IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdmcmVlYnNkOScpKQorICAgICAgICBzZWxmLmFzc2Vy
dE5vdEVxdWFscyhpbmZvLmRpc3BsYXlfbmFtZSgpLCAnJykKKwogICAgIGRlZiB0ZXN0X3RvdGFs
X2J5dGVzX21lbW9yeShzZWxmKToKICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vf
c3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9ybSgnMTAuNi4zJyksIGZha2VfZXhlY3V0aXZlKCcx
MjM0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGluZm8udG90YWxfYnl0ZXNfbWVtb3J5
KCksIDEyMzQpCkBAIC0xNTYsNiArMTc3LDkgQEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGluZm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygn
bGludXgyJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGluZm8udG90YWxfYnl0ZXNfbWVt
b3J5KCksIE5vbmUpCiAKKyAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdm
cmVlYnNkOScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhpbmZvLnRvdGFsX2J5dGVzX21l
bW9yeSgpLCBOb25lKQorCiAgICAgZGVmIHRlc3RfZnJlZV9ieXRlc19tZW1vcnkoc2VsZik6CiAg
ICAgICAgIHZtc3RhdF9vdXRwdXQgPSAoIk1hY2ggVmlydHVhbCBNZW1vcnkgU3RhdGlzdGljczog
KHBhZ2Ugc2l6ZSBvZiA0MDk2IGJ5dGVzKVxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICJQ
YWdlcyBmcmVlOiAgICAgICAgICAgICAgICAgICAgICAgIDEuXG4iCkBAIC0xNjksNiArMTkzLDkg
QEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGlu
Zm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnbGludXgyJykpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGluZm8uZnJlZV9ieXRlc19tZW1vcnkoKSwgTm9uZSkKIAorICAgICAgICBpbmZv
ID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2ZyZWVic2Q5JykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGluZm8uZnJlZV9ieXRlc19tZW1vcnkoKSwgTm9uZSkKKwogCiBpZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0b3J5LnB5CmluZGV4IDA5MjEwNjAx
OWMwODVlOTcyNDE4YTFmOGMwOTk4MGU3NDJkNmRjYzEuLjlmNTMyNjBiYTgwMzA0MDMzMjEyMmZl
MjVmYWQxMDY0ZjZkMDFlYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkKQEAgLTY0LDcgKzY0LDcgQEAgY2xhc3MgUG9ydEZh
Y3Rvcnkob2JqZWN0KToKIAogICAgIGRlZiBfZGVmYXVsdF9wb3J0KHNlbGYsIG9wdGlvbnMpOgog
ICAgICAgICBwbGF0Zm9ybSA9IHNlbGYuX2hvc3QucGxhdGZvcm0KLSAgICAgICAgaWYgcGxhdGZv
cm0uaXNfbGludXgoKToKKyAgICAgICAgaWYgcGxhdGZvcm0uaXNfbGludXgoKSBvciBwbGF0Zm9y
bS5pc19mcmVlYnNkKCk6CiAgICAgICAgICAgICByZXR1cm4gJ2Nocm9taXVtLWxpbnV4JwogICAg
ICAgICBlbGlmIHBsYXRmb3JtLmlzX21hYygpOgogICAgICAgICAgICAgcmV0dXJuICdtYWMnCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140141</attachid>
            <date>2012-05-03 18:26:29 -0700</date>
            <delta_ts>2012-05-03 19:02:57 -0700</delta_ts>
            <desc>Second attempt with a smaller patch</desc>
            <filename>bug-81467-20120503222628.patch</filename>
            <type>text/plain</type>
            <size>9604</size>
            <attacher name="Raphael Kubo da Costa (:rakuco)">rakuco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MDQ4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2MyYTM1YjUzY2IwZWZhMjVjNzBhNzgwOTA0MGNlMzkx
NjBjYmYwYy4uYTNiMmI0NmMxZjNiNTRhN2JjOTRhNWI5ZWVjZmZlMTRjZDRlYzFkNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3
IEBACiAyMDEyLTA1LTAzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9y
Zz4KIAorICAgICAgICB3ZWJraXRweTogUmVjb2duaXplIEZyZWVCU0QgYXMgYSB2YWxpZCBwbGF0
Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgx
NDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IFBsYXRmb3JtSW5mby5pc19mcmVlYnNkKCkgc28gdGhhdCB0cnlpbmcgdG8gdXNlIHdlYmtpdC1w
YXRjaAorICAgICAgICBvbiBGcmVlQlNEIGRvZXMgbm90IHJhaXNlIGFuICJ1bnJlY29nbml6ZWQg
cGxhdGZvcm0iIGV4Y2VwdGlvbi4KKworICAgICAgICBNb3N0IG9mIHRoaXMgcGF0Y2ggY29udGFp
bnMgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbWVudGlvbmVkCisgICAgICAgIG1ldGhvZCwgYXMg
Y3VycmVudGx5IHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaXMgbmVlZGVkIG9ubHkgb24KKyAgICAg
ICAgV2luZG93cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm8ucHk6CisgICAgICAgIChQbGF0Zm9ybUluZm8uX19pbml0X18pOgorICAgICAg
ICAoUGxhdGZvcm1JbmZvLmlzX2ZyZWVic2QpOgorICAgICAgICAoUGxhdGZvcm1JbmZvLl9kZXRl
cm1pbmVfb3NfbmFtZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mb19tb2NrLnB5OgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5mby5pc19mcmVl
YnNkKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvX3VuaXR0ZXN0LnB5OgorICAgICAgICAoZmFrZV9wbGF0Zm9ybSk6CisgICAgICAgIChmYWtl
X3BsYXRmb3JtLkZha2VQbGF0Zm9ybU1vZHVsZS5yZWxlYXNlKToKKyAgICAgICAgKFRlc3RQbGF0
Zm9ybUluZm8udGVzdF9yZWFsX2NvZGUpOgorICAgICAgICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0
X29zX25hbWVfYW5kX3dyYXBwZXJzKToKKyAgICAgICAgKFRlc3RQbGF0Zm9ybUluZm8udGVzdF9v
c192ZXJzaW9uKToKKyAgICAgICAgKFRlc3RQbGF0Zm9ybUluZm8udGVzdF9kaXNwbGF5X25hbWUp
OgorICAgICAgICAoVGVzdFBsYXRmb3JtSW5mby50ZXN0X3RvdGFsX2J5dGVzX21lbW9yeSk6Cisg
ICAgICAgIChUZXN0UGxhdGZvcm1JbmZvLnRlc3RfZnJlZV9ieXRlc19tZW1vcnkpOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weToKKyAgICAg
ICAgKFBvcnRGYWN0b3J5Ll9kZWZhdWx0X3BvcnQpOgorCisyMDEyLTA1LTAzICBSYXBoYWVsIEt1
Ym8gZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9yZz4KKwogICAgICAgICBbQ01ha2VdIFJld3Jp
dGUgRmluZENhaXJvLmNtYWtlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODQ4OTUKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkKaW5kZXggZGQ2ZDY4NDRjNDM1NjI1YjIyOWIyN2U2
MDcyZWRmMmJiOGY0MDNjNC4uMjJjYWZiYmVlZjJkNmYyMTE3NDhhYmRhOGQ5YmE4ZTk0OTE0MzAx
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRm
b3JtaW5mby5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxh
dGZvcm1pbmZvLnB5CkBAIC00OCw2ICs0OCw4IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3Qp
OgogICAgICAgICBzZWxmLm9zX25hbWUgPSBzZWxmLl9kZXRlcm1pbmVfb3NfbmFtZShzeXNfbW9k
dWxlLnBsYXRmb3JtKQogICAgICAgICBpZiBzZWxmLm9zX25hbWUgPT0gJ2xpbnV4JzoKICAgICAg
ICAgICAgIHNlbGYub3NfdmVyc2lvbiA9IHNlbGYuX2RldGVybWluZV9saW51eF92ZXJzaW9uKCkK
KyAgICAgICAgaWYgc2VsZi5vc19uYW1lID09ICdmcmVlYnNkJzoKKyAgICAgICAgICAgIHNlbGYu
b3NfdmVyc2lvbiA9IHBsYXRmb3JtX21vZHVsZS5yZWxlYXNlKCkKICAgICAgICAgaWYgc2VsZi5v
c19uYW1lLnN0YXJ0c3dpdGgoJ21hYycpOgogICAgICAgICAgICAgc2VsZi5vc192ZXJzaW9uID0g
c2VsZi5fZGV0ZXJtaW5lX21hY192ZXJzaW9uKHBsYXRmb3JtX21vZHVsZS5tYWNfdmVyKClbMF0p
CiAgICAgICAgIGlmIHNlbGYub3NfbmFtZS5zdGFydHN3aXRoKCd3aW4nKToKQEAgLTYyLDYgKzY0
LDkgQEAgY2xhc3MgUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVmIGlzX2xpbnV4KHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdsaW51eCcKIAorICAgIGRlZiBpc19m
cmVlYnNkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdmcmVlYnNkJwor
CiAgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKICAgICAgICAgIyBwbGF0Zm9ybS5wbGF0Zm9y
bSgpIHJldHVybnMgRGFyd2luIGluZm9ybWF0aW9uIGZvciBNYWMsIHdoaWNoIGlzIGp1c3QgY29u
ZnVzaW5nLgogICAgICAgICBpZiBzZWxmLmlzX21hYygpOgpAQCAtOTMsNiArOTgsOCBAQCBjbGFz
cyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiAnbGludXgnCiAgICAg
ICAgIGlmIHN5c19wbGF0Zm9ybSBpbiAoJ3dpbjMyJywgJ2N5Z3dpbicpOgogICAgICAgICAgICAg
cmV0dXJuICd3aW4nCisgICAgICAgIGlmIHN5c19wbGF0Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNk
Jyk6CisgICAgICAgICAgICByZXR1cm4gJ2ZyZWVic2QnCiAgICAgICAgIHJhaXNlIEFzc2VydGlv
bkVycm9yKCd1bnJlY29nbml6ZWQgcGxhdGZvcm0gc3RyaW5nICIlcyInICUgc3lzX3BsYXRmb3Jt
KQogCiAgICAgZGVmIF9kZXRlcm1pbmVfbWFjX3ZlcnNpb24oc2VsZiwgbWFjX3ZlcnNpb25fc3Ry
aW5nKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9w
bGF0Zm9ybWluZm9fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9wbGF0Zm9ybWluZm9fbW9jay5weQppbmRleCBiMmRmM2Y2MTIzYmU3ZjlmYTk3OWE5MzQ4NmNj
MTZlNGE5NmM2YmI0Li5jOTUzYWExODU1MWZkYmJhOGU0ZWJmOWM3NWU0MGUxMmYwZWU4NjA5IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3Bs
YXRmb3JtaW5mb19tb2NrLnB5CkBAIC00MSw2ICs0MSw5IEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUlu
Zm8ob2JqZWN0KToKICAgICBkZWYgaXNfd2luKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5v
c19uYW1lID09ICd3aW4nCiAKKyAgICBkZWYgaXNfZnJlZWJzZChzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYub3NfbmFtZSA9PSAnZnJlZWJzZCcKKwogICAgIGRlZiBkaXNwbGF5X25hbWUoc2Vs
Zik6CiAgICAgICAgIHJldHVybiAiTW9ja1BsYXRmb3JtIDEuMCIKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5p
dHRlc3QucHkKaW5kZXggYWM5Y2ZiMGQ3NDU1ZTg4OGE0ZWQ4ODFjZDI2MjZlNTMyY2I5MzcwMy4u
NWExZjg1ZmMzOWIyNzFmNTY3ZTZkNmVhNzU1MDg3YWY0MmVmNmVkYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZv
X3VuaXR0ZXN0LnB5CkBAIC00NSw3ICs0NSw3IEBAIGRlZiBmYWtlX3N5cyhwbGF0Zm9ybV9zdHI9
J2RhcndpbicsIHdpbmRvd3NfdmVyc2lvbl90dXBsZT1Ob25lKToKICAgICByZXR1cm4gRmFrZVN5
c01vZHVsZSgpCiAKIAotZGVmIGZha2VfcGxhdGZvcm0obWFjX3ZlcnNpb25fc3RyaW5nPScxMC42
LjMnKToKK2RlZiBmYWtlX3BsYXRmb3JtKG1hY192ZXJzaW9uX3N0cmluZz0nMTAuNi4zJywgcmVs
ZWFzZV9zdHJpbmc9J2JhcicpOgogCiAgICAgY2xhc3MgRmFrZVBsYXRmb3JtTW9kdWxlKG9iamVj
dCk6CiAgICAgICAgIGRlZiBtYWNfdmVyKHNlbGYpOgpAQCAtNTQsNiArNTQsOSBAQCBkZWYgZmFr
ZV9wbGF0Zm9ybShtYWNfdmVyc2lvbl9zdHJpbmc9JzEwLjYuMycpOgogICAgICAgICBkZWYgcGxh
dGZvcm0oc2VsZik6CiAgICAgICAgICAgICByZXR1cm4gJ2ZvbycKIAorICAgICAgICBkZWYgcmVs
ZWFzZShzZWxmKToKKyAgICAgICAgICAgIHJldHVybiByZWxlYXNlX3N0cmluZworCiAgICAgcmV0
dXJuIEZha2VQbGF0Zm9ybU1vZHVsZSgpCiAKIApAQCAtNzUsNyArNzgsNyBAQCBjbGFzcyBUZXN0
UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnROb3RF
cXVhbHMoaW5mby5vc19uYW1lLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoaW5m
by5vc192ZXJzaW9uLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoaW5mby5kaXNw
bGF5X25hbWUoKSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvLmlzX21hYygpIG9y
IGluZm8uaXNfd2luKCkgb3IgaW5mby5pc19saW51eCgpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoaW5mby5pc19tYWMoKSBvciBpbmZvLmlzX3dpbigpIG9yIGluZm8uaXNfbGludXgoKSBvciBp
bmZvLmlzX2ZyZWVic2QoKSkKIAogICAgICAgICBpZiBpbmZvLmlzX21hYygpOgogICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGluZm8udG90YWxfYnl0ZXNfbWVtb3J5KCkgPiAwKQpAQCAtODks
MjkgKzkyLDQxIEBAIGNsYXNzIFRlc3RQbGF0Zm9ybUluZm8odW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5pc19saW51eCgpKQogICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5p
c193aW4oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2ZyZWVic2QoKSkKIAog
ICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2xpbnV4MycpKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaW5mby5pc19saW51eCgpKQogICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGluZm8uaXNfbWFjKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc193aW4o
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2ZyZWVic2QoKSkKIAogICAgICAg
ICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2RhcndpbicpLCBmYWtlX3BsYXRmb3Jt
KCcxMC42LjMnKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5mby5vc19uYW1lLCAnbWFj
JykKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2xpbnV4KCkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShpbmZvLmlzX21hYygpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlu
Zm8uaXNfd2luKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19mcmVlYnNkKCkp
CiAKICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCd3aW4zMicsIHR1cGxl
KFs2LCAxLCA3NjAwXSkpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhpbmZvLm9zX25hbWUs
ICd3aW4nKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbGludXgoKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX21hYygpKQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUoaW5mby5pc193aW4oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmlzX2ZyZWVi
c2QoKSkKIAogICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2N5Z3dpbicp
LCBleGVjdXRpdmU9ZmFrZV9leGVjdXRpdmUoJzYuMS43NjAwJykpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGluZm8ub3NfbmFtZSwgJ3dpbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
aW5mby5pc19saW51eCgpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbWFjKCkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvLmlzX3dpbigpKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGluZm8uaXNfZnJlZWJzZCgpKQorCisgICAgICAgIGluZm8gPSBzZWxmLm1ha2Vf
aW5mbyhmYWtlX3N5cygnZnJlZWJzZDgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoaW5m
by5vc19uYW1lLCAnZnJlZWJzZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc19s
aW51eCgpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8uaXNfbWFjKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5pc193aW4oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGluZm8uaXNfZnJlZWJzZCgpKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlv
bkVycm9yLCBzZWxmLm1ha2VfaW5mbywgZmFrZV9zeXMoJ3ZtcycpKQogCkBAIC0xMjQsNiArMTM5
LDkgQEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2xpbnV4MicpKS5v
c192ZXJzaW9uLCAnbHVjaWQnKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFr
ZV9pbmZvKGZha2Vfc3lzKCdmcmVlYnNkOCcpLCBmYWtlX3BsYXRmb3JtKCcnLCAnOC4zLVBSRVJF
TEVBU0UnKSkub3NfdmVyc2lvbiwgJzguMy1QUkVSRUxFQVNFJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMoJ2ZyZWVic2Q5JyksIGZha2VfcGxhdGZv
cm0oJycsICc5LjAtUkVMRUFTRScpKS5vc192ZXJzaW9uLCAnOS4wLVJFTEVBU0UnKQorCiAgICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBzZWxmLm1ha2VfaW5mbywgZmFr
ZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzUsIDAsIDEyMzRdKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCd3aW4zMicsIHR1cGxlKFs2LCAyLCAxMjM0
XSkpKS5vc192ZXJzaW9uLCAnZnV0dXJlJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2Vs
Zi5tYWtlX2luZm8oZmFrZV9zeXMoJ3dpbjMyJywgdHVwbGUoWzYsIDEsIDc2MDBdKSkpLm9zX3Zl
cnNpb24sICc3c3AwJykKQEAgLTE0Niw2ICsxNjQsOSBAQCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZv
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vf
c3lzKCdsaW51eDInKSkKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoaW5mby5kaXNwbGF5
X25hbWUoKSwgJycpCiAKKyAgICAgICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdm
cmVlYnNkOScpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFscyhpbmZvLmRpc3BsYXlfbmFt
ZSgpLCAnJykKKwogICAgIGRlZiB0ZXN0X3RvdGFsX2J5dGVzX21lbW9yeShzZWxmKToKICAgICAg
ICAgaW5mbyA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdkYXJ3aW4nKSwgZmFrZV9wbGF0Zm9y
bSgnMTAuNi4zJyksIGZha2VfZXhlY3V0aXZlKCcxMjM0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGluZm8udG90YWxfYnl0ZXNfbWVtb3J5KCksIDEyMzQpCkBAIC0xNTYsNiArMTc3LDkg
QEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGlu
Zm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5cygnbGludXgyJykpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGluZm8udG90YWxfYnl0ZXNfbWVtb3J5KCksIE5vbmUpCiAKKyAgICAgICAgaW5m
byA9IHNlbGYubWFrZV9pbmZvKGZha2Vfc3lzKCdmcmVlYnNkOScpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhpbmZvLnRvdGFsX2J5dGVzX21lbW9yeSgpLCBOb25lKQorCiAgICAgZGVmIHRl
c3RfZnJlZV9ieXRlc19tZW1vcnkoc2VsZik6CiAgICAgICAgIHZtc3RhdF9vdXRwdXQgPSAoIk1h
Y2ggVmlydHVhbCBNZW1vcnkgU3RhdGlzdGljczogKHBhZ2Ugc2l6ZSBvZiA0MDk2IGJ5dGVzKVxu
IgogICAgICAgICAgICAgICAgICAgICAgICAgICJQYWdlcyBmcmVlOiAgICAgICAgICAgICAgICAg
ICAgICAgIDEuXG4iCkBAIC0xNjksNiArMTkzLDkgQEAgY2xhc3MgVGVzdFBsYXRmb3JtSW5mbyh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGluZm8gPSBzZWxmLm1ha2VfaW5mbyhmYWtlX3N5
cygnbGludXgyJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGluZm8uZnJlZV9ieXRlc19t
ZW1vcnkoKSwgTm9uZSkKIAorICAgICAgICBpbmZvID0gc2VsZi5tYWtlX2luZm8oZmFrZV9zeXMo
J2ZyZWVic2Q5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGluZm8uZnJlZV9ieXRlc19t
ZW1vcnkoKSwgTm9uZSkKKwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0
ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9mYWN0b3J5LnB5CmluZGV4IGIzYjA1Y2VhMGE3NzA4MzIzOGYwODI0NjJkMDNmMmJiOWNi
ODQyNjQuLjlmNWRmN2M3ZTQ5YjBjMmZiZTM0MDAwYjg1MGM0Yzk2MzUyYzBhN2IgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3RvcnkucHkK
QEAgLTg2LDcgKzg2LDcgQEAgY2xhc3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKIAogICAgIGRlZiBf
ZGVmYXVsdF9wb3J0KHNlbGYsIG9wdGlvbnMpOgogICAgICAgICBwbGF0Zm9ybSA9IHNlbGYuX2hv
c3QucGxhdGZvcm0KLSAgICAgICAgaWYgcGxhdGZvcm0uaXNfbGludXgoKToKKyAgICAgICAgaWYg
cGxhdGZvcm0uaXNfbGludXgoKSBvciBwbGF0Zm9ybS5pc19mcmVlYnNkKCk6CiAgICAgICAgICAg
ICByZXR1cm4gJ2Nocm9taXVtLWxpbnV4JwogICAgICAgICBlbGlmIHBsYXRmb3JtLmlzX21hYygp
OgogICAgICAgICAgICAgcmV0dXJuICdtYWMnCg==
</data>
<flag name="review"
          id="145922"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>