<?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>133663</bug_id>
          
          <creation_ts>2014-06-09 16:26:05 -0700</creation_ts>
          <short_desc>old-run-webkit-tests: Create CoreSimulator device on demand and find it by name</short_desc>
          <delta_ts>2014-06-10 17:06:46 -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>iPhone / iPad</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Farler">dfarler</reporter>
          <assigned_to name="David Farler">dfarler</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1014271</commentid>
    <comment_count>0</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-09 16:26:05 -0700</bug_when>
    <thetext>As a short-term solution, since CoreSimulator requires a device UDID (a UUID) to specified for nearly all device actions, we need a simple (but not full-fledged PerlObjC) wrapper around CoreSimulator to:

- create an iOS sim device of a particular type and runtime (SDK)
- delete an iOS sim device
- launch an app on a particular sim device
- return a list of currently installed device (read plists in the current user&apos;s simulator device directory)

and then pass the UDID to the distributed session/install notification.

sub createiOSSimulatorDevice(name, typeId, runtimeId) -&gt; void
sub deleteiOSSimulatorDevice(udid) -&gt; void
sub iOSSimulatorDevices() -&gt; [ { udid: device dict } ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014464</commentid>
    <comment_count>1</comment_count>
      <attachid>232802</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 12:08:37 -0700</bug_when>
    <thetext>Created attachment 232802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014465</commentid>
    <comment_count>2</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 12:08:56 -0700</bug_when>
    <thetext>OK, one more time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014486</commentid>
    <comment_count>3</comment_count>
      <attachid>232802</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-06-10 12:57:31 -0700</bug_when>
    <thetext>Comment on attachment 232802
Patch

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

r=me

&gt; Tools/Scripts/old-run-webkit-tests:1390
&gt; -    my $deviceName = architecture() eq &apos;i386&apos; ? &quot;iPhone 5&quot; : &quot;iPhone 5s&quot;;
&gt; +    my $deviceName = architecture() eq &apos;i386&apos; ? &quot;iPhone 5 WebKit Tester&quot; : &quot;iPhone 5s WebKit Tester&quot;;
&gt; +
&gt; +    my $deviceType = &quot;com.apple.CoreSimulator.SimDeviceType.iPhone-5&quot;;
&gt; +    $deviceType .= &quot;s&quot; if architecture() eq &quot;x86_64&quot;;

Nit: It might be clearer to just make this an if/else statement:

    my $deviceName = &quot;iPhone 5 WebKit Tester&quot;;
    my $deviceType = &quot;com.apple.CoreSimulator.SimDeviceType.iPhone-5&quot;;
    if (architecture() eq &apos;x86_64&apos;) {
        $deviceName = &quot;iPhone 5s WebKit Tester&quot;;
        $deviceType = &quot;com.apple.CoreSimulator.SimDeviceType.iPhone-5s&quot;;
    }

&gt; Tools/Scripts/webkitdirs.pm:1122
&gt; +    return &quot;$ENV{HOME}/Library/Developer/CoreSimulator/Devices&quot;;

Should this be $ENV{CFFIXED_USER_HOME} instead?

&gt; Tools/Scripts/webkitdirs.pm:1127
&gt; +    use Foundation;

I&apos;m hoping this won&apos;t be evaluated until the method is called, since this could break non-Mac users of the script.

&gt; Tools/Scripts/webkitdirs.pm:1166
&gt; +    my $tries = 5;
&gt; +    while (1) {
&gt; +        my @devices = iOSSimulatorDevices();
&gt; +        foreach my $device (@devices) {
&gt; +            return $device if $device-&gt;{name} eq $name and $device-&gt;{deviceType} eq $deviceTypeId and $device-&gt;{runtime} eq $runtimeId;
&gt; +        }
&gt; +        sleep 5;
&gt; +        $tries -= 1;
&gt; +        if ($tries &lt;= 0) {
&gt; +            die &quot;Device $name $deviceTypeId $runtimeId wasn&apos;t found in &quot; . iOSSimulatorDevicesPath();
&gt; +        }
&gt; +    }

This would be simpler with a for() loop that just falls through:

    for (my $tries = 5; $tries &gt; 0; $tries--) {
        [...]
        sleep 5;
    }

    die &quot;Device $name $deviceTypeId $runtimeId wasn&apos;t found in &quot; . iOSSimulatorDevicesPath();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014491</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-06-10 13:11:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 232802 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232802&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1127
&gt; &gt; +    use Foundation;
&gt; 
&gt; I&apos;m hoping this won&apos;t be evaluated until the method is called, since this could break non-Mac users of the script.

Windows and EFL bots are failing because &quot;use Foundation;&quot; is evaluated at parse time, not run time:

https://webkit-queues.appspot.com/patch/232802

Failed to run &quot;[&apos;Tools/Scripts/build-webkit&apos;, &apos;--release&apos;, &apos;--efl&apos;, &apos;--update-efl&apos;, &apos;--no-webkit1&apos;, &apos;--makeargs=&quot;-j8&quot;&apos;]&quot; exit_code: 2
Can&apos;t locate Foundation.pm in @INC (@INC contains: /mnt/eflews/git/webkit/Tools/Scripts /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /mnt/eflews/git/webkit/Tools/Scripts/webkitdirs.pm line 1127.
BEGIN failed--compilation aborted at /mnt/eflews/git/webkit/Tools/Scripts/webkitdirs.pm line 1127.

You&apos;ll have to use a Perl trick so that you only load Foundation at runtime; I think you either have to use an eval{} block and/or change it to a &quot;require&quot; statement.  I think &quot;man perlmod&quot; has the details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014500</commentid>
    <comment_count>5</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 13:31:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 232802 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232802&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitdirs.pm:1127
&gt; &gt; &gt; +    use Foundation;
&gt; &gt; 
&gt; &gt; I&apos;m hoping this won&apos;t be evaluated until the method is called, since this could break non-Mac users of the script.
&gt; 
&gt; Windows and EFL bots are failing because &quot;use Foundation;&quot; is evaluated at parse time, not run time:
&gt; 
&gt; https://webkit-queues.appspot.com/patch/232802
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/build-webkit&apos;, &apos;--release&apos;, &apos;--efl&apos;, &apos;--update-efl&apos;, &apos;--no-webkit1&apos;, &apos;--makeargs=&quot;-j8&quot;&apos;]&quot; exit_code: 2
&gt; Can&apos;t locate Foundation.pm in @INC (@INC contains: /mnt/eflews/git/webkit/Tools/Scripts /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /mnt/eflews/git/webkit/Tools/Scripts/webkitdirs.pm line 1127.
&gt; BEGIN failed--compilation aborted at /mnt/eflews/git/webkit/Tools/Scripts/webkitdirs.pm line 1127.
&gt; 
&gt; You&apos;ll have to use a Perl trick so that you only load Foundation at runtime; I think you either have to use an eval{} block and/or change it to a &quot;require&quot; statement.  I think &quot;man perlmod&quot; has the details.

Ah, I forgot that `use` is implicitly in the BEGIN block. The documentation recommends eval &quot;require Foundation&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014502</commentid>
    <comment_count>6</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 13:34:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 232802 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232802&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:1390
&gt; &gt; -    my $deviceName = architecture() eq &apos;i386&apos; ? &quot;iPhone 5&quot; : &quot;iPhone 5s&quot;;
&gt; &gt; +    my $deviceName = architecture() eq &apos;i386&apos; ? &quot;iPhone 5 WebKit Tester&quot; : &quot;iPhone 5s WebKit Tester&quot;;
&gt; &gt; +
&gt; &gt; +    my $deviceType = &quot;com.apple.CoreSimulator.SimDeviceType.iPhone-5&quot;;
&gt; &gt; +    $deviceType .= &quot;s&quot; if architecture() eq &quot;x86_64&quot;;
&gt; 
&gt; Nit: It might be clearer to just make this an if/else statement:
&gt; 
&gt;     my $deviceName = &quot;iPhone 5 WebKit Tester&quot;;
&gt;     my $deviceType = &quot;com.apple.CoreSimulator.SimDeviceType.iPhone-5&quot;;
&gt;     if (architecture() eq &apos;x86_64&apos;) {
&gt;         $deviceName = &quot;iPhone 5s WebKit Tester&quot;;
&gt;         $deviceType = &quot;com.apple.CoreSimulator.SimDeviceType.iPhone-5s&quot;;
&gt;     }

Yep, that&apos;s much clearer.

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1122
&gt; &gt; +    return &quot;$ENV{HOME}/Library/Developer/CoreSimulator/Devices&quot;;
&gt; 
&gt; Should this be $ENV{CFFIXED_USER_HOME} instead?

I&apos;m not familiar with CFFIXED_USER_HOME - where is that defined?

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1127
&gt; &gt; +    use Foundation;
&gt; 
&gt; I&apos;m hoping this won&apos;t be evaluated until the method is called, since this could break non-Mac users of the script.

You were right about this :) . I&apos;ll fix it in a subsequent patch.

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:1166
&gt; &gt; +    my $tries = 5;
&gt; &gt; +    while (1) {
&gt; &gt; +        my @devices = iOSSimulatorDevices();
&gt; &gt; +        foreach my $device (@devices) {
&gt; &gt; +            return $device if $device-&gt;{name} eq $name and $device-&gt;{deviceType} eq $deviceTypeId and $device-&gt;{runtime} eq $runtimeId;
&gt; &gt; +        }
&gt; &gt; +        sleep 5;
&gt; &gt; +        $tries -= 1;
&gt; &gt; +        if ($tries &lt;= 0) {
&gt; &gt; +            die &quot;Device $name $deviceTypeId $runtimeId wasn&apos;t found in &quot; . iOSSimulatorDevicesPath();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; This would be simpler with a for() loop that just falls through:
&gt; 
&gt;     for (my $tries = 5; $tries &gt; 0; $tries--) {
&gt;         [...]
&gt;         sleep 5;
&gt;     }
&gt; 
&gt;     die &quot;Device $name $deviceTypeId $runtimeId wasn&apos;t found in &quot; . iOSSimulatorDevicesPath();

Good call. I&apos;ll switch it over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014510</commentid>
    <comment_count>7</comment_count>
      <attachid>232811</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 13:47:57 -0700</bug_when>
    <thetext>Created attachment 232811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014521</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-06-10 14:17:59 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 232802 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232802&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitdirs.pm:1122
&gt; &gt; &gt; +    return &quot;$ENV{HOME}/Library/Developer/CoreSimulator/Devices&quot;;
&gt; &gt; 
&gt; &gt; Should this be $ENV{CFFIXED_USER_HOME} instead?
&gt; 
&gt; I&apos;m not familiar with CFFIXED_USER_HOME - where is that defined?

It&apos;s a path that the iOS Simulator uses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014523</commentid>
    <comment_count>9</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 14:19:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (From update of attachment 232802 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=232802&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/Scripts/webkitdirs.pm:1122
&gt; &gt; &gt; &gt; +    return &quot;$ENV{HOME}/Library/Developer/CoreSimulator/Devices&quot;;
&gt; &gt; &gt; 
&gt; &gt; &gt; Should this be $ENV{CFFIXED_USER_HOME} instead?
&gt; &gt; 
&gt; &gt; I&apos;m not familiar with CFFIXED_USER_HOME - where is that defined?
&gt; 
&gt; It&apos;s a path that the iOS Simulator uses.

Ah, no, the simulator device set are always drawn from the host user&apos;s home directory unless manually specified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014526</commentid>
    <comment_count>10</comment_count>
      <attachid>232811</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-06-10 14:23:19 -0700</bug_when>
    <thetext>Comment on attachment 232811
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014591</commentid>
    <comment_count>11</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-06-10 17:06:46 -0700</bug_when>
    <thetext>Committed r169783: &lt;http://trac.webkit.org/changeset/169783&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232802</attachid>
            <date>2014-06-10 12:08:37 -0700</date>
            <delta_ts>2014-06-10 13:34:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133663-20140610120812.patch</filename>
            <type>text/plain</type>
            <size>5726</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDk0ZmI3ZmYyNWYyNDFjZGFlMmU4ZDJkNDNmNmViMzhh
YTEyZWY2NS4uM2I2NTlkY2IzNTc5YzIzZmY1MDUxYjc0NjZmZWEzMzg3ZjIzYzlmNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE0LTA2LTEwICBEYXZpZCBGYXJsZXIgIDxkZmFybGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBvbGQtcnVuLXdlYmtpdC10ZXN0czogQ3JlYXRlIENvcmVTaW11bGF0b3IgZGV2aWNlIG9u
IGRlbWFuZCBhbmQgZmluZCBpdCBieSBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHM6CisgICAg
ICAgIChpbnN0YWxsQW5kTGF1bmNoRHVtcFRvb2xBcHBVc2luZ05vdGlmaWNhdGlvbik6CisgICAg
ICAgIC0gUmVtb3ZlIG9ic29sZXRlIG5vdGlmaWNhdGlvbiBrZXlzCisgICAgICAgIC0gS2V5IG9m
ZiBvZiBtYW5kYXRvcnkgZGV2aWNlIFVESUQgKGEgVVVJRCkKKyAgICAgICAgLSBDcmVhdGUgYSBk
ZXZpY2Ugb24gZGVtYW5kIHZpYSBDb3JlU2ltdWxhdG9yIGlmIG5lY2Vzc2FyeQorICAgICAgICAt
LSBHcmFiIHRoZSBVRElEIGZyb20gdGhlIGNyZWF0ZWQgZGV2aWNlIHBsaXN0LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKGlPU1NpbXVsYXRvckRldmljZXNQYXRo
KTogQWRkZWQKKyAgICAgICAgKGlPU1NpbXVsYXRvckRldmljZXMpOiBBZGRlZAorICAgICAgICAo
Y3JlYXRlaU9TU2ltdWxhdG9yRGV2aWNlKTogQWRkZWQKKyAgICAgICAgKGRlbGV0ZWlPU1NpbXVs
YXRvckRldmljZSk6IEFkZGVkCisKIDIwMTQtMDUtMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXhlZCB0aGUgV2ViS2l0VGVzdFJ1bm5lciBidWlsZCBhZnRl
ciByMTY5NDUyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0
cyBiL1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKaW5kZXggYTdiNjkxMzYyY2Ey
NmQzODJiZDVmOTg3MTRjYmEyZDc2YjA2NTczNy4uNWFlN2UxZmUzZTdjNzdjMTcyZjI5ODBmZmJl
Y2EyNmE4NzBiNDZjMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10
ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCkBAIC0xMzg0LDEw
ICsxMzg0LDI3IEBAIHN1YiBpbnN0YWxsQW5kTGF1bmNoRHVtcFRvb2xBcHBVc2luZ05vdGlmaWNh
dGlvbigkJCkKICAgICAgICAgcmV0dXJuICRyZXN1bHQtPmF1dG9yZWxlYXNlKCk7CiAgICAgfTsK
IAotICAgIG15ICRkZXZpY2VOYW1lID0gYXJjaGl0ZWN0dXJlKCkgZXEgJ2kzODYnID8gImlQaG9u
ZSA1IiA6ICJpUGhvbmUgNXMiOworICAgIG15ICRkZXZpY2VOYW1lID0gYXJjaGl0ZWN0dXJlKCkg
ZXEgJ2kzODYnID8gImlQaG9uZSA1IFdlYktpdCBUZXN0ZXIiIDogImlQaG9uZSA1cyBXZWJLaXQg
VGVzdGVyIjsKKworICAgIG15ICRkZXZpY2VUeXBlID0gImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9y
LlNpbURldmljZVR5cGUuaVBob25lLTUiOworICAgICRkZXZpY2VUeXBlIC49ICJzIiBpZiBhcmNo
aXRlY3R1cmUoKSBlcSAieDg2XzY0IjsKKworICAgIGNob21wKG15ICRzZGtWZXJzaW9uID0gYHhj
cnVuIC0tc2RrIGlwaG9uZXNpbXVsYXRvciAtLXNob3ctc2RrLXZlcnNpb25gKTsKKyAgICAkc2Rr
VmVyc2lvbiA9fiBzL1wuLy0vOworCisgICAgbXkgJHJ1bnRpbWUgPSAiY29tLmFwcGxlLkNvcmVT
aW11bGF0b3IuU2ltUnVudGltZS5pT1MtJHNka1ZlcnNpb24iOwogCi0gICAgbXkgJHNka1Jvb3Qg
PSBgeGNydW4gLS1zZGsgaXBob25lc2ltdWxhdG9yIC0tc2hvdy1zZGstcGF0aGA7Ci0gICAgY2hv
bXAgJHNka1Jvb3Q7CisgICAgbXkgQGRldmljZXMgPSBpT1NTaW11bGF0b3JEZXZpY2VzKCk7Cisg
ICAgbXkgJGRldmljZSA9IChncmVwIHsKKyAgICAgICAgJF8tPntuYW1lfSBlcSAkZGV2aWNlTmFt
ZSBhbmQgJF8tPntydW50aW1lfSBlcSAkcnVudGltZSBhbmQgJF8tPntkZXZpY2VUeXBlfSBlcSAk
ZGV2aWNlVHlwZTsKKyAgICB9IEBkZXZpY2VzKVswXTsKKworICAgIGlmIChub3QgJGRldmljZSkg
eworICAgICAgICBwcmludCAiQ3JlYXRpbmcgc2ltdWxhdG9yIGRldmljZTogJGRldmljZU5hbWVc
biI7CisgICAgICAgICRkZXZpY2UgPSBjcmVhdGVpT1NTaW11bGF0b3JEZXZpY2UoJGRldmljZU5h
bWUsICRkZXZpY2VUeXBlLCAkcnVudGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnQg
IkZvdW5kIHNpbXVsYXRvciBkZXZpY2Ugd2l0aCBwcm9wZXJ0aWVzOiAiIC4gRHVtcGVyKCRkZXZp
Y2UpOworICAgIH0KIAogICAgIG15ICRpZGVudGlmaWVyID0gaU9TRHVtcFRvb2xBcHBJZGVudGlm
aWVyKCk7CiAgICAgbXkgJGFwcGxpY2F0aW9uUGF0aDsKQEAgLTEzOTgsMTggKzE0MTUsMTMgQEAg
c3ViIGluc3RhbGxBbmRMYXVuY2hEdW1wVG9vbEFwcFVzaW5nTm90aWZpY2F0aW9uKCQkKQogICAg
ICAgICAkYXBwbGljYXRpb25QYXRoID0gIiRwcm9kdWN0RGlyL0R1bXBSZW5kZXJUcmVlLmFwcCI7
CiAgICAgfQogCi0gICAgY2hvbXAobXkgJHNka1ZlcnNpb24gPSBgeGNydW4gLS1zZGsgaXBob25l
c2ltdWxhdG9yIC0tc2hvdy1zZGstdmVyc2lvbmApOwotCiAgICAgbXkgJGRpY3QgPSB7CiAgICAg
ICAgIGFwcGxpY2F0aW9uQXJndW1lbnRzID0+ICYkbWFrZU5TQXJyYXlGcm9tQXJyYXkoJGFyZ3Mp
LAogICAgICAgICBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0+ICYkbWFrZU5TRGljdGlvbmFyeUZy
b21IYXNoKCRjbGVhbkVudiksCiAgICAgICAgIGFwcGxpY2F0aW9uSWRlbnRpZmllciA9PiBOU1N0
cmluZy0+c3RyaW5nV2l0aENTdHJpbmdfKCRpZGVudGlmaWVyKSwKICAgICAgICAgYXBwbGljYXRp
b25QYXRoID0+IE5TU3RyaW5nLT5zdHJpbmdXaXRoQ1N0cmluZ18oJGFwcGxpY2F0aW9uUGF0aCks
Ci0gICAgICAgIGRldmljZUluZm8gPT4gTlNTdHJpbmctPnN0cmluZ1dpdGhDU3RyaW5nXygkZGV2
aWNlTmFtZSksCi0gICAgICAgIHJ1bnRpbWVJZGVudGlmaWVyID0+IE5TU3RyaW5nLT5zdHJpbmdX
aXRoQ1N0cmluZ18oJHNka1ZlcnNpb24pLAotICAgICAgICBzZXNzaW9uT3duZXIgPT4gTlNTdHJp
bmctPnN0cmluZ1dpdGhDU3RyaW5nXygkcHJvZ3JhbU5hbWUpLAorICAgICAgICBkZXZpY2VVRElE
ID0+IE5TU3RyaW5nLT5zdHJpbmdXaXRoQ1N0cmluZ18oJGRldmljZS0+e1VESUR9KSwKICAgICAg
ICAgc2Vzc2lvblVVSUQgPT4gTlNTdHJpbmctPnN0cmluZ1dpdGhDU3RyaW5nXyhzaW11bGF0b3JT
ZXNzaW9uVVVJRCgpKSwKLSAgICAgICAgc2RrUm9vdCA9PiBOU1N0cmluZy0+c3RyaW5nV2l0aENT
dHJpbmdfKCRzZGtSb290KSwKICAgICB9OwogICAgICRpUGhvbmVTaW11bGF0b3JOb3RpZmljYXRp
b24tPnBvc3RTdGFydFNlc3Npb25Ob3RpZmljYXRpb24oJGRpY3QpOwogCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0K
aW5kZXggZDZkNGQzMTQ0YzIxZThmMDMwZTI4MjA2NWMyN2RkMDJmNGJlYWRlYy4uY2MwMDllMGVl
YmVmNWZhZTdhM2JhMjU5NWM5YTVhMDBlODVhZWI4ZSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQpAQCAtMTEx
Nyw2ICsxMTE3LDYxIEBAIHN1YiBpc0FwcGxlV2luV2ViS2l0KCkKICAgICByZXR1cm4gKGlzQ3ln
d2luKCkgfHwgaXNXaW5kb3dzKCkpICYmICFpc1dpbkNhaXJvKCkgJiYgIWlzR3RrKCkgJiYgIWlz
V2luQ0UoKTsKIH0KIAorc3ViIGlPU1NpbXVsYXRvckRldmljZXNQYXRoCit7CisgICAgcmV0dXJu
ICIkRU5We0hPTUV9L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvRGV2aWNlcyI7Cit9
CisKK3N1YiBpT1NTaW11bGF0b3JEZXZpY2VzCit7CisgICAgdXNlIEZvdW5kYXRpb247CisgICAg
bXkgJGRldmljZXNQYXRoID0gaU9TU2ltdWxhdG9yRGV2aWNlc1BhdGgoKTsKKyAgICBvcGVuZGly
KERFVklDRVMsICRkZXZpY2VzUGF0aCk7CisgICAgbXkgQHVkaWRzID0gZ3JlcCB7CisgICAgICAg
ICRfID1+IG0vWzAtOUEtRl17OH0tKFswLTlBLUZdezR9LSl7M31bMC05QS1GXXsxMn0vOworICAg
IH0gcmVhZGRpcihERVZJQ0VTKTsKKyAgICBjbG9zZShERVZJQ0VTKTsKKworICAgIG15IEBkZXZp
Y2VzID0gbWFwIHsKKyAgICAgICAgRm91bmRhdGlvbjo6cGVybFJlZkZyb21PYmplY3RSZWYoTlNE
aWN0aW9uYXJ5LT5kaWN0aW9uYXJ5V2l0aENvbnRlbnRzT2ZGaWxlXygiJGRldmljZXNQYXRoLyRf
L2RldmljZS5wbGlzdCIpKTsKKyAgICB9IEB1ZGlkczsKKworICAgIHJldHVybiBAZGV2aWNlczsK
K30KKworc3ViIGNyZWF0ZWlPU1NpbXVsYXRvckRldmljZQoreworICAgIG15ICRuYW1lID0gc2hp
ZnQ7CisgICAgbXkgJGRldmljZVR5cGVJZCA9IHNoaWZ0OworICAgIG15ICRydW50aW1lSWQgPSBz
aGlmdDsKKworICAgIG15ICRjcmVhdGVkID0gc3lzdGVtKCJ4Y3J1biIsICItLXNkayIsICJpcGhv
bmVzaW11bGF0b3IiLCAic2ltY3RsIiwgImNyZWF0ZSIsICRuYW1lLCAkZGV2aWNlVHlwZUlkLCAk
cnVudGltZUlkKSA9PSAwOworICAgIGRpZSAiQ291bGRuJ3QgY3JlYXRlIHNpbXVsYXRvciBkZXZp
Y2U6ICRuYW1lICRkZXZpY2VUeXBlSWQgJHJ1bnRpbWVJZCIgaWYgbm90ICRjcmVhdGVkOworCisg
ICAgc3lzdGVtKCJ4Y3J1biIsICItLXNkayIsICJpcGhvbmVzaW11bGF0b3IiLCAic2ltY3RsIiwg
Imxpc3QiKTsKKworCisgICAgcHJpbnQgIldhaXRpbmcgZm9yIGRldmljZSB0byBiZSBjcmVhdGVk
IC4uLiI7CisgICAgbXkgJHRyaWVzID0gNTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSBA
ZGV2aWNlcyA9IGlPU1NpbXVsYXRvckRldmljZXMoKTsKKyAgICAgICAgZm9yZWFjaCBteSAkZGV2
aWNlIChAZGV2aWNlcykgeworICAgICAgICAgICAgcmV0dXJuICRkZXZpY2UgaWYgJGRldmljZS0+
e25hbWV9IGVxICRuYW1lIGFuZCAkZGV2aWNlLT57ZGV2aWNlVHlwZX0gZXEgJGRldmljZVR5cGVJ
ZCBhbmQgJGRldmljZS0+e3J1bnRpbWV9IGVxICRydW50aW1lSWQ7CisgICAgICAgIH0KKyAgICAg
ICAgc2xlZXAgNTsKKyAgICAgICAgJHRyaWVzIC09IDE7CisgICAgICAgIGlmICgkdHJpZXMgPD0g
MCkgeworICAgICAgICAgICAgZGllICJEZXZpY2UgJG5hbWUgJGRldmljZVR5cGVJZCAkcnVudGlt
ZUlkIHdhc24ndCBmb3VuZCBpbiAiIC4gaU9TU2ltdWxhdG9yRGV2aWNlc1BhdGgoKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworc3ViIGRlbGV0ZWlPU1NpbXVsYXRvckRldmljZQoreworICAgIG15
ICR1ZGlkID0gc2hpZnQ7CisgICAgcmV0dXJuIHN5c3RlbSgieGNydW4iLCAiLS1zZGsiLCAiaXBo
b25lc2ltdWxhdG9yIiwgInNpbWN0bCIsICJkZWxldGUiLCAkdWRpZCk7Cit9CisKIHN1YiB3aWxs
VXNlSU9TRGV2aWNlU0RLV2hlbkJ1aWxkaW5nKCkKIHsKICAgICByZXR1cm4geGNvZGVTREtQbGF0
Zm9ybU5hbWUoKSBlcSAiaXBob25lb3MiOwo=
</data>
<flag name="review"
          id="257294"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232811</attachid>
            <date>2014-06-10 13:47:57 -0700</date>
            <delta_ts>2014-06-10 14:23:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133663-20140610134732.patch</filename>
            <type>text/plain</type>
            <size>5753</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NDU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDk0ZmI3ZmYyNWYyNDFjZGFlMmU4ZDJkNDNmNmViMzhh
YTEyZWY2NS4uM2I2NTlkY2IzNTc5YzIzZmY1MDUxYjc0NjZmZWEzMzg3ZjIzYzlmNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE0LTA2LTEwICBEYXZpZCBGYXJsZXIgIDxkZmFybGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBvbGQtcnVuLXdlYmtpdC10ZXN0czogQ3JlYXRlIENvcmVTaW11bGF0b3IgZGV2aWNlIG9u
IGRlbWFuZCBhbmQgZmluZCBpdCBieSBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHM6CisgICAg
ICAgIChpbnN0YWxsQW5kTGF1bmNoRHVtcFRvb2xBcHBVc2luZ05vdGlmaWNhdGlvbik6CisgICAg
ICAgIC0gUmVtb3ZlIG9ic29sZXRlIG5vdGlmaWNhdGlvbiBrZXlzCisgICAgICAgIC0gS2V5IG9m
ZiBvZiBtYW5kYXRvcnkgZGV2aWNlIFVESUQgKGEgVVVJRCkKKyAgICAgICAgLSBDcmVhdGUgYSBk
ZXZpY2Ugb24gZGVtYW5kIHZpYSBDb3JlU2ltdWxhdG9yIGlmIG5lY2Vzc2FyeQorICAgICAgICAt
LSBHcmFiIHRoZSBVRElEIGZyb20gdGhlIGNyZWF0ZWQgZGV2aWNlIHBsaXN0LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKGlPU1NpbXVsYXRvckRldmljZXNQYXRo
KTogQWRkZWQKKyAgICAgICAgKGlPU1NpbXVsYXRvckRldmljZXMpOiBBZGRlZAorICAgICAgICAo
Y3JlYXRlaU9TU2ltdWxhdG9yRGV2aWNlKTogQWRkZWQKKyAgICAgICAgKGRlbGV0ZWlPU1NpbXVs
YXRvckRldmljZSk6IEFkZGVkCisKIDIwMTQtMDUtMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXhlZCB0aGUgV2ViS2l0VGVzdFJ1bm5lciBidWlsZCBhZnRl
ciByMTY5NDUyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0
cyBiL1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKaW5kZXggYTdiNjkxMzYyY2Ey
NmQzODJiZDVmOTg3MTRjYmEyZDc2YjA2NTczNy4uYjA3MTQ2N2M1ODJlOWJhZWI2ZThjODZhNTBl
OTFlODFmODZjMGZhOSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10
ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCkBAIC0xMzg0LDEw
ICsxMzg0LDMwIEBAIHN1YiBpbnN0YWxsQW5kTGF1bmNoRHVtcFRvb2xBcHBVc2luZ05vdGlmaWNh
dGlvbigkJCkKICAgICAgICAgcmV0dXJuICRyZXN1bHQtPmF1dG9yZWxlYXNlKCk7CiAgICAgfTsK
IAotICAgIG15ICRkZXZpY2VOYW1lID0gYXJjaGl0ZWN0dXJlKCkgZXEgJ2kzODYnID8gImlQaG9u
ZSA1IiA6ICJpUGhvbmUgNXMiOworICAgIG15ICRkZXZpY2VOYW1lID0gImlQaG9uZSA1IFdlYktp
dCBUZXN0ZXIiOworICAgIG15ICRkZXZpY2VUeXBlID0gImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9y
LlNpbURldmljZVR5cGUuaVBob25lLTUiOworCisgICAgaWYgKGFyY2hpdGVjdHVyZSgpIGVxICd4
ODZfNjQnKSB7CisgICAgICAgICRkZXZpY2VOYW1lID0gImlQaG9uZSA1cyBXZWJLaXQgVGVzdGVy
IjsKKyAgICAgICAgJGRldmljZVR5cGUgPSAiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2
aWNlVHlwZS5pUGhvbmUtNXMiOworICAgIH0KKworICAgIGNob21wKG15ICRzZGtWZXJzaW9uID0g
YHhjcnVuIC0tc2RrIGlwaG9uZXNpbXVsYXRvciAtLXNob3ctc2RrLXZlcnNpb25gKTsKKyAgICAk
c2RrVmVyc2lvbiA9fiBzL1wuLy0vOworCisgICAgbXkgJHJ1bnRpbWUgPSAiY29tLmFwcGxlLkNv
cmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtJHNka1ZlcnNpb24iOwogCi0gICAgbXkgJHNka1Jv
b3QgPSBgeGNydW4gLS1zZGsgaXBob25lc2ltdWxhdG9yIC0tc2hvdy1zZGstcGF0aGA7Ci0gICAg
Y2hvbXAgJHNka1Jvb3Q7CisgICAgbXkgQGRldmljZXMgPSBpT1NTaW11bGF0b3JEZXZpY2VzKCk7
CisgICAgbXkgJGRldmljZSA9IChncmVwIHsKKyAgICAgICAgJF8tPntuYW1lfSBlcSAkZGV2aWNl
TmFtZSBhbmQgJF8tPntydW50aW1lfSBlcSAkcnVudGltZSBhbmQgJF8tPntkZXZpY2VUeXBlfSBl
cSAkZGV2aWNlVHlwZTsKKyAgICB9IEBkZXZpY2VzKVswXTsKKworICAgIGlmIChub3QgJGRldmlj
ZSkgeworICAgICAgICBwcmludCAiQ3JlYXRpbmcgc2ltdWxhdG9yIGRldmljZTogJGRldmljZU5h
bWVcbiI7CisgICAgICAgICRkZXZpY2UgPSBjcmVhdGVpT1NTaW11bGF0b3JEZXZpY2UoJGRldmlj
ZU5hbWUsICRkZXZpY2VUeXBlLCAkcnVudGltZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJp
bnQgIkZvdW5kIHNpbXVsYXRvciBkZXZpY2Ugd2l0aCBwcm9wZXJ0aWVzOiAiIC4gRHVtcGVyKCRk
ZXZpY2UpOworICAgIH0KIAogICAgIG15ICRpZGVudGlmaWVyID0gaU9TRHVtcFRvb2xBcHBJZGVu
dGlmaWVyKCk7CiAgICAgbXkgJGFwcGxpY2F0aW9uUGF0aDsKQEAgLTEzOTgsMTggKzE0MTgsMTMg
QEAgc3ViIGluc3RhbGxBbmRMYXVuY2hEdW1wVG9vbEFwcFVzaW5nTm90aWZpY2F0aW9uKCQkKQog
ICAgICAgICAkYXBwbGljYXRpb25QYXRoID0gIiRwcm9kdWN0RGlyL0R1bXBSZW5kZXJUcmVlLmFw
cCI7CiAgICAgfQogCi0gICAgY2hvbXAobXkgJHNka1ZlcnNpb24gPSBgeGNydW4gLS1zZGsgaXBo
b25lc2ltdWxhdG9yIC0tc2hvdy1zZGstdmVyc2lvbmApOwotCiAgICAgbXkgJGRpY3QgPSB7CiAg
ICAgICAgIGFwcGxpY2F0aW9uQXJndW1lbnRzID0+ICYkbWFrZU5TQXJyYXlGcm9tQXJyYXkoJGFy
Z3MpLAogICAgICAgICBhcHBsaWNhdGlvbkVudmlyb25tZW50ID0+ICYkbWFrZU5TRGljdGlvbmFy
eUZyb21IYXNoKCRjbGVhbkVudiksCiAgICAgICAgIGFwcGxpY2F0aW9uSWRlbnRpZmllciA9PiBO
U1N0cmluZy0+c3RyaW5nV2l0aENTdHJpbmdfKCRpZGVudGlmaWVyKSwKICAgICAgICAgYXBwbGlj
YXRpb25QYXRoID0+IE5TU3RyaW5nLT5zdHJpbmdXaXRoQ1N0cmluZ18oJGFwcGxpY2F0aW9uUGF0
aCksCi0gICAgICAgIGRldmljZUluZm8gPT4gTlNTdHJpbmctPnN0cmluZ1dpdGhDU3RyaW5nXygk
ZGV2aWNlTmFtZSksCi0gICAgICAgIHJ1bnRpbWVJZGVudGlmaWVyID0+IE5TU3RyaW5nLT5zdHJp
bmdXaXRoQ1N0cmluZ18oJHNka1ZlcnNpb24pLAotICAgICAgICBzZXNzaW9uT3duZXIgPT4gTlNT
dHJpbmctPnN0cmluZ1dpdGhDU3RyaW5nXygkcHJvZ3JhbU5hbWUpLAorICAgICAgICBkZXZpY2VV
RElEID0+IE5TU3RyaW5nLT5zdHJpbmdXaXRoQ1N0cmluZ18oJGRldmljZS0+e1VESUR9KSwKICAg
ICAgICAgc2Vzc2lvblVVSUQgPT4gTlNTdHJpbmctPnN0cmluZ1dpdGhDU3RyaW5nXyhzaW11bGF0
b3JTZXNzaW9uVVVJRCgpKSwKLSAgICAgICAgc2RrUm9vdCA9PiBOU1N0cmluZy0+c3RyaW5nV2l0
aENTdHJpbmdfKCRzZGtSb290KSwKICAgICB9OwogICAgICRpUGhvbmVTaW11bGF0b3JOb3RpZmlj
YXRpb24tPnBvc3RTdGFydFNlc3Npb25Ob3RpZmljYXRpb24oJGRpY3QpOwogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMu
cG0KaW5kZXggZDZkNGQzMTQ0YzIxZThmMDMwZTI4MjA2NWMyN2RkMDJmNGJlYWRlYy4uM2U1YmM2
ZTA2OTI2OGFjMjc4MTZiYWQzMzJjYTVmZDk0ZDgxZTc2YyAxMDA3NTUKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQpAQCAt
MTExNyw2ICsxMTE3LDU3IEBAIHN1YiBpc0FwcGxlV2luV2ViS2l0KCkKICAgICByZXR1cm4gKGlz
Q3lnd2luKCkgfHwgaXNXaW5kb3dzKCkpICYmICFpc1dpbkNhaXJvKCkgJiYgIWlzR3RrKCkgJiYg
IWlzV2luQ0UoKTsKIH0KIAorc3ViIGlPU1NpbXVsYXRvckRldmljZXNQYXRoCit7CisgICAgcmV0
dXJuICIkRU5We0hPTUV9L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvRGV2aWNlcyI7
Cit9CisKK3N1YiBpT1NTaW11bGF0b3JEZXZpY2VzCit7CisgICAgZXZhbCAicmVxdWlyZSBGb3Vu
ZGF0aW9uIjsKKyAgICBteSAkZGV2aWNlc1BhdGggPSBpT1NTaW11bGF0b3JEZXZpY2VzUGF0aCgp
OworICAgIG9wZW5kaXIoREVWSUNFUywgJGRldmljZXNQYXRoKTsKKyAgICBteSBAdWRpZHMgPSBn
cmVwIHsKKyAgICAgICAgJF8gPX4gbS9bMC05QS1GXXs4fS0oWzAtOUEtRl17NH0tKXszfVswLTlB
LUZdezEyfS87CisgICAgfSByZWFkZGlyKERFVklDRVMpOworICAgIGNsb3NlKERFVklDRVMpOwor
CisgICAgbXkgQGRldmljZXMgPSBtYXAgeworICAgICAgICBGb3VuZGF0aW9uOjpwZXJsUmVmRnJv
bU9iamVjdFJlZihOU0RpY3Rpb25hcnktPmRpY3Rpb25hcnlXaXRoQ29udGVudHNPZkZpbGVfKCIk
ZGV2aWNlc1BhdGgvJF8vZGV2aWNlLnBsaXN0IikpOworICAgIH0gQHVkaWRzOworCisgICAgcmV0
dXJuIEBkZXZpY2VzOworfQorCitzdWIgY3JlYXRlaU9TU2ltdWxhdG9yRGV2aWNlCit7CisgICAg
bXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkZGV2aWNlVHlwZUlkID0gc2hpZnQ7CisgICAgbXkg
JHJ1bnRpbWVJZCA9IHNoaWZ0OworCisgICAgbXkgJGNyZWF0ZWQgPSBzeXN0ZW0oInhjcnVuIiwg
Ii0tc2RrIiwgImlwaG9uZXNpbXVsYXRvciIsICJzaW1jdGwiLCAiY3JlYXRlIiwgJG5hbWUsICRk
ZXZpY2VUeXBlSWQsICRydW50aW1lSWQpID09IDA7CisgICAgZGllICJDb3VsZG4ndCBjcmVhdGUg
c2ltdWxhdG9yIGRldmljZTogJG5hbWUgJGRldmljZVR5cGVJZCAkcnVudGltZUlkIiBpZiBub3Qg
JGNyZWF0ZWQ7CisKKyAgICBzeXN0ZW0oInhjcnVuIiwgIi0tc2RrIiwgImlwaG9uZXNpbXVsYXRv
ciIsICJzaW1jdGwiLCAibGlzdCIpOworCisgICAgcHJpbnQgIldhaXRpbmcgZm9yIGRldmljZSB0
byBiZSBjcmVhdGVkIC4uLlxuIjsKKyAgICBzbGVlcCA1OworICAgIGZvciAobXkgJHRyaWVzID0g
MDsgJHRyaWVzIDwgNTsgJHRyaWVzKyspeworICAgICAgICBteSBAZGV2aWNlcyA9IGlPU1NpbXVs
YXRvckRldmljZXMoKTsKKyAgICAgICAgZm9yZWFjaCBteSAkZGV2aWNlIChAZGV2aWNlcykgewor
ICAgICAgICAgICAgcmV0dXJuICRkZXZpY2UgaWYgJGRldmljZS0+e25hbWV9IGVxICRuYW1lIGFu
ZCAkZGV2aWNlLT57ZGV2aWNlVHlwZX0gZXEgJGRldmljZVR5cGVJZCBhbmQgJGRldmljZS0+e3J1
bnRpbWV9IGVxICRydW50aW1lSWQ7CisgICAgICAgIH0KKyAgICAgICAgc2xlZXAgNTsKKyAgICB9
CisgICAgZGllICJEZXZpY2UgJG5hbWUgJGRldmljZVR5cGVJZCAkcnVudGltZUlkIHdhc24ndCBm
b3VuZCBpbiAiIC4gaU9TU2ltdWxhdG9yRGV2aWNlc1BhdGgoKTsKK30KKworc3ViIGRlbGV0ZWlP
U1NpbXVsYXRvckRldmljZQoreworICAgIG15ICR1ZGlkID0gc2hpZnQ7CisgICAgcmV0dXJuIHN5
c3RlbSgieGNydW4iLCAiLS1zZGsiLCAiaXBob25lc2ltdWxhdG9yIiwgInNpbWN0bCIsICJkZWxl
dGUiLCAkdWRpZCk7Cit9CisKIHN1YiB3aWxsVXNlSU9TRGV2aWNlU0RLV2hlbkJ1aWxkaW5nKCkK
IHsKICAgICByZXR1cm4geGNvZGVTREtQbGF0Zm9ybU5hbWUoKSBlcSAiaXBob25lb3MiOwo=
</data>
<flag name="review"
          id="257306"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>