<?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>42374</bug_id>
          
          <creation_ts>2010-07-15 07:47:51 -0700</creation_ts>
          <short_desc>Add possibility to dumpAsText and generate a pixel test result</short_desc>
          <delta_ts>2023-06-20 10:55:20 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=258298</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42376</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251878</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-15 07:47:51 -0700</bug_when>
    <thetext>When using layoutTestController.setDumpAsText() most DRT implementations will not generate a pixel test result.
This breaks svg/dynamic-updates test, which don&apos;t want to dump render tree information, but pure text, and a pixel test result. Without pixel test results these tests are useless.
It&apos;s unfortunate, this hasn&apos;t been noticed for a long time - DRT has changed at some point to not generate pixel results when dumpAsText=true.

I propose introducing setDumpAsTextAndPixels logic - already tested, works fine and gives me what I want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251882</commentid>
    <comment_count>1</comment_count>
      <attachid>61661</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-15 07:52:22 -0700</bug_when>
    <thetext>Created attachment 61661
Patch

Maciej, do you think that would be acceptable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251886</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 07:55:03 -0700</bug_when>
    <thetext>Attachment 61661 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKitTools/DumpRenderTree/wx/DumpRenderTreeWx.cpp:206:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251888</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-15 07:56:29 -0700</bug_when>
    <thetext>The style failure is in existing code, I&apos;ll fix it before landing (if this patch gets a positive review).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252386</commentid>
    <comment_count>4</comment_count>
      <attachid>61774</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-16 01:05:18 -0700</bug_when>
    <thetext>Created attachment 61774
Updated patch

Updated patch after IRC discussion with Maciej.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252388</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-16 01:07:13 -0700</bug_when>
    <thetext>Attachment 61774 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKitTools/DumpRenderTree/wx/DumpRenderTreeWx.cpp:206:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252389</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-16 01:09:21 -0700</bug_when>
    <thetext>Oops, fixed style issue (not uploading a new patch to let EWS run)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252401</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-16 01:32:56 -0700</bug_when>
    <thetext>Attachment 61774 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3413423</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252403</commentid>
    <comment_count>8</comment_count>
      <attachid>61778</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-16 01:35:33 -0700</bug_when>
    <thetext>Created attachment 61778
Updated patch v2

Fix style issue and chromium build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252418</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-16 02:31:09 -0700</bug_when>
    <thetext>Issue 1:
float* totals is passed from fastSetInteriorPixels, and the new helper function setDestinationPixels is called multiple times. That means you&apos;re doing the divisior division multiple times, accumulated!

for (int i = 0; i &lt; numTotals; ++i)
    totals[i] = totals[i] / divisor + bias;

Issue 2:
for (int i = 0; i &lt; 3; ++i)
    image-&gt;set(pixel++, clampRGBAValue(totals[0], maxAlpha));

You&apos;re always clamping totals[0], not totals[i].

Very evil!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252419</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-16 02:31:26 -0700</bug_when>
    <thetext>Oops, ignore that commented on wrong br.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252426</commentid>
    <comment_count>11</comment_count>
      <attachid>61778</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-07-16 02:43:54 -0700</bug_when>
    <thetext>Comment on attachment 61778
Updated patch v2

LGTM r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252430</commentid>
    <comment_count>12</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-16 02:49:04 -0700</bug_when>
    <thetext>Discussed the concept with Maciej, he was fine with it.
Landed in r63536.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61661</attachid>
            <date>2010-07-15 07:52:22 -0700</date>
            <delta_ts>2010-07-16 01:05:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>DRT.diff</filename>
            <type>text/plain</type>
            <size>13876</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYzNDI0KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTAtMDctMTUgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHBvc3NpYmlsaXR5IHRvIGR1bXBBc1RleHQgYW5kIGdlbmVy
YXRlIGEgcGl4ZWwgdGVzdCByZXN1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQyMzc0CisKKyAgICAgICAgQWRkIHNldER1bXBBc1RleHRBbmRQaXhl
bHMoKSBEUlQgc3VwcG9ydCwgbmVlZGVkIGZvciBzdmcvZHluYW1pYy11cGRhdGUgdGVzdHMuCisg
ICAgICAgIFdlIHdhbnQgdG8gYmUgYWJsZSB0byBkdW1wIHRleHQgKG5vIHJlbmRlciB0cmVlIGR1
bXBzLCBidXQgdGhlIG5pY2UgdGV4dHVhbCByZXN1bHRzIHlvdSBnZXQgd2hlbiB1c2luZyB0aGUg
c2NyaXB0LXRlc3RzLyBmcmFtZXdvcmspICsgYSBwaXhlbCB0ZXN0IHJlc3VsdC4KKyAgICAgICAg
QXQgc29tZSBwb2ludCBEUlQgY2hhbmdlZCB0byBub3QgZ2VuZXJhdGUgcGl4ZWwgdGVzdCByZXN1
bHRzIHdoZW4gdXNpbmcgZHVtcEFzVGV4dCAtIHdoaWNoIG1ha2VzIHNlbnNlLCBidXQgYnJlYWtz
IHRoZSBzdmcvZHluYW1pYy11cGRhdGVzIHRlc3QuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgZm9y
IGFsbCBEUlQgcGxhdGZvcm1zIHRoYXQgcmVzcGVjdCB0aGUgZHVtcEFzVGV4dCBzZXR0aW5nLCB3
aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8gZHVtcCBwaXhlbHMgb3Igbm90LgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKGR1bXBBc1Rl
eHRBbmRQaXhlbHNDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1RleHRBbmRQaXhl
bHMpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBBc1RleHRBbmRQaXhl
bHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJv
bGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dEFuZFBpeGVs
cyk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvdWxkRHVtcEFzVGV4dEFuZFBpeGVscyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RT
aGVsbDo6ZHVtcCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcDoKKyAgICAgICAgKGR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRy
ZWU6OmR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHA6CisgICAgICAgIChkdW1wKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9EdW1wUmVu
ZGVyVHJlZVd4LmNwcDoKKyAgICAgICAgKGR1bXApOgorCiAyMDEwLTA3LTE0ICBFcmljIFNlaWRl
bCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAkocmV2aXNpb24gNjMzMDcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcg
QEAKIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6
OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxI
YXNoKQogICAgIDogbV9kdW1wQXNQREYoZmFsc2UpCiAgICAgLCBtX2R1bXBBc1RleHQoZmFsc2Up
CisgICAgLCBtX2R1bXBBc1RleHRBbmRQaXhlbHMoZmFsc2UpCiAgICAgLCBtX2R1bXBCYWNrRm9y
d2FyZExpc3QoZmFsc2UpCiAgICAgLCBtX2R1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKGZh
bHNlKQogICAgICwgbV9kdW1wQ2hpbGRGcmFtZXNBc1RleHQoZmFsc2UpCkBAIC0xMDUsNiArMTA2
LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBBc1RleHRDYWxsYmFjayhKU0MKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVm
IGR1bXBBc1RleHRBbmRQaXhlbHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxM
YXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Cisg
ICAgY29udHJvbGxlci0+c2V0RHVtcEFzVGV4dEFuZFBpeGVscyh0cnVlKTsKKyAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGR1
bXBCYWNrRm9yd2FyZExpc3RDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7
CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlv
dXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0x
NzQ3LDYgKzE3NTUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
CiAgICAgICAgIHsgImRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cyIsIGRpc3BhdGNoUGVuZGlu
Z0xvYWRSZXF1ZXN0c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc3BsYXkiLCBkaXNw
bGF5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFzVGV4dCIsIGR1bXBBc1RleHRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJkdW1wQXNUZXh0QW5kUGl4ZWxzIiwgZHVtcEFz
VGV4dEFuZFBpeGVsc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBCYWNrRm9yd2Fy
ZExpc3QiLCBkdW1wQmFja0ZvcndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMiLCBkdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0
aW9uc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBDaGlsZEZyYW1lc0FzVGV4dCIs
IGR1bXBDaGlsZEZyYW1lc0FzVGV4dENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9u
IDYzMzA3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEyMSwxMCBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGR1bXBBc1RleHQoKSBjb25zdCB7IHJldHVybiBtX2R1bXBBc1RleHQ7IH0KICAgICB2b2lk
IHNldER1bXBBc1RleHQoYm9vbCBkdW1wQXNUZXh0KSB7IG1fZHVtcEFzVGV4dCA9IGR1bXBBc1Rl
eHQ7IH0KLSAgICAKKyAKKyAgICBib29sIGR1bXBBc1RleHRBbmRQaXhlbHMoKSBjb25zdCB7IHJl
dHVybiBtX2R1bXBBc1RleHRBbmRQaXhlbHM7IH0KKyAgICB2b2lkIHNldER1bXBBc1RleHRBbmRQ
aXhlbHMoYm9vbCBkdW1wQXNUZXh0QW5kUGl4ZWxzKSB7IG1fZHVtcEFzVGV4dEFuZFBpeGVscyA9
IGR1bXBBc1RleHRBbmRQaXhlbHM7IH0KKyAgICAgICAKICAgICBib29sIGR1bXBCYWNrRm9yd2Fy
ZExpc3QoKSBjb25zdCB7IHJldHVybiBtX2R1bXBCYWNrRm9yd2FyZExpc3Q7IH0KICAgICB2b2lk
IHNldER1bXBCYWNrRm9yd2FyZExpc3QoYm9vbCBkdW1wQmFja0ZvcndhcmRMaXN0KSB7IG1fZHVt
cEJhY2tGb3J3YXJkTGlzdCA9IGR1bXBCYWNrRm9yd2FyZExpc3Q7IH0KIApAQCAtMjg1LDYgKzI4
OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZHVtcEFzUERGOwogICAgIGJvb2wgbV9kdW1w
QXNUZXh0OworICAgIGJvb2wgbV9kdW1wQXNUZXh0QW5kUGl4ZWxzOwogICAgIGJvb2wgbV9kdW1w
QmFja0ZvcndhcmRMaXN0OwogICAgIGJvb2wgbV9kdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9u
czsKICAgICBib29sIG1fZHVtcENoaWxkRnJhbWVzQXNUZXh0OwpJbmRleDogV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAkocmV2aXNpb24gNjMzMDcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDYgKzcyLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAg
IC8vIG5hbWVzIHRvIHRoZWlyIG1ldGhvZHMgd2lsbCBiZSBkb25lIGJ5IGNhbGxpbmcgYmluZFRv
SmF2YVNjcmlwdCgpIChkZWZpbmVkCiAgICAgLy8gYnkgQ3BwQm91bmRDbGFzcywgdGhlIHBhcmVu
dCB0byBMYXlvdXRUZXN0Q29udHJvbGxlcikuCiAgICAgYmluZE1ldGhvZCgiZHVtcEFzVGV4dCIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dCk7CisgICAgYmluZE1ldGhvZCgiZHVt
cEFzVGV4dEFuZFBpeGVscyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dEFuZFBp
eGVscyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKTsKICAg
ICBiaW5kTWV0aG9kKCJkdW1wQ2hpbGRGcmFtZXNBc1RleHQiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmR1bXBDaGlsZEZyYW1lc0FzVGV4dCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcERhdGFiYXNl
Q2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRGF0YWJhc2VDYWxsYmFja3Mp
OwpAQCAtMjM2LDYgKzIzNywxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQXNU
ZXh0KGNvCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmR1bXBBc1RleHRBbmRQaXhlbHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCogcmVzdWx0KQoreworICAgIG1fZHVtcEFzVGV4dEFuZFBpeGVscyA9IHRydWU7CisgICAg
cmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBE
YXRhYmFzZUNhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1
bHQpCiB7CiAgICAgLy8gRG8gbm90aGluZzsgd2UgZG9uJ3QgdXNlIHRoaXMgZmxhZyBhbnl3aGVy
ZSBmb3Igbm93CkBAIC00NjYsNiArNDczLDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cmVzZXQoKQogICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnJlbW92ZUFsbFVzZXJDb250ZW50
KCk7CiAgICAgfQogICAgIG1fZHVtcEFzVGV4dCA9IGZhbHNlOworICAgIG1fZHVtcEFzVGV4dEFu
ZFBpeGVscyA9IGZhbHNlOwogICAgIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MgPSBmYWxzZTsKICAg
ICBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKICAgICBtX2R1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3MgPSBmYWxzZTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24g
NjMzMDcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw5IEBAIHB1YmxpYzoKICAg
ICAvLyBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBw
cmVzZW50LgogICAgIHZvaWQgZHVtcEFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CiAKKyAgICAvLyBTYW1lIGFzIGR1bXBBc1RleHQoKSwgYnV0IGFsc28gZ2VuZXJh
dGVzIGEgcGl4ZWwgdGVzdCByZXN1bHQsIGlmIHBpeGVsIHRlc3RzIGFyZSBlbmFibGVkLgorICAg
IHZvaWQgZHVtcEFzVGV4dEFuZFBpeGVscyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBzZXQgYSBmbGFnIHRoYXQgdGVs
bHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lCiAgICAgLy8gb2YgZGVzY3JpcHRpdmUg
dGV4dCBmb3IgZWFjaCBkYXRhYmFzZSBjb21tYW5kLiAgSXQgc2hvdWxkIHRha2Ugbm8KICAgICAv
LyBhcmd1bWVudHMsIGFuZCBpZ25vcmUgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuIEhvd2V2ZXIs
IGF0IHRoZSBtb21lbnQsIHdlCkBAIC0yOTUsNiArMjk4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0V29ya1F1ZXVlRnJvemVuKGJvb2wgZnJvemVuKSB7IG1fd29ya1F1ZXVlLnNldEZyb3plbihm
cm96ZW4pOyB9CiAKICAgICBib29sIHNob3VsZER1bXBBc1RleHQoKSB7IHJldHVybiBtX2R1bXBB
c1RleHQ7IH0KKyAgICBib29sIHNob3VsZER1bXBBc1RleHRBbmRQaXhlbHMoKSB7IHJldHVybiBt
X2R1bXBBc1RleHRBbmRQaXhlbHM7IH0KICAgICBib29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJh
Y2tzKCkgeyByZXR1cm4gbV9kdW1wRWRpdGluZ0NhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxk
RHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIHsgcmV0dXJuIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNr
czsgfQogICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sIHZhbHVl
KSB7IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IHZhbHVlOyB9CkBAIC0zODYsNiArMzkwLDEx
IEBAIHByaXZhdGU6CiAgICAgLy8gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVuZGVyZXIu
CiAgICAgYm9vbCBtX2R1bXBBc1RleHQ7CiAKKyAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVs
bCB3aWxsIHByb2R1Y2UgYSBwbGFpbiB0ZXh0IGR1bXAgcmF0aGVyIHRoYW4gYQorICAgIC8vIHRl
eHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlbmRlcmVyIGFuZCBhIHBpeGVsIHRlc3QgcmVzdWx0
LCBpZiBwaXhlbAorICAgIC8vIHRlc3RzIGFyZSBlbmFibGVkLgorICAgIGJvb2wgbV9kdW1wQXNU
ZXh0QW5kUGl4ZWxzOworCiAgICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCB3cml0
ZSBhIGRlc2NyaXB0aXZlIGxpbmUgZm9yIGVhY2ggZWRpdGluZwogICAgIC8vIGNvbW1hbmQuCiAg
ICAgYm9vbCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCShyZXZpc2lvbiA2MzMwNykK
KysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUxMSw3ICs1MTEsOCBAQCB2b2lkIFRlc3RTaGVsbDo6ZHVtcCgpCiAg
ICAgaWYgKGR1bXBlZEFueXRoaW5nICYmIG1fcGFyYW1zLnByaW50U2VwYXJhdG9ycykKICAgICAg
ICAgbV9wcmludGVyLT5oYW5kbGVUZXh0Rm9vdGVyKCk7CiAKLSAgICBpZiAobV9wYXJhbXMuZHVt
cFBpeGVscyAmJiAhc2hvdWxkRHVtcEFzVGV4dCkgeworICAgIGJvb2wgc2hvdWxkRHVtcEFzVGV4
dE9ubHkgPSBzaG91bGREdW1wQXNUZXh0ICYmICFtX2xheW91dFRlc3RDb250cm9sbGVyLT5zaG91
bGREdW1wQXNUZXh0QW5kUGl4ZWxzKCk7CisgICAgaWYgKG1fcGFyYW1zLmR1bXBQaXhlbHMgJiYg
IXNob3VsZER1bXBBc1RleHRPbmx5KSB7CiAgICAgICAgIC8vIEltYWdlIG91dHB1dDogd2Ugd3Jp
dGUgdGhlIGltYWdlIGRhdGEgdG8gdGhlIGZpbGUgZ2l2ZW4gb24gdGhlCiAgICAgICAgIC8vIGNv
bW1hbmQgbGluZSAoZm9yIHRoZSBkdW1wIHBpeGVscyBhcmd1bWVudCksIGFuZCB0aGUgTUQ1IHN1
bSB0bwogICAgICAgICAvLyBzdGRvdXQuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAJKHJldmlzaW9uIDYzMzA3KQorKysgV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDIwLDcgKzQyMCw4IEBAIHZvaWQgZHVtcCgpCiAgICAgfQogCiAgICAgaWYgKGR1
bXBQaXhlbHMpIHsKLSAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1Rl
eHQoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYg
IWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKSB7CisgICAg
ICAgIGJvb2wgZHVtcEFzVGV4dE9ubHkgPSBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1Rl
eHQoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQXNUZXh0QW5kUGl4ZWxzKCk7Cisg
ICAgICAgIGlmICghZHVtcEFzVGV4dE9ubHkgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVt
cERPTUFzV2ViQXJjaGl2ZSgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBTb3VyY2VB
c1dlYkFyY2hpdmUoKSkgewogICAgICAgICAgICAgZHVtcFdlYlZpZXdBc1BpeGVsc0FuZENvbXBh
cmVXaXRoRXhwZWN0ZWQoZ0xheW91dFRlc3RDb250cm9sbGVyLT5leHBlY3RlZFBpeGVsSGFzaCgp
KTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDYzMzA3KQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTI5LDcgKzExMjksOCBAQCB2b2lkIGR1bXAoKQogICAgICAgICB9ICAgICAgICAgICAgCiAg
ICAgfQogCi0gICAgaWYgKGR1bXBQaXhlbHMgJiYgIWR1bXBBc1RleHQpCisgICAgYm9vbCBkdW1w
QXNUZXh0T25seSA9IGR1bXBBc1RleHQgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFz
VGV4dEFuZFBpeGVscygpOworICAgIGlmIChkdW1wUGl4ZWxzICYmICFkdW1wQXNUZXh0T25seSkK
ICAgICAgICAgLy8gRklYTUU6IHdoZW4gaXNQcmludGluZyBpcyBzZXQsIGR1bXAgdGhlIGltYWdl
IHdpdGggcGFnZSBzZXBhcmF0b3JzLgogICAgICAgICBkdW1wV2ViVmlld0FzUGl4ZWxzQW5kQ29t
cGFyZVdpdGhFeHBlY3RlZChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmV4cGVjdGVkUGl4ZWxIYXNo
KCkpOwogCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJl
ZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZVF0LmNwcAkocmV2aXNpb24gNjMzMDcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQ3LDYg
Kzg0Nyw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OmR1bXAoKQogICAgIGZwdXRzKCIjRU9GXG4i
LCBzdGRvdXQpOwogICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRlcnIpOwogCisgICAgLy8gRklYTUU6
IEFsbCBvdGhlciBwb3J0cyBkb24ndCBkdW1wIHBpeGVscywgaWYgZHVtcEFzVGV4dCBpcyB0cnVl
IChhbmQgZHVtcEFzVGV4dEFuZFBpeGVscyBmYWxzZSkuCiAgICAgaWYgKG1fZHVtcFBpeGVscykg
ewogICAgICAgICBRSW1hZ2UgaW1hZ2UobV9wYWdlLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpG
b3JtYXRfQVJHQjMyKTsKICAgICAgICAgaW1hZ2UuZmlsbChRdDo6d2hpdGUpOwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCShy
ZXZpc2lvbiA2MzMwNykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyNCw3ICs3MjQsOCBAQCB2b2lkIGR1bXAo
KQogICAgIH0KIAogICAgIGlmIChkdW1wUGl4ZWxzKSB7Ci0gICAgICAgIGlmICghZ0xheW91dFRl
c3RDb250cm9sbGVyLT5kdW1wQXNUZXh0KCkgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVt
cERPTUFzV2ViQXJjaGl2ZSgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBTb3VyY2VB
c1dlYkFyY2hpdmUoKSkKKyAgICAgICAgYm9vbCBkdW1wQXNUZXh0T25seSA9IGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBB
c1RleHRBbmRQaXhlbHMoKTsKKyAgICAgICAgaWYgKCFkdW1wQXNUZXh0T25seSAmJiAhZ0xheW91
dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYgIWdMYXlvdXRUZXN0Q29u
dHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQogICAgICAgICAgICAgZHVtcFdlYlZp
ZXdBc1BpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQoZ0xheW91dFRlc3RDb250cm9sbGVyLT5l
eHBlY3RlZFBpeGVsSGFzaCgpKTsKICAgICB9CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCShyZXZpc2lvbiA2MzMwNykK
KysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjcsMTAgKzE2NywxMCBAQCB2b2lkIGR1bXAoKQogICAgIGlmIChn
TGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSAmJiAhbm90aWZpZWQpCiAgICAgICAg
IHJldHVybjsKICAgICAgICAgCisgICAgYm9vbCBkdW1wQXNUZXh0ID0gZ0xheW91dFRlc3RDb250
cm9sbGVyLT5kdW1wQXNUZXh0KCk7CiAgICAgaWYgKGR1bXBUcmVlKSB7CiAgICAgICAgIGNvbnN0
IGNoYXIqIHJlc3VsdCA9IDA7CiAKLSAgICAgICAgYm9vbCBkdW1wQXNUZXh0ID0gZ0xheW91dFRl
c3RDb250cm9sbGVyLT5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHd4U3RyaW5nIHN0cjsKICAgICAg
ICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpKQogICAgICAgICAgICAg
c3RyID0gZHVtcEZyYW1lc0FzVGV4dCh3ZWJWaWV3LT5HZXRNYWluRnJhbWUoKSk7CkBAIC0yMDIs
NyArMjAyLDggQEAgdm9pZCBkdW1wKCkKICAgICB9CiAKICAgICBpZiAoZHVtcFBpeGVscykgewot
ICAgICAgICBpZiAoIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmIAorICAg
ICAgICBib29sIGR1bXBBc1RleHRPbmx5ID0gZHVtcEFzdGV4dCAmJiAhZ0xheW91dFRlc3RDb250
cm9sbGVyLT5kdW1wQXNUZXh0QW5kUGl4ZWxzKCk7CisgICAgICAgIGlmICghZHVtcEFzVGV4dE9u
bHkgJiYKICAgICAgICAgICAgICAgICAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNX
ZWJBcmNoaXZlKCkgJiYgCiAgICAgICAgICAgICAgICAgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+
ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIHN1
cHBvcnQgZm9yIGR1bXBpbmcgcGl4ZWxzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61774</attachid>
            <date>2010-07-16 01:05:18 -0700</date>
            <delta_ts>2010-07-16 01:35:33 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>DRT.diff</filename>
            <type>text/plain</type>
            <size>12191</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYzNTI5KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDctMTYgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHBvc3NpYmlsaXR5IHRvIGR1bXBBc1RleHQgYW5kIGdlbmVy
YXRlIGEgcGl4ZWwgdGVzdCByZXN1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQyMzc0CisKKyAgICAgICAgQWRkIG9wdGlvbmFsIHBhcmFtZXRlciB0
byBzZXREdW1wQXNUZXh0KCkgdG8gYWxsb3cgZ2VuZXJhdGluZyBhIHBpeGVsIHRlc3QgcmVzdWx0
IGV2ZW4gaWYgZHVtcEFzVGV4dCBtb2RlLgorICAgICAgICBzZXREdW1wQXNUZXh0KHRydWUpIHdp
bGwgYWxzbyBnZW5lcmF0ZSBhIHBpeGVsIHRlc3QgcmVzdWx0IG5vdywgd2hlbiBydW5uaW5nIHJ1
bi13ZWJraXQtdGVzdHMgLS1waXhlbC10ZXN0cy4KKworICAgICAgICBUaGlzIGlzIG5lZWRlZCBm
b3IgdGhlIHN2Zy9keW5hbWljLXVwZGF0ZXMgdGVzdHMsIHdoaWNoIGRvbid0IHdhbnQgcmVuZGVy
IHRyZWUgZHVtcHMgYnV0IHRleHQgZHVtcHMgKyBhIHBpeGVsIHRlc3QgcmVzdWx0LgorICAgICAg
ICBBdCBzb21lIHBvaW50IERSVCBjaGFuZ2VkIHRvIG5vdCBnZW5lcmF0ZSBwaXhlbCB0ZXN0IHJl
c3VsdHMgd2hlbiB1c2luZyBkdW1wQXNUZXh0IC0gd2hpY2ggbWFrZXMgc2Vuc2UsIGJ1dCBicmVh
a3MgdGhlIHN2Zy9keW5hbWljLXVwZGF0ZXMgdGVzdC4KKworICAgICAgICBJbXBsZW1lbnRlZCBm
b3IgYWxsIERSVCBwbGF0Zm9ybXMsIGV4Y2VwdCBRdCwgYXMgaXQncyBub3QgY2xlYXIgaG93IGFy
Z3VtZW50cyB0byBmdW5jdGlvbnMgbGlrZSAic2V0RHVtcEFzVGV4dCIgYXJlIGhhbmRsZWQuCisg
ICAgICAgIChRdCBhbHdheXMgZHVtcHMgcGl4ZWwgdGVzdHMgd2hlbiB1c2luZyAtLXBpeGVsLXRl
c3RzIG1vZGUsIHNvIGl0IGRvZXMgbm90IGJyZWFrIGFueXRoaW5nKQorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKGR1bXBBc1RleHRB
bmRQaXhlbHNDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGlj
RnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1RleHRBbmRQaXhlbHMp
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBBc1RleHRBbmRQaXhlbHMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxl
cik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dEFuZFBpeGVscyk6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2hvdWxkRHVtcEFzVGV4dEFuZFBpeGVscyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVs
bDo6ZHVtcCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNw
cDoKKyAgICAgICAgKGR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbToKKyAgICAgICAgKGR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6
OmR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChkdW1wKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9EdW1wUmVuZGVy
VHJlZVd4LmNwcDoKKyAgICAgICAgKGR1bXApOgorCiAyMDEwLTA3LTE2ICBTaGluaWNoaXJvIEhh
bWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQW5vdGhlciB1bmV2aWV3ZWQg
YXR0ZW1wdCB0byBmaXggYnVpbGQuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA2MzUyNikKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVz
dENvbnRyb2xsCiAgICAgLCBtX2R1bXBJY29uQ2hhbmdlcyhmYWxzZSkKICAgICAsIG1fZHVtcFZp
c2l0ZWRMaW5rc0NhbGxiYWNrKGZhbHNlKQogICAgICwgbV9kdW1wV2lsbENhY2hlUmVzcG9uc2Uo
ZmFsc2UpCisgICAgLCBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzKHRydWUpCiAgICAgLCBtX2NhbGxD
bG9zZU9uV2ViVmlld3ModHJ1ZSkKICAgICAsIG1fY2FuT3BlbldpbmRvd3MoZmFsc2UpCiAgICAg
LCBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKQpAQCAtMTAyLDYgKzEw
MywxMCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wQXNUZXh0Q2FsbGJhY2soSlNDCiB7CiAgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CiAgICAgY29udHJv
bGxlci0+c2V0RHVtcEFzVGV4dCh0cnVlKTsKKworICAgIC8vIE9wdGlvbmFsIHBhcmFtYXRlciwg
ZGVzY3JpYmluZyB3aGV0aGVyIGl0J3MgYWxsb3dlZCB0byBkdW1wIHBpeGVsIHJlc3VsdHMgaW4g
ZHVtcEFzVGV4dCBtb2RlLgorICAgIGNvbnRyb2xsZXItPnNldEdlbmVyYXRlUGl4ZWxSZXN1bHRz
KGFyZ3VtZW50Q291bnQgPiAwID8gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNb
MF0pIDogZmFsc2UpOworCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogfQogCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEy
MSwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGR1bXBBc1RleHQoKSBjb25zdCB7IHJldHVybiBt
X2R1bXBBc1RleHQ7IH0KICAgICB2b2lkIHNldER1bXBBc1RleHQoYm9vbCBkdW1wQXNUZXh0KSB7
IG1fZHVtcEFzVGV4dCA9IGR1bXBBc1RleHQ7IH0KLSAgICAKKworICAgIGJvb2wgZ2VuZXJhdGVQ
aXhlbFJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzOyB9Cisg
ICAgdm9pZCBzZXRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sIGdlbmVyYXRlUGl4ZWxSZXN1bHRz
KSB7IG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBnZW5lcmF0ZVBpeGVsUmVzdWx0czsgfQorCiAg
ICAgYm9vbCBkdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQmFja0Zv
cndhcmRMaXN0OyB9CiAgICAgdm9pZCBzZXREdW1wQmFja0ZvcndhcmRMaXN0KGJvb2wgZHVtcEJh
Y2tGb3J3YXJkTGlzdCkgeyBtX2R1bXBCYWNrRm9yd2FyZExpc3QgPSBkdW1wQmFja0ZvcndhcmRM
aXN0OyB9CiAKQEAgLTMwMiw2ICszMDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wSWNv
bkNoYW5nZXM7CiAgICAgYm9vbCBtX2R1bXBWaXNpdGVkTGlua3NDYWxsYmFjazsKICAgICBib29s
IG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlOworICAgIGJvb2wgbV9nZW5lcmF0ZVBpeGVsUmVzdWx0
czsKICAgICBib29sIG1fY2FsbENsb3NlT25XZWJWaWV3czsKICAgICBib29sIG1fY2FuT3Blbldp
bmRvd3M7CiAgICAgYm9vbCBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsKSW5k
ZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzAsOSArMjMwLDE0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OldvcmtRdWV1ZTo6YWQKICAgICBtX3F1ZXVlLmFwcGVuZCh3b3JrKTsKIH0KIAotdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50KiByZXN1bHQpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQXNUZXh0KGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAg
ICAgbV9kdW1wQXNUZXh0ID0gdHJ1ZTsKKworICAgIC8vIE9wdGlvbmFsIHBhcmFtYXRlciwgZGVz
Y3JpYmluZyB3aGV0aGVyIGl0J3MgYWxsb3dlZCB0byBkdW1wIHBpeGVsIHJlc3VsdHMgaW4gZHVt
cEFzVGV4dCBtb2RlLgorICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNb
MF0uaXNCb29sKCkpCisgICAgICAgIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBhcmd1bWVudHNb
MF0udmFsdWUuYm9vbFZhbHVlOworCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKQEAgLTQ3
NSw2ICs0ODAsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgpCiAgICAgbV9k
dW1wV2luZG93U3RhdHVzQ2hhbmdlcyA9IGZhbHNlOwogICAgIG1fZHVtcFNlbGVjdGlvblJlY3Qg
PSBmYWxzZTsKICAgICBtX2R1bXBUaXRsZUNoYW5nZXMgPSBmYWxzZTsKKyAgICBtX2dlbmVyYXRl
UGl4ZWxSZXN1bHRzID0gdHJ1ZTsKICAgICBtX2FjY2VwdHNFZGl0aW5nID0gdHJ1ZTsKICAgICBt
X3dhaXRVbnRpbERvbmUgPSBmYWxzZTsKICAgICBtX2Nhbk9wZW5XaW5kb3dzID0gZmFsc2U7Cklu
ZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNl
dHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBwYWdlcyBhcwogICAg
IC8vIHBsYWluIHRleHQsIHJhdGhlciB0aGFuIGFzIGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0
aGUgcmVuZGVyZXIncyBzdGF0ZS4KLSAgICAvLyBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBp
Z25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgorICAgIC8vIEl0IHRha2VzIGFuIG9wdGlv
bmFsIGFyZ3VtZW50LCB3aGV0aGVyIHRvIGR1bXAgcGl4ZWxzIHJlc3VsdHMgb3Igbm90LgogICAg
IHZvaWQgZHVtcEFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAK
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBzZXQgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRl
c3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lCkBAIC0zMDUsNiArMzA1LDcgQEAgcHVibGljOgogICAg
IGJvb2wgc2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpIHsgcmV0dXJuIG1fZHVtcFRpdGxlQ2hhbmdl
czsgfQogICAgIGJvb2wgc2hvdWxkRHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMoKSB7IHJl
dHVybiBtX2R1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zOyB9CiAgICAgYm9vbCBzaG91bGRE
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKSB7IHJldHVybiBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dDsg
fQorICAgIGJvb2wgc2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSB7IHJldHVybiBtX3Nob3Vs
ZEdlbmVyYXRlUGl4ZWxSZXN1bHRzOyB9CiAgICAgYm9vbCBhY2NlcHRzRWRpdGluZygpIHsgcmV0
dXJuIG1fYWNjZXB0c0VkaXRpbmc7IH0KICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgeyByZXR1
cm4gbV9jYW5PcGVuV2luZG93czsgfQogICAgIGJvb2wgc2hvdWxkQWRkRmlsZVRvUGFzdGVib2Fy
ZCgpIHsgcmV0dXJuIG1fc2hvdWxkQWRkRmlsZVRvUGFzdGVib2FyZDsgfQpAQCAtNDIwLDYgKzQy
MSw5IEBAIHByaXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgb3V0cHV0IGEgbWVzc2FnZSB3aGVuIHRo
ZSBwYWdlIHRpdGxlIGlzIGNoYW5nZWQuCiAgICAgYm9vbCBtX2R1bXBUaXRsZUNoYW5nZXM7CiAK
KyAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIGdlbmVyYXRlIHBpeGVsIHJlc3Vs
dHMgaW4gZHVtcEFzVGV4dCBtb2RlCisgICAgYm9vbCBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzOwor
CiAgICAgLy8gSWYgdHJ1ZSwgdGhlIGVsZW1lbnQgd2lsbCBiZSB0cmVhdGVkIGFzIGVkaXRhYmxl
LiAgVGhpcyB2YWx1ZSBpcyByZXR1cm5lZAogICAgIC8vIGZyb20gdmFyaW91cyBlZGl0aW5nIGNh
bGxiYWNrcyB0aGF0IGFyZSBjYWxsZWQganVzdCBiZWZvcmUgZWRpdCBvcGVyYXRpb25zCiAgICAg
Ly8gYXJlIGFsbG93ZWQuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTExLDcgKzUxMSw3IEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKICAgICBpZiAoZHVtcGVkQW55
dGhpbmcgJiYgbV9wYXJhbXMucHJpbnRTZXBhcmF0b3JzKQogICAgICAgICBtX3ByaW50ZXItPmhh
bmRsZVRleHRGb290ZXIoKTsKIAotICAgIGlmIChtX3BhcmFtcy5kdW1wUGl4ZWxzICYmICFzaG91
bGREdW1wQXNUZXh0KSB7CisgICAgaWYgKG1fcGFyYW1zLmR1bXBQaXhlbHMgJiYgbV9sYXlvdXRU
ZXN0Q29udHJvbGxlci0+c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSkgewogICAgICAgICAv
LyBJbWFnZSBvdXRwdXQ6IHdlIHdyaXRlIHRoZSBpbWFnZSBkYXRhIHRvIHRoZSBmaWxlIGdpdmVu
IG9uIHRoZQogICAgICAgICAvLyBjb21tYW5kIGxpbmUgKGZvciB0aGUgZHVtcCBwaXhlbHMgYXJn
dW1lbnQpLCBhbmQgdGhlIE1ENSBzdW0gdG8KICAgICAgICAgLy8gc3Rkb3V0LgpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCShy
ZXZpc2lvbiA2MzUyNikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVu
ZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxOSwxMSArNDE5LDExIEBAIHZvaWQgZHVt
cCgpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoZHVtcFBpeGVscykgewotICAgICAgICBp
ZiAoIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmICFnTGF5b3V0VGVzdENv
bnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpIHsKLSAgICAgICAgICAgIGR1bXBXZWJWaWV3QXNQ
aXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZXhwZWN0
ZWRQaXhlbEhhc2goKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaWYgKGR1bXBQaXhlbHMKKyAg
ICAgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpCisgICAg
ICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKQorICAgICAm
JiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpCisgICAg
ICAgIGR1bXBXZWJWaWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CiAKICAgICAvLyBGSVhNRTogY2FsbCBk
aXNwbGF5V2ViVmlldyBoZXJlIHdoZW4gd2Ugc3VwcG9ydCAtLXBhaW50CiAKSW5kZXg6IFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlz
aW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIGR1bXAoKQog
ICAgICAgICB9ICAgICAgICAgICAgCiAgICAgfQogCi0gICAgaWYgKGR1bXBQaXhlbHMgJiYgIWR1
bXBBc1RleHQpCisgICAgaWYgKGR1bXBQaXhlbHMgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5n
ZW5lcmF0ZVBpeGVsUmVzdWx0cygpKQogICAgICAgICAvLyBGSVhNRTogd2hlbiBpc1ByaW50aW5n
IGlzIHNldCwgZHVtcCB0aGUgaW1hZ2Ugd2l0aCBwYWdlIHNlcGFyYXRvcnMuCiAgICAgICAgIGR1
bXBXZWJWaWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0Q29udHJv
bGxlci0+ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCShyZXZpc2lvbiA2MzUyNikK
KysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NDcsNiArODQ3LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6ZHVt
cCgpCiAgICAgZnB1dHMoIiNFT0ZcbiIsIHN0ZG91dCk7CiAgICAgZnB1dHMoIiNFT0ZcbiIsIHN0
ZGVycik7CiAKKyAgICAvLyBGSVhNRTogQWxsIG90aGVyIHBvcnRzIGRvbid0IGR1bXAgcGl4ZWxz
LCBpZiBnZW5lcmF0ZVBpeGVsUmVzdWx0cyBpcyBmYWxzZS4KICAgICBpZiAobV9kdW1wUGl4ZWxz
KSB7CiAgICAgICAgIFFJbWFnZSBpbWFnZShtX3BhZ2UtPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6
OkZvcm1hdF9BUkdCMzIpOwogICAgICAgICBpbWFnZS5maWxsKFF0Ojp3aGl0ZSk7CkluZGV4OiBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAJ
KHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIzLDEwICs3MjMsMTEgQEAgdm9pZCBk
dW1wKCkKICAgICAgICAgZmZsdXNoKHN0ZGVycik7CiAgICAgfQogCi0gICAgaWYgKGR1bXBQaXhl
bHMpIHsKLSAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1RleHQoKSAm
JiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYgIWdMYXlv
dXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQotICAgICAgICAgICAg
ZHVtcFdlYlZpZXdBc1BpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQoZ0xheW91dFRlc3RDb250
cm9sbGVyLT5leHBlY3RlZFBpeGVsSGFzaCgpKTsKLSAgICB9CisgICAgaWYgKGR1bXBQaXhlbHMK
KyAgICAgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpCisg
ICAgICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKQorICAg
ICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpCisg
ICAgICAgIGR1bXBXZWJWaWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRU
ZXN0Q29udHJvbGxlci0+ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CiAKICAgICBwcmludGYoIiNFT0Zc
biIpOyAgIC8vIHRlcm1pbmF0ZSB0aGUgKHBvc3NpYmx5IGVtcHR5KSBwaXhlbHMgYmxvY2sKICAg
ICBmZmx1c2goc3Rkb3V0KTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0R1
bXBSZW5kZXJUcmVlV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCShyZXZpc2lvbiA2MzUyNikKKysrIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDEsMTMgKzIwMSwxMSBAQCB2b2lkIGR1bXAoKQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKGR1bXBQaXhlbHMpIHsKLSAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXIt
PmR1bXBBc1RleHQoKSAmJiAKLSAgICAgICAgICAgICAgICAhZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYgCi0gICAgICAgICAgICAgICAgIWdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogQWRkIHN1cHBvcnQgZm9yIGR1bXBpbmcgcGl4ZWxzCi0gICAgICAgIH0KLQorICAgIGlm
IChkdW1wUGl4ZWxzCisgICAgICAgICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Z2VuZXJhdGVQ
aXhlbFJlc3VsdHMoKQorICAgICAgICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9N
QXNXZWJBcmNoaXZlKCkgJiYgCisgICAgICAgICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBT
b3VyY2VBc1dlYkFyY2hpdmUoKSkgeworICAgICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9y
IGR1bXBpbmcgcGl4ZWxzCiAgICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61778</attachid>
            <date>2010-07-16 01:35:33 -0700</date>
            <delta_ts>2010-07-16 02:43:54 -0700</delta_ts>
            <desc>Updated patch v2</desc>
            <filename>DRT.diff</filename>
            <type>text/plain</type>
            <size>12184</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYzNTI5KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDctMTYgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHBvc3NpYmlsaXR5IHRvIGR1bXBBc1RleHQgYW5kIGdlbmVy
YXRlIGEgcGl4ZWwgdGVzdCByZXN1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQyMzc0CisKKyAgICAgICAgQWRkIG9wdGlvbmFsIHBhcmFtZXRlciB0
byBzZXREdW1wQXNUZXh0KCkgdG8gYWxsb3cgZ2VuZXJhdGluZyBhIHBpeGVsIHRlc3QgcmVzdWx0
IGV2ZW4gaWYgZHVtcEFzVGV4dCBtb2RlLgorICAgICAgICBzZXREdW1wQXNUZXh0KHRydWUpIHdp
bGwgYWxzbyBnZW5lcmF0ZSBhIHBpeGVsIHRlc3QgcmVzdWx0IG5vdywgd2hlbiBydW5uaW5nIHJ1
bi13ZWJraXQtdGVzdHMgLS1waXhlbC10ZXN0cy4KKworICAgICAgICBUaGlzIGlzIG5lZWRlZCBm
b3IgdGhlIHN2Zy9keW5hbWljLXVwZGF0ZXMgdGVzdHMsIHdoaWNoIGRvbid0IHdhbnQgcmVuZGVy
IHRyZWUgZHVtcHMgYnV0IHRleHQgZHVtcHMgKyBhIHBpeGVsIHRlc3QgcmVzdWx0LgorICAgICAg
ICBBdCBzb21lIHBvaW50IERSVCBjaGFuZ2VkIHRvIG5vdCBnZW5lcmF0ZSBwaXhlbCB0ZXN0IHJl
c3VsdHMgd2hlbiB1c2luZyBkdW1wQXNUZXh0IC0gd2hpY2ggbWFrZXMgc2Vuc2UsIGJ1dCBicmVh
a3MgdGhlIHN2Zy9keW5hbWljLXVwZGF0ZXMgdGVzdC4KKworICAgICAgICBJbXBsZW1lbnRlZCBm
b3IgYWxsIERSVCBwbGF0Zm9ybXMsIGV4Y2VwdCBRdCwgYXMgaXQncyBub3QgY2xlYXIgaG93IGFy
Z3VtZW50cyB0byBmdW5jdGlvbnMgbGlrZSAic2V0RHVtcEFzVGV4dCIgYXJlIGhhbmRsZWQuCisg
ICAgICAgIChRdCBhbHdheXMgZHVtcHMgcGl4ZWwgdGVzdHMgd2hlbiB1c2luZyAtLXBpeGVsLXRl
c3RzIG1vZGUsIHNvIGl0IGRvZXMgbm90IGJyZWFrIGFueXRoaW5nKQorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKGR1bXBBc1RleHRB
bmRQaXhlbHNDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGlj
RnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1RleHRBbmRQaXhlbHMp
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBBc1RleHRBbmRQaXhlbHMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxl
cik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dEFuZFBpeGVscyk6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2hvdWxkRHVtcEFzVGV4dEFuZFBpeGVscyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVs
bDo6ZHVtcCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNw
cDoKKyAgICAgICAgKGR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbToKKyAgICAgICAgKGR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtcFJlbmRlclRyZWU6
OmR1bXApOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChkdW1wKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9EdW1wUmVuZGVy
VHJlZVd4LmNwcDoKKyAgICAgICAgKGR1bXApOgorCiAyMDEwLTA3LTE2ICBTaGluaWNoaXJvIEhh
bWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQW5vdGhlciB1bmV2aWV3ZWQg
YXR0ZW1wdCB0byBmaXggYnVpbGQuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA2MzUyNikKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVz
dENvbnRyb2xsCiAgICAgLCBtX2R1bXBJY29uQ2hhbmdlcyhmYWxzZSkKICAgICAsIG1fZHVtcFZp
c2l0ZWRMaW5rc0NhbGxiYWNrKGZhbHNlKQogICAgICwgbV9kdW1wV2lsbENhY2hlUmVzcG9uc2Uo
ZmFsc2UpCisgICAgLCBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzKHRydWUpCiAgICAgLCBtX2NhbGxD
bG9zZU9uV2ViVmlld3ModHJ1ZSkKICAgICAsIG1fY2FuT3BlbldpbmRvd3MoZmFsc2UpCiAgICAg
LCBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKQpAQCAtMTAyLDYgKzEw
MywxMCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wQXNUZXh0Q2FsbGJhY2soSlNDCiB7CiAgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CiAgICAgY29udHJv
bGxlci0+c2V0RHVtcEFzVGV4dCh0cnVlKTsKKworICAgIC8vIE9wdGlvbmFsIHBhcmFtYXRlciwg
ZGVzY3JpYmluZyB3aGV0aGVyIGl0J3MgYWxsb3dlZCB0byBkdW1wIHBpeGVsIHJlc3VsdHMgaW4g
ZHVtcEFzVGV4dCBtb2RlLgorICAgIGNvbnRyb2xsZXItPnNldEdlbmVyYXRlUGl4ZWxSZXN1bHRz
KGFyZ3VtZW50Q291bnQgPiAwID8gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNb
MF0pIDogZmFsc2UpOworCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogfQogCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDcgKzEy
MSwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGR1bXBBc1RleHQoKSBjb25zdCB7IHJldHVybiBt
X2R1bXBBc1RleHQ7IH0KICAgICB2b2lkIHNldER1bXBBc1RleHQoYm9vbCBkdW1wQXNUZXh0KSB7
IG1fZHVtcEFzVGV4dCA9IGR1bXBBc1RleHQ7IH0KLSAgICAKKworICAgIGJvb2wgZ2VuZXJhdGVQ
aXhlbFJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzOyB9Cisg
ICAgdm9pZCBzZXRHZW5lcmF0ZVBpeGVsUmVzdWx0cyhib29sIGdlbmVyYXRlUGl4ZWxSZXN1bHRz
KSB7IG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBnZW5lcmF0ZVBpeGVsUmVzdWx0czsgfQorCiAg
ICAgYm9vbCBkdW1wQmFja0ZvcndhcmRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQmFja0Zv
cndhcmRMaXN0OyB9CiAgICAgdm9pZCBzZXREdW1wQmFja0ZvcndhcmRMaXN0KGJvb2wgZHVtcEJh
Y2tGb3J3YXJkTGlzdCkgeyBtX2R1bXBCYWNrRm9yd2FyZExpc3QgPSBkdW1wQmFja0ZvcndhcmRM
aXN0OyB9CiAKQEAgLTMwMiw2ICszMDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wSWNv
bkNoYW5nZXM7CiAgICAgYm9vbCBtX2R1bXBWaXNpdGVkTGlua3NDYWxsYmFjazsKICAgICBib29s
IG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlOworICAgIGJvb2wgbV9nZW5lcmF0ZVBpeGVsUmVzdWx0
czsKICAgICBib29sIG1fY2FsbENsb3NlT25XZWJWaWV3czsKICAgICBib29sIG1fY2FuT3Blbldp
bmRvd3M7CiAgICAgYm9vbCBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsKSW5k
ZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzAsOSArMjMwLDE0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OldvcmtRdWV1ZTo6YWQKICAgICBtX3F1ZXVlLmFwcGVuZCh3b3JrKTsKIH0KIAotdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50KiByZXN1bHQpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQXNUZXh0KGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAg
ICAgbV9kdW1wQXNUZXh0ID0gdHJ1ZTsKKworICAgIC8vIE9wdGlvbmFsIHBhcmFtYXRlciwgZGVz
Y3JpYmluZyB3aGV0aGVyIGl0J3MgYWxsb3dlZCB0byBkdW1wIHBpeGVsIHJlc3VsdHMgaW4gZHVt
cEFzVGV4dCBtb2RlLgorICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNb
MF0uaXNCb29sKCkpCisgICAgICAgIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgPSBhcmd1bWVudHNb
MF0udmFsdWUuYm9vbFZhbHVlOworCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKQEAgLTQ3
NSw2ICs0ODAsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgpCiAgICAgbV9k
dW1wV2luZG93U3RhdHVzQ2hhbmdlcyA9IGZhbHNlOwogICAgIG1fZHVtcFNlbGVjdGlvblJlY3Qg
PSBmYWxzZTsKICAgICBtX2R1bXBUaXRsZUNoYW5nZXMgPSBmYWxzZTsKKyAgICBtX2dlbmVyYXRl
UGl4ZWxSZXN1bHRzID0gdHJ1ZTsKICAgICBtX2FjY2VwdHNFZGl0aW5nID0gdHJ1ZTsKICAgICBt
X3dhaXRVbnRpbERvbmUgPSBmYWxzZTsKICAgICBtX2Nhbk9wZW5XaW5kb3dzID0gZmFsc2U7Cklu
ZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNl
dHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBwYWdlcyBhcwogICAg
IC8vIHBsYWluIHRleHQsIHJhdGhlciB0aGFuIGFzIGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0
aGUgcmVuZGVyZXIncyBzdGF0ZS4KLSAgICAvLyBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBp
Z25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgorICAgIC8vIEl0IHRha2VzIGFuIG9wdGlv
bmFsIGFyZ3VtZW50LCB3aGV0aGVyIHRvIGR1bXAgcGl4ZWxzIHJlc3VsdHMgb3Igbm90LgogICAg
IHZvaWQgZHVtcEFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAK
ICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBzZXQgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRl
c3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lCkBAIC0zMDUsNiArMzA1LDcgQEAgcHVibGljOgogICAg
IGJvb2wgc2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpIHsgcmV0dXJuIG1fZHVtcFRpdGxlQ2hhbmdl
czsgfQogICAgIGJvb2wgc2hvdWxkRHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMoKSB7IHJl
dHVybiBtX2R1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zOyB9CiAgICAgYm9vbCBzaG91bGRE
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKSB7IHJldHVybiBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dDsg
fQorICAgIGJvb2wgc2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSB7IHJldHVybiBtX2dlbmVy
YXRlUGl4ZWxSZXN1bHRzOyB9CiAgICAgYm9vbCBhY2NlcHRzRWRpdGluZygpIHsgcmV0dXJuIG1f
YWNjZXB0c0VkaXRpbmc7IH0KICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgeyByZXR1cm4gbV9j
YW5PcGVuV2luZG93czsgfQogICAgIGJvb2wgc2hvdWxkQWRkRmlsZVRvUGFzdGVib2FyZCgpIHsg
cmV0dXJuIG1fc2hvdWxkQWRkRmlsZVRvUGFzdGVib2FyZDsgfQpAQCAtNDIwLDYgKzQyMSw5IEBA
IHByaXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgb3V0cHV0IGEgbWVzc2FnZSB3aGVuIHRoZSBwYWdl
IHRpdGxlIGlzIGNoYW5nZWQuCiAgICAgYm9vbCBtX2R1bXBUaXRsZUNoYW5nZXM7CiAKKyAgICAv
LyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIGdlbmVyYXRlIHBpeGVsIHJlc3VsdHMgaW4g
ZHVtcEFzVGV4dCBtb2RlCisgICAgYm9vbCBtX2dlbmVyYXRlUGl4ZWxSZXN1bHRzOworCiAgICAg
Ly8gSWYgdHJ1ZSwgdGhlIGVsZW1lbnQgd2lsbCBiZSB0cmVhdGVkIGFzIGVkaXRhYmxlLiAgVGhp
cyB2YWx1ZSBpcyByZXR1cm5lZAogICAgIC8vIGZyb20gdmFyaW91cyBlZGl0aW5nIGNhbGxiYWNr
cyB0aGF0IGFyZSBjYWxsZWQganVzdCBiZWZvcmUgZWRpdCBvcGVyYXRpb25zCiAgICAgLy8gYXJl
IGFsbG93ZWQuCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5jcHAJKHJldmlzaW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTExLDcg
KzUxMSw3IEBAIHZvaWQgVGVzdFNoZWxsOjpkdW1wKCkKICAgICBpZiAoZHVtcGVkQW55dGhpbmcg
JiYgbV9wYXJhbXMucHJpbnRTZXBhcmF0b3JzKQogICAgICAgICBtX3ByaW50ZXItPmhhbmRsZVRl
eHRGb290ZXIoKTsKIAotICAgIGlmIChtX3BhcmFtcy5kdW1wUGl4ZWxzICYmICFzaG91bGREdW1w
QXNUZXh0KSB7CisgICAgaWYgKG1fcGFyYW1zLmR1bXBQaXhlbHMgJiYgbV9sYXlvdXRUZXN0Q29u
dHJvbGxlci0+c2hvdWxkR2VuZXJhdGVQaXhlbFJlc3VsdHMoKSkgewogICAgICAgICAvLyBJbWFn
ZSBvdXRwdXQ6IHdlIHdyaXRlIHRoZSBpbWFnZSBkYXRhIHRvIHRoZSBmaWxlIGdpdmVuIG9uIHRo
ZQogICAgICAgICAvLyBjb21tYW5kIGxpbmUgKGZvciB0aGUgZHVtcCBwaXhlbHMgYXJndW1lbnQp
LCBhbmQgdGhlIE1ENSBzdW0gdG8KICAgICAgICAgLy8gc3Rkb3V0LgpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lv
biA2MzUyNikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJl
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxOSwxMSArNDE5LDExIEBAIHZvaWQgZHVtcCgpCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoZHVtcFBpeGVscykgewotICAgICAgICBpZiAoIWdM
YXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1w
U291cmNlQXNXZWJBcmNoaXZlKCkpIHsKLSAgICAgICAgICAgIGR1bXBXZWJWaWV3QXNQaXhlbHNB
bmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZXhwZWN0ZWRQaXhl
bEhhc2goKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaWYgKGR1bXBQaXhlbHMKKyAgICAgJiYg
Z0xheW91dFRlc3RDb250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpCisgICAgICYmICFn
TGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKQorICAgICAmJiAhZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpCisgICAgICAgIGR1
bXBXZWJWaWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0Q29udHJv
bGxlci0+ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CiAKICAgICAvLyBGSVhNRTogY2FsbCBkaXNwbGF5
V2ViVmlldyBoZXJlIHdoZW4gd2Ugc3VwcG9ydCAtLXBhaW50CiAKSW5kZXg6IFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDYz
NTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIGR1bXAoKQogICAgICAg
ICB9ICAgICAgICAgICAgCiAgICAgfQogCi0gICAgaWYgKGR1bXBQaXhlbHMgJiYgIWR1bXBBc1Rl
eHQpCisgICAgaWYgKGR1bXBQaXhlbHMgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5nZW5lcmF0
ZVBpeGVsUmVzdWx0cygpKQogICAgICAgICAvLyBGSVhNRTogd2hlbiBpc1ByaW50aW5nIGlzIHNl
dCwgZHVtcCB0aGUgaW1hZ2Ugd2l0aCBwYWdlIHNlcGFyYXRvcnMuCiAgICAgICAgIGR1bXBXZWJW
aWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+
ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCShyZXZpc2lvbiA2MzUyNikKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NDcsNiArODQ3LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6ZHVtcCgpCiAg
ICAgZnB1dHMoIiNFT0ZcbiIsIHN0ZG91dCk7CiAgICAgZnB1dHMoIiNFT0ZcbiIsIHN0ZGVycik7
CiAKKyAgICAvLyBGSVhNRTogQWxsIG90aGVyIHBvcnRzIGRvbid0IGR1bXAgcGl4ZWxzLCBpZiBn
ZW5lcmF0ZVBpeGVsUmVzdWx0cyBpcyBmYWxzZS4KICAgICBpZiAobV9kdW1wUGl4ZWxzKSB7CiAg
ICAgICAgIFFJbWFnZSBpbWFnZShtX3BhZ2UtPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1h
dF9BUkdCMzIpOwogICAgICAgICBpbWFnZS5maWxsKFF0Ojp3aGl0ZSk7CkluZGV4OiBXZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAJKHJldmlz
aW9uIDYzNTI2KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJU
cmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIzLDEwICs3MjMsMTEgQEAgdm9pZCBkdW1wKCkK
ICAgICAgICAgZmZsdXNoKHN0ZGVycik7CiAgICAgfQogCi0gICAgaWYgKGR1bXBQaXhlbHMpIHsK
LSAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1RleHQoKSAmJiAhZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYgIWdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQotICAgICAgICAgICAgZHVtcFdl
YlZpZXdBc1BpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQoZ0xheW91dFRlc3RDb250cm9sbGVy
LT5leHBlY3RlZFBpeGVsSGFzaCgpKTsKLSAgICB9CisgICAgaWYgKGR1bXBQaXhlbHMKKyAgICAg
JiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpCisgICAgICYm
ICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKQorICAgICAmJiAh
Z0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpCisgICAgICAg
IGR1bXBXZWJWaWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdMYXlvdXRUZXN0Q29u
dHJvbGxlci0+ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CiAKICAgICBwcmludGYoIiNFT0ZcbiIpOyAg
IC8vIHRlcm1pbmF0ZSB0aGUgKHBvc3NpYmx5IGVtcHR5KSBwaXhlbHMgYmxvY2sKICAgICBmZmx1
c2goc3Rkb3V0KTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5k
ZXJUcmVlV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4
L0R1bXBSZW5kZXJUcmVlV3guY3BwCShyZXZpc2lvbiA2MzUyNikKKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDEsMTMgKzIwMSwxMSBAQCB2b2lkIGR1bXAoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KGR1bXBQaXhlbHMpIHsKLSAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBB
c1RleHQoKSAmJiAKLSAgICAgICAgICAgICAgICAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1w
RE9NQXNXZWJBcmNoaXZlKCkgJiYgCi0gICAgICAgICAgICAgICAgIWdMYXlvdXRUZXN0Q29udHJv
bGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
QWRkIHN1cHBvcnQgZm9yIGR1bXBpbmcgcGl4ZWxzCi0gICAgICAgIH0KLQorICAgIGlmIChkdW1w
UGl4ZWxzCisgICAgICAgICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Z2VuZXJhdGVQaXhlbFJl
c3VsdHMoKQorICAgICAgICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJB
cmNoaXZlKCkKKyAgICAgICAgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFz
V2ViQXJjaGl2ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZHVtcGlu
ZyBwaXhlbHMKICAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgfQogCg==
</data>
<flag name="review"
          id="49863"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>