<?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>57408</bug_id>
          
          <creation_ts>2011-03-29 17:39:28 -0700</creation_ts>
          <short_desc>-webkit-min-device-pixel-ratio media query doesn&apos;t work post-SnowLeopard</short_desc>
          <delta_ts>2011-06-18 11:59:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>375928</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 17:39:28 -0700</bug_when>
    <thetext>Post-SnowLeopard, typing &quot;javascript:alert(window.devicePixelRatio)&quot; into the URL field always returns 1 regardless of the actual device pixel ratio.

&lt;rdar://problem/8665411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375944</commentid>
    <comment_count>1</comment_count>
      <attachid>87445</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 18:00:26 -0700</bug_when>
    <thetext>Created attachment 87445
Patch

The new and the old APIs are implemented on both NSWindow and NSScreen. The call sites that used to have to nil-check NSWindow now just default to NSScreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375946</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 18:03:05 -0700</bug_when>
    <thetext>Attachment 87445 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 3 in 19 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>375954</commentid>
    <comment_count>3</comment_count>
      <attachid>87447</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 18:08:28 -0700</bug_when>
    <thetext>Created attachment 87447
New patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375955</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 18:08:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 87445 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Total errors found: 3 in 19 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

You lie style bot. You lie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375957</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 18:10:05 -0700</bug_when>
    <thetext>Attachment 87447 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 3 in 19 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>375959</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 18:11:47 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Attachment 87447 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Total errors found: 3 in 19 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Whatevs. Known liar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375960</commentid>
    <comment_count>7</comment_count>
      <attachid>87447</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-29 18:11:54 -0700</bug_when>
    <thetext>Comment on attachment 87447
New patch

I’d probably use 72 instead of 72.0 in all those places. If this really is the best practice, then lets land this. I’m kind of surprised, though, because I’d think that we might want a different value if the HI scale factor of the window the view is being displayed in was 2X.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376062</commentid>
    <comment_count>8</comment_count>
      <attachid>87469</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 23:29:33 -0700</bug_when>
    <thetext>Created attachment 87469
Way cooler patch

Thanks for the review Darin, but I take it back! deviceDescription is so two weeks ago. backingScaleFactor is all the rage these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376063</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 23:31:59 -0700</bug_when>
    <thetext>Attachment 87469 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 3 in 19 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>376065</commentid>
    <comment_count>10</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 23:32:43 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Attachment 87469 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
&gt; Total errors found: 3 in 19 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Oh shush, you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376067</commentid>
    <comment_count>11</comment_count>
      <attachid>87469</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-03-29 23:35:35 -0700</bug_when>
    <thetext>Comment on attachment 87469
Way cooler patch

r=me

Style checker&apos;s lies are probably because the usual style is to put the bugzilla number on a separate line after the bug title. Suggest making that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376069</commentid>
    <comment_count>12</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2011-03-29 23:44:11 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 87469 [details])
&gt; r=me
&gt; 
&gt; Style checker&apos;s lies are probably because the usual style is to put the bugzilla number on a separate line after the bug title. Suggest making that change.

Thanks Maciej! I begrudgingly submit my ChangeLog individuality to the style bot overlords. 

Committed with revision 82398.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380608</commentid>
    <comment_count>13</comment_count>
      <attachid>87447</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-06 10:46:31 -0700</bug_when>
    <thetext>Comment on attachment 87447
New patch

Cleared Darin Adler&apos;s review+ from obsolete attachment 87447 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87445</attachid>
            <date>2011-03-29 18:00:26 -0700</date>
            <delta_ts>2011-03-29 18:08:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>16060</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMzY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjkgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU3NDA4IHdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIAorICAgICAgICBtZWRp
YSBxdWVyeSBkb2Vzbid0IHdvcmsgcG9zdC1Tbm93TGVvcGFyZCAKKyAgICAgICAgLWFuZCBjb3Jy
ZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY2NTQxMT4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ondp
bmRvd1NjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVXNlclNwYWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvRGV2aWNlU3BhY2UpOgorCiAyMDExLTAzLTI5ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQkocmV2
aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3NiwyMiBAQCBOU1NjcmVlbiAqc2Ny
ZWVuRm9yV2luZG93KE5TV2luZG93ICp3aW5kCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorc3RhdGlj
IENHRmxvYXQgd2luZG93U2NhbGVGYWN0b3IoTlNXaW5kb3cgKndpbmRvdykKK3sKKyNpZiAhZGVm
aW5lZChMRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAg
TlNTaXplIGRldmljZVJlc29sdXRpb25TaXplID0gW1tbd2luZG93IGRldmljZURlc2NyaXB0aW9u
XSBvYmplY3RGb3JLZXk6IE5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKKyAgICByZXR1
cm4gZGV2aWNlUmVzb2x1dGlvblNpemUud2lkdGggLyA3Mi4wOworI2Vsc2UKKyAgICByZXR1cm4g
W3dpbmRvdyB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisjZW5kaWYKK30KKwogRmxvYXRSZWN0IHRv
VXNlclNwYWNlKGNvbnN0IE5TUmVjdCYgcmVjdCwgTlNXaW5kb3cgKmRlc3RpbmF0aW9uKQogewog
ICAgIEZsb2F0UmVjdCB1c2VyUmVjdCA9IHJlY3Q7CiAgICAgdXNlclJlY3Quc2V0WShOU01heFko
W3NjcmVlbkZvcldpbmRvdyhkZXN0aW5hdGlvbikgZnJhbWVdKSAtICh1c2VyUmVjdC55KCkgKyB1
c2VyUmVjdC5oZWlnaHQoKSkpOyAvLyBmbGlwCiAgICAgaWYgKGRlc3RpbmF0aW9uKQotICAgICAg
ICB1c2VyUmVjdC5zY2FsZSgxIC8gW2Rlc3RpbmF0aW9uIHVzZXJTcGFjZVNjYWxlRmFjdG9yXSk7
IC8vIHNjYWxlIGRvd24KKyAgICAgICAgdXNlclJlY3Quc2NhbGUoMSAvIHdpbmRvd1NjYWxlRmFj
dG9yKGRlc3RpbmF0aW9uKSk7IC8vIHNjYWxlIGRvd24KICAgICByZXR1cm4gdXNlclJlY3Q7CiB9
CiAKQEAgLTg5LDcgKzk5LDcgQEAgTlNSZWN0IHRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0
JiByZQogewogICAgIEZsb2F0UmVjdCBkZXZpY2VSZWN0ID0gcmVjdDsKICAgICBpZiAoc291cmNl
KQotICAgICAgICBkZXZpY2VSZWN0LnNjYWxlKFtzb3VyY2UgdXNlclNwYWNlU2NhbGVGYWN0b3Jd
KTsgLy8gc2NhbGUgdXAKKyAgICAgICAgZGV2aWNlUmVjdC5zY2FsZSh3aW5kb3dTY2FsZUZhY3Rv
cihzb3VyY2UpKTsgLy8gc2NhbGUgdXAKICAgICBkZXZpY2VSZWN0LnNldFkoTlNNYXhZKFtzY3Jl
ZW5Gb3JXaW5kb3coc291cmNlKSBmcmFtZV0pIC0gKGRldmljZVJlY3QueSgpICsgZGV2aWNlUmVj
dC5oZWlnaHQoKSkpOyAvLyBmbGlwCiAgICAgcmV0dXJuIGRldmljZVJlY3Q7CiB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCShyZXZpc2lvbiA4MjM3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDExLTAzLTI5ICBCZXRoIERha2luICA8YmRh
a2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NzQwOCB3ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyAKKyAgICAgICAgbWVkaWEgcXVlcnkg
ZG9lc24ndCB3b3JrIHBvc3QtU25vd0xlb3BhcmQgCisgICAgICAgIC1hbmQgY29ycmVzcG9uZGlu
Zy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2NjU0MTE+CisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dXNlclNwYWNlU2NhbGVGYWN0b3IpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmg6CisgICAgICAgIChRV0tQYWdlUHJp
dmF0ZTo6dXNlclNwYWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvZ3RrL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6dXNlclNwYWNl
U2NhbGVGYWN0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3Ojp1c2VyU3BhY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnVzZXJTcGFjZVNjYWxlRmFjdG9yKToKKwogMjAxMS0wMy0yOSAgSmVmZiBN
aWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1
MSw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKEMKICAgICBlbmNv
ZGVyLT5lbmNvZGUoaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0ZW1JRCk7CiAgICAgZW5jb2Rlci0+
ZW5jb2RlKGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk7CiAgICAgZW5jb2Rlci0+ZW5j
b2RlKGNhblJ1bk1vZGFsKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUodXNlclNwYWNlU2NhbGVGYWN0
b3IpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGVuY29kZXItPmVuY29kZShpc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk7CkBAIC05OSw2ICsxMDAsOCBAQCBib29sIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShDCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMudXNlclNwYWNlU2NhbGVG
YWN0b3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsOCBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBjYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWw7CiAgICAgYm9vbCBjYW5SdW5Nb2RhbDsKIAorICAgIGZsb2F0
IHVzZXJTcGFjZVNjYWxlRmFjdG9yOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgaXNT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXN0b21SZXByZXNlbnRhdGlvblpvb21GYWN0b3Io
ZG91YmxlKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVz
KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpID0gMDsKKworICAg
IHZpcnR1YWwgZmxvYXQgdXNlclNwYWNlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjIyLDYgKzI2MjIsNyBAQCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgcGFyYW1ldGVycy5o
aWdoZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEID0gV2ViQmFja0ZvcndhcmRMaXN0SXRlbTo6aGln
aGVkVXNlZEl0ZW1JRCgpOwogICAgIHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsID0gbV91aUNsaWVudC5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKICAg
ICBwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsID0gbV91aUNsaWVudC5jYW5SdW5Nb2RhbCgpOworICAg
IHBhcmFtZXRlcnMudXNlclNwYWNlU2NhbGVGYWN0b3IgPSBtX3BhZ2VDbGllbnQtPnVzZXJTcGFj
ZVNjYWxlRmFjdG9yKCk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgcGFyYW1ldGVycy5pc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IG1faXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJ
bXBsLmgJKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzExMCw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2Vi
Q29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5lbCk7CiAgICAgdmlydHVhbCB2
b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV2ViQ29yZTo6RWRpdG9yQ2xpZW50OjpB
dXRvY29ycmVjdGlvblJlc3BvbnNlVHlwZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZyk7CiAKKyAgICB2aXJ0dWFsIGZsb2F0IHVz
ZXJTcGFjZVNjYWxlRmFjdG9yKCkgY29uc3Q7CisKICAgICBXS1ZpZXcqIG1fd2tWaWV3OwogICAg
IFJldGFpblB0cjxXZWJFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0OwogI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiA4MjI3
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC00NzAsNCArNDcwLDE0IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OnJlY29yZEF1dG9jb3JyZWN0aW8KICNlbmRpZgogfQogCitmbG9hdCBQYWdlQ2xpZW50SW1wbDo6
dXNlclNwYWNlU2NhbGVGYWN0b3IoKSBjb25zdAoreworI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKKyAgICBOU1NpemUgZGV2aWNlUmVzb2x1dGlvblNpemUgPSBbW1tbTlNT
Y3JlZW4gbWFpblNjcmVlbl0gZGV2aWNlRGVzY3JpcHRpb25dIG9iamVjdEZvcktleTogTlNEZXZp
Y2VSZXNvbHV0aW9uXSBzaXplVmFsdWVdOworICAgIHJldHVybiBkZXZpY2VSZXNvbHV0aW9uU2l6
ZS53aWR0aCAvIDcyLjA7CisjZWxzZQorICAgIHJldHVybiBbW05TU2NyZWVuIG1haW5TY3JlZW5d
IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaAko
cmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CiAKKyAgICB2aXJ0dWFsIGZsb2F0IHVzZXJTcGFjZVNj
YWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQorCiAgICAgdm9pZCBwYWludChRUGFpbnRl
ciogcGFpbnRlciwgUVJlY3QpOwogCiAgICAgdm9pZCBrZXlQcmVzc0V2ZW50KFFLZXlFdmVudCop
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmgJKHJldmlzaW9uIDgy
Mjc5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMiw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRG
aW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOworICAgIHZpcnR1YWwgZmxvYXQgdXNlclNw
YWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiAxOyB9CiAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRFbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5o
CShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGxheVZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CisgICAgdmlydHVh
bCBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KICAgICAK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNWaWV3V2luZG93QWN0aXZlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShy
ZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDggKzExNyw3IEBA
IEZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KCkKIAogZmxvYXQgV2ViQ2hyb21l
Q2xpZW50OjpzY2FsZUZhY3RvcigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gMS4wOworICAgIHJldHVybiBtX3BhZ2UtPnVzZXJTcGFjZVNjYWxlRmFjdG9yKCk7CiB9CiAK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1cygpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTYwLDYgKzE2MCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25z
dCAKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRlcnMuY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgICwgbV9jYW5SdW5Nb2RhbChwYXJhbWV0
ZXJzLmNhblJ1bk1vZGFsKQogICAgICwgbV9pc1J1bm5pbmdNb2RhbChmYWxzZSkKKyAgICAsIG1f
dXNlclNwYWNlU2NhbGVGYWN0b3IocGFyYW1ldGVycy51c2VyU3BhY2VTY2FsZUZhY3RvcikKICAg
ICAsIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlKGZhbHNlKQogICAgICwgbV9j
YWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlKGZhbHNlKQogewpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA4MjI3OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJ1bk1vZGFsKCk7
CiAKKyAgICBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdXNl
clNwYWNlU2NhbGVGYWN0b3I7IH0KKwogICAgIHZvaWQgc2V0TWVtb3J5Q2FjaGVNZXNzYWdlc0Vu
YWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIGZvcmNlUmVwYWludFdpdGhvdXRDYWxsYmFjaygpOwpA
QCAtNTg4LDYgKzU5MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhblJ1bk1vZGFsOwogICAg
IGJvb2wgbV9pc1J1bm5pbmdNb2RhbDsKIAorICAgIGZsb2F0IG1fdXNlclNwYWNlU2NhbGVGYWN0
b3I7CisKICAgICBib29sIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlOwogICAg
IGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMzcwKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMtMjkgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU3NDA4IHdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIAorICAgICAgICBtZWRp
YSBxdWVyeSBkb2Vzbid0IHdvcmsgcG9zdC1Tbm93TGVvcGFyZCAKKyAgICAgICAgLWFuZCBjb3Jy
ZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY2NTQxMT4KKworICAgICAgICAq
IE1pc2MvV2ViTlNDb250cm9sRXh0cmFzLm06CisgICAgICAgICgtW05TQ29udHJvbCBzaXplVG9G
aXRBbmRBZGp1c3RXaW5kb3dIZWlnaHRdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNjYWxlRmFjdG9yKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0dGFjaFJv
b3RMYXllcjpdKToKKwogMjAxMS0wMy0yOSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBvcmRlciBvZiB0aGUgY29udGV4dCBtZW51IHRv
IGJldHRlciBtYXRjaCBBcHBLaXQgb24gTWFjLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJOU0NvbnRyb2xFeHRyYXMubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViTlNDb250cm9sRXh0cmFzLm0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcg
KzQ0LDE2IEBAIC0gKHZvaWQpc2l6ZVRvRml0QW5kQWRqdXN0V2luZG93SGVpZ2h0CiAKICAgICBO
U1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKICAgICBOU1JlY3Qgd2luZG93RnJhbWUg
PSBbd2luZG93IGZyYW1lXTsKLSAgICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCArPSBoZWlnaHRE
ZWx0YSAqIFt3aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworCisgICAgQ0dGbG9hdCB1c2Vy
U3BhY2VTY2FsZUZhY3RvcjsKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgTlNTaXplIGRldmljZVJlc29s
dXRpb25TaXplID0gW1tbd2luZG93IGRldmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6IE5T
RGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKKyAgICB1c2VyU3BhY2VTY2FsZUZhY3RvciA9
IGRldmljZVJlc29sdXRpb25TaXplLndpZHRoIC8gNzIuMDsKKyNlbHNlCisgICAgdXNlclNwYWNl
U2NhbGVGYWN0b3IgPSBbd2luZG93IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNlbmRpZgorCisg
ICAgd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQgKz0gaGVpZ2h0RGVsdGEgKiB1c2VyU3BhY2VTY2Fs
ZUZhY3RvcjsKICAgICBbd2luZG93IHNldEZyYW1lOndpbmRvd0ZyYW1lIGRpc3BsYXk6Tk9dOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc4LDkg
KzE3OCwxMiBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCiAKIGZsb2F0
IFdlYkNocm9tZUNsaWVudDo6c2NhbGVGYWN0b3IoKQogewotICAgIGlmIChOU1dpbmRvdyAqd2lu
ZG93ID0gW21fd2ViVmlldyB3aW5kb3ddKQotICAgICAgICByZXR1cm4gW3dpbmRvdyAgdXNlclNw
YWNlU2NhbGVGYWN0b3JdOworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBOU1NpemUgZGV2aWNlUmVzb2x1
dGlvblNpemUgPSBbW1tbTlNTY3JlZW4gbWFpblNjcmVlbl0gZGV2aWNlRGVzY3JpcHRpb25dIG9i
amVjdEZvcktleTogTlNEZXZpY2VSZXNvbHV0aW9uXSBzaXplVmFsdWVdOworICAgIHJldHVybiBk
ZXZpY2VSZXNvbHV0aW9uU2l6ZS53aWR0aCAvIDcyLjA7CisjZWxzZQogICAgIHJldHVybiBbW05T
U2NyZWVuIG1haW5TY3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNlbmRpZgogfQogCiB2
b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXMoKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwNjAsNyArMzA2MCwx
MyBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKICAgICAgICAgLy8gV2UgbWF5IGhhdmUg
Y3JlYXRlZCB0aGUgbGF5ZXIgaG9zdGluZyB2aWV3IHdoaWxlIG91dHNpZGUgdGhlIHdpbmRvdy4g
VXBkYXRlIHRoZSBzY2FsZSBmYWN0b3IKICAgICAgICAgLy8gbm93IHRoYXQgd2UgaGF2ZSBhIHdp
bmRvdyB0byBnZXQgaXQgZnJvbS4KICAgICAgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdW
aWV3KSB7Ci0gICAgICAgICAgICBDR0Zsb2F0IHNjYWxlRmFjdG9yID0gW1tzZWxmIHdpbmRvd10g
dXNlclNwYWNlU2NhbGVGYWN0b3JdOworICAgICAgICAgICAgQ0dGbG9hdCBzY2FsZUZhY3RvcjsK
KyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgICAgICAgICBOU1Np
emUgZGV2aWNlUmVzb2x1dGlvblNpemUgPSBbW1tbTlNTY3JlZW4gbWFpblNjcmVlbl0gZGV2aWNl
RGVzY3JpcHRpb25dIG9iamVjdEZvcktleTogTlNEZXZpY2VSZXNvbHV0aW9uXSBzaXplVmFsdWVd
OworICAgICAgICAgICAgc2NhbGVGYWN0b3IgPSBkZXZpY2VSZXNvbHV0aW9uU2l6ZS53aWR0aCAv
IDcyLjA7CisjZWxzZQorICAgICAgICAgICAgc2NhbGVGYWN0b3IgPSBbW05TU2NyZWVuIG1haW5T
Y3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNlbmRpZgogICAgICAgICAgICAgW1tfcHJp
dmF0ZS0+bGF5ZXJIb3N0aW5nVmlldyBsYXllcl0gc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RN
YWtlU2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yLCAxKV07CiAgICAgICAgIH0KICNlbmRp
ZgpAQCAtNTU3NCw3ICs1NTgwLDE0IEBAIC0gKHZvaWQpYXR0YWNoUm9vdExheWVyOihDQUxheWVy
KilsYXllcgogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCiAgICAgLy8gSWYgd2Ug
YXJlbid0IGluIHRoZSB3aW5kb3cgeWV0LCB3ZSdsbCB1c2UgdGhlIHNjcmVlbidzIHNjYWxlIGZh
Y3RvciBub3csIGFuZCByZXNldCB0aGUgc2NhbGUgCiAgICAgLy8gdmlhIC12aWV3RGlkTW92ZVRv
V2luZG93LgotICAgIENHRmxvYXQgc2NhbGVGYWN0b3IgPSBbc2VsZiB3aW5kb3ddID8gW1tzZWxm
IHdpbmRvd10gdXNlclNwYWNlU2NhbGVGYWN0b3JdIDogW1tOU1NjcmVlbiBtYWluU2NyZWVuXSB1
c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisgICAgQ0dGbG9hdCBzY2FsZUZhY3RvcjsKKyNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgTlNTaXplIGRldmljZVJlc29sdXRp
b25TaXplID0gW1tbW05TU2NyZWVuIG1haW5TY3JlZW5dIGRldmljZURlc2NyaXB0aW9uXSBvYmpl
Y3RGb3JLZXk6IE5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKKyAgICBzY2FsZUZhY3Rv
ciA9IGRldmljZVJlc29sdXRpb25TaXplLndpZHRoIC8gNzIuMDsKKyNlbHNlCisgICAgc2NhbGVG
YWN0b3IgPSBbW05TU2NyZWVuIG1haW5TY3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNl
bmRpZgorCiAgICAgW3ZpZXdMYXllciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2Fs
ZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IsIDEpXTsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87447</attachid>
            <date>2011-03-29 18:08:28 -0700</date>
            <delta_ts>2011-04-06 10:46:31 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>16066</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMzY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjkgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU3NDA4IHdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIAorICAgICAgICBtZWRp
YSBxdWVyeSBkb2Vzbid0IHdvcmsgcG9zdC1Tbm93TGVvcGFyZCAKKyAgICAgICAgLWFuZCBjb3Jy
ZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY2NTQxMT4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ondp
bmRvd1NjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVXNlclNwYWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvRGV2aWNlU3BhY2UpOgorCiAyMDExLTAzLTI5ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQkocmV2
aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3NiwyMiBAQCBOU1NjcmVlbiAqc2Ny
ZWVuRm9yV2luZG93KE5TV2luZG93ICp3aW5kCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorc3RhdGlj
IENHRmxvYXQgd2luZG93U2NhbGVGYWN0b3IoTlNXaW5kb3cgKndpbmRvdykKK3sKKyNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisgICAgTlNTaXplIGRldmljZVJlc29sdXRpb25TaXplID0gW1tbd2luZG93IGRldmlj
ZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6TlNEZXZpY2VSZXNvbHV0aW9uXSBzaXplVmFsdWVd
OworICAgIHJldHVybiBkZXZpY2VSZXNvbHV0aW9uU2l6ZS53aWR0aCAvIDcyLjA7CisjZWxzZQor
ICAgIHJldHVybiBbd2luZG93IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNlbmRpZgorfQorCiBG
bG9hdFJlY3QgdG9Vc2VyU3BhY2UoY29uc3QgTlNSZWN0JiByZWN0LCBOU1dpbmRvdyAqZGVzdGlu
YXRpb24pCiB7CiAgICAgRmxvYXRSZWN0IHVzZXJSZWN0ID0gcmVjdDsKICAgICB1c2VyUmVjdC5z
ZXRZKE5TTWF4WShbc2NyZWVuRm9yV2luZG93KGRlc3RpbmF0aW9uKSBmcmFtZV0pIC0gKHVzZXJS
ZWN0LnkoKSArIHVzZXJSZWN0LmhlaWdodCgpKSk7IC8vIGZsaXAKICAgICBpZiAoZGVzdGluYXRp
b24pCi0gICAgICAgIHVzZXJSZWN0LnNjYWxlKDEgLyBbZGVzdGluYXRpb24gdXNlclNwYWNlU2Nh
bGVGYWN0b3JdKTsgLy8gc2NhbGUgZG93bgorICAgICAgICB1c2VyUmVjdC5zY2FsZSgxIC8gd2lu
ZG93U2NhbGVGYWN0b3IoZGVzdGluYXRpb24pKTsgLy8gc2NhbGUgZG93bgogICAgIHJldHVybiB1
c2VyUmVjdDsKIH0KIApAQCAtODksNyArOTksNyBAQCBOU1JlY3QgdG9EZXZpY2VTcGFjZShjb25z
dCBGbG9hdFJlY3QmIHJlCiB7CiAgICAgRmxvYXRSZWN0IGRldmljZVJlY3QgPSByZWN0OwogICAg
IGlmIChzb3VyY2UpCi0gICAgICAgIGRldmljZVJlY3Quc2NhbGUoW3NvdXJjZSB1c2VyU3BhY2VT
Y2FsZUZhY3Rvcl0pOyAvLyBzY2FsZSB1cAorICAgICAgICBkZXZpY2VSZWN0LnNjYWxlKHdpbmRv
d1NjYWxlRmFjdG9yKHNvdXJjZSkpOyAvLyBzY2FsZSB1cAogICAgIGRldmljZVJlY3Quc2V0WShO
U01heFkoW3NjcmVlbkZvcldpbmRvdyhzb3VyY2UpIGZyYW1lXSkgLSAoZGV2aWNlUmVjdC55KCkg
KyBkZXZpY2VSZWN0LmhlaWdodCgpKSk7IC8vIGZsaXAKICAgICByZXR1cm4gZGV2aWNlUmVjdDsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMzcwKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDMtMjkgIEJldGgg
RGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU3NDA4IHdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIAorICAgICAgICBt
ZWRpYSBxdWVyeSBkb2Vzbid0IHdvcmsgcG9zdC1Tbm93TGVvcGFyZCAKKyAgICAgICAgLWFuZCBj
b3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY2NTQxMT4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp1c2VyU3BhY2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlX3AuaDoKKyAgICAgICAg
KFFXS1BhZ2VQcml2YXRlOjp1c2VyU3BhY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViVmlldy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
Ojp1c2VyU3BhY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnVzZXJTcGFjZVNjYWxlRmFjdG9yKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2NhbGVGYWN0b3IpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6V2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXNlclNwYWNlU2NhbGVGYWN0b3IpOgorCiAyMDExLTAz
LTI5ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUxLDYgKzUxLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
QwogICAgIGVuY29kZXItPmVuY29kZShoaWdoZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEKTsKICAg
ICBlbmNvZGVyLT5lbmNvZGUoY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTsKICAgICBl
bmNvZGVyLT5lbmNvZGUoY2FuUnVuTW9kYWwpOworICAgIGVuY29kZXItPmVuY29kZSh1c2VyU3Bh
Y2VTY2FsZUZhY3Rvcik7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgZW5jb2Rlci0+ZW5jb2Rl
KGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKQEAgLTk5LDYgKzEwMCw4IEBAIGJvb2wgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKEMKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy51c2Vy
U3BhY2VTY2FsZUZhY3RvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JN
KE1BQykKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmlzU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MSw2ICs3MSw4IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKICAgICBib29sIGNhblJ1bk1vZGFsOwog
CisgICAgZmxvYXQgdXNlclNwYWNlU2NhbGVGYWN0b3I7CisKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsx
NDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1c3RvbVJlcHJlc2VudGF0aW9u
Wm9vbUZhY3Rvcihkb3VibGUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdT
dG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cykg
PSAwOworCisgICAgdmlydHVhbCBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0ID0g
MDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MjIsNiAr
MjYyMiw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjoKICAgICBw
YXJhbWV0ZXJzLmhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQgPSBXZWJCYWNrRm9yd2FyZExp
c3RJdGVtOjpoaWdoZWRVc2VkSXRlbUlEKCk7CiAgICAgcGFyYW1ldGVycy5jYW5SdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwgPSBtX3VpQ2xpZW50LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCgpOwogICAgIHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwgPSBtX3VpQ2xpZW50LmNhblJ1bk1v
ZGFsKCk7CisgICAgcGFyYW1ldGVycy51c2VyU3BhY2VTY2FsZUZhY3RvciA9IG1fcGFnZUNsaWVu
dC0+dXNlclNwYWNlU2NhbGVGYWN0b3IoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwYXJh
bWV0ZXJzLmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gbV9pc1NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGll
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwuaAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiAr
MTEwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBkaXNtaXNzQ29ycmVjdGlvblBh
bmVsU29vbihXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQ29ycmVjdGlvblBhbmVsKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXZWJDb3JlOjpFZGl0
b3JDbGllbnQ6OkF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKTsKIAorICAgIHZpcnR1
YWwgZmxvYXQgdXNlclNwYWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKKwogICAgIFdLVmlldyogbV93
a1ZpZXc7CiAgICAgUmV0YWluUHRyPFdlYkVkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJn
ZXQ7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJl
dmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3MCw0ICs0NzAsMTQgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVjb3JkQXV0b2NvcnJlY3RpbwogI2VuZGlmCiB9CiAKK2Zsb2F0IFBhZ2VD
bGllbnRJbXBsOjp1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0Cit7CisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIE5TU2l6ZSBkZXZpY2VSZXNvbHV0aW9uU2l6
ZSA9IFtbW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBkZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0Rm9y
S2V5Ok5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKKyAgICByZXR1cm4gZGV2aWNlUmVz
b2x1dGlvblNpemUud2lkdGggLyA3Mi4wOworI2Vsc2UKKyAgICByZXR1cm4gW1tOU1NjcmVlbiBt
YWluU2NyZWVuXSB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisjZW5kaWYKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2VfcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdr
cGFnZV9wLmgJKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2twYWdlX3AuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNiArOTUsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwogCisgICAgdmlydHVhbCBmbG9hdCB1
c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KKwogICAgIHZvaWQgcGFp
bnQoUVBhaW50ZXIqIHBhaW50ZXIsIFFSZWN0KTsKIAogICAgIHZvaWQga2V5UHJlc3NFdmVudChR
S2V5RXZlbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5oCShy
ZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmlldy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZh
ZGVPdXQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1l
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2luZ1N0b3JlVXBkYXRlcyhjb25z
dCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3RzKTsKKyAgICB2aXJ0dWFsIGZs
b2F0IHVzZXJTcGFjZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQogCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkRW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
d2luL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2lu
L1dlYlZpZXcuaAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
d2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3Rv
cmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOwor
ICAgIHZpcnR1YWwgZmxvYXQgdXNlclNwYWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiAx
OyB9CiAgICAgCiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCk7CiAgICAg
dmlydHVhbCBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNyw4
ICsxMTcsNyBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgpCiAKIGZsb2F0
IFdlYkNocm9tZUNsaWVudDo6c2NhbGVGYWN0b3IoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIDEuMDsKKyAgICByZXR1cm4gbV9wYWdlLT51c2VyU3BhY2VTY2FsZUZhY3Rv
cigpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXMoKQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gODIyNzkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2MCw2ICsxNjAsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBh
Z2VJRCwgY29uc3QgCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJh
bWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICAsIG1fY2FuUnVuTW9k
YWwocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkKICAgICAsIG1faXNSdW5uaW5nTW9kYWwoZmFsc2Up
CisgICAgLCBtX3VzZXJTcGFjZVNjYWxlRmFjdG9yKHBhcmFtZXRlcnMudXNlclNwYWNlU2NhbGVG
YWN0b3IpCiAgICAgLCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZShmYWxzZSkK
ICAgICAsIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZShmYWxzZSkKIHsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNp
b24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNTksNiArMzU5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBy
dW5Nb2RhbCgpOwogCisgICAgZmxvYXQgdXNlclNwYWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3VzZXJTcGFjZVNjYWxlRmFjdG9yOyB9CisKICAgICB2b2lkIHNldE1lbW9yeUNhY2hl
TWVzc2FnZXNFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBmb3JjZVJlcGFpbnRXaXRob3V0Q2Fs
bGJhY2soKTsKQEAgLTU4OCw2ICs1OTAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5SdW5N
b2RhbDsKICAgICBib29sIG1faXNSdW5uaW5nTW9kYWw7CiAKKyAgICBmbG9hdCBtX3VzZXJTcGFj
ZVNjYWxlRmFjdG9yOworCiAgICAgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9MZWZ0
U2lkZTsKICAgICBib29sIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZTsKIH07
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MjM3MCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTAzLTI5
ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NzQwOCB3ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyAKKyAg
ICAgICAgbWVkaWEgcXVlcnkgZG9lc24ndCB3b3JrIHBvc3QtU25vd0xlb3BhcmQgCisgICAgICAg
IC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2NjU0MTE+CisK
KyAgICAgICAgKiBNaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tOgorICAgICAgICAoLVtOU0NvbnRy
b2wgc2l6ZVRvRml0QW5kQWRqdXN0V2luZG93SGVpZ2h0XSk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzY2Fs
ZUZhY3Rvcik6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1b
V2ViSFRNTFZpZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBhdHRhY2hSb290TGF5ZXI6XSk6CisKIDIwMTEtMDMtMjkgIFRpbW90aHkgSGF0Y2hlciAgPHRp
bW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0aGUgb3JkZXIgb2YgdGhlIGNvbnRl
eHQgbWVudSB0byBiZXR0ZXIgbWF0Y2ggQXBwS2l0IG9uIE1hYy4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL01pc2MvV2ViTlNDb250cm9sRXh0cmFzLm0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRyYXMubQkocmV2aXNpb24gODIyNzkpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tCSh3b3JraW5nIGNvcHkp
CkBAIC00NCw3ICs0NCwxNiBAQCAtICh2b2lkKXNpemVUb0ZpdEFuZEFkanVzdFdpbmRvd0hlaWdo
dAogCiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107CiAgICAgTlNSZWN0IHdp
bmRvd0ZyYW1lID0gW3dpbmRvdyBmcmFtZV07Ci0gICAgd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQg
Kz0gaGVpZ2h0RGVsdGEgKiBbd2luZG93IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKworICAgIENH
RmxvYXQgdXNlclNwYWNlU2NhbGVGYWN0b3I7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIE5TU2l6ZSBk
ZXZpY2VSZXNvbHV0aW9uU2l6ZSA9IFtbW3dpbmRvdyBkZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0
Rm9yS2V5Ok5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKKyAgICB1c2VyU3BhY2VTY2Fs
ZUZhY3RvciA9IGRldmljZVJlc29sdXRpb25TaXplLndpZHRoIC8gNzIuMDsKKyNlbHNlCisgICAg
dXNlclNwYWNlU2NhbGVGYWN0b3IgPSBbd2luZG93IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNl
bmRpZgorCisgICAgd2luZG93RnJhbWUuc2l6ZS5oZWlnaHQgKz0gaGVpZ2h0RGVsdGEgKiB1c2Vy
U3BhY2VTY2FsZUZhY3RvcjsKICAgICBbd2luZG93IHNldEZyYW1lOndpbmRvd0ZyYW1lIGRpc3Bs
YXk6Tk9dOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTc4LDkgKzE3OCwxMiBAQCBGbG9hdFJlY3QgV2ViQ2hyb21lQ2xpZW50OjpwYWdlUmVjdCgp
CiAKIGZsb2F0IFdlYkNocm9tZUNsaWVudDo6c2NhbGVGYWN0b3IoKQogewotICAgIGlmIChOU1dp
bmRvdyAqd2luZG93ID0gW21fd2ViVmlldyB3aW5kb3ddKQotICAgICAgICByZXR1cm4gW3dpbmRv
dyAgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBOU1NpemUgZGV2
aWNlUmVzb2x1dGlvblNpemUgPSBbW1tbTlNTY3JlZW4gbWFpblNjcmVlbl0gZGV2aWNlRGVzY3Jp
cHRpb25dIG9iamVjdEZvcktleTpOU0RldmljZVJlc29sdXRpb25dIHNpemVWYWx1ZV07CisgICAg
cmV0dXJuIGRldmljZVJlc29sdXRpb25TaXplLndpZHRoIC8gNzIuMDsKKyNlbHNlCiAgICAgcmV0
dXJuIFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gdXNlclNwYWNlU2NhbGVGYWN0b3JdOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1cygpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzA2MCw3
ICszMDYwLDEzIEBAIC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogICAgICAgICAvLyBXZSBt
YXkgaGF2ZSBjcmVhdGVkIHRoZSBsYXllciBob3N0aW5nIHZpZXcgd2hpbGUgb3V0c2lkZSB0aGUg
d2luZG93LiBVcGRhdGUgdGhlIHNjYWxlIGZhY3RvcgogICAgICAgICAvLyBub3cgdGhhdCB3ZSBo
YXZlIGEgd2luZG93IHRvIGdldCBpdCBmcm9tLgogICAgICAgICBpZiAoX3ByaXZhdGUtPmxheWVy
SG9zdGluZ1ZpZXcpIHsKLSAgICAgICAgICAgIENHRmxvYXQgc2NhbGVGYWN0b3IgPSBbW3NlbGYg
d2luZG93XSB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisgICAgICAgICAgICBDR0Zsb2F0IHNjYWxl
RmFjdG9yOworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICAgICAg
ICAgIE5TU2l6ZSBkZXZpY2VSZXNvbHV0aW9uU2l6ZSA9IFtbW1tOU1NjcmVlbiBtYWluU2NyZWVu
XSBkZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0Rm9yS2V5Ok5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6
ZVZhbHVlXTsKKyAgICAgICAgICAgIHNjYWxlRmFjdG9yID0gZGV2aWNlUmVzb2x1dGlvblNpemUu
d2lkdGggLyA3Mi4wOworI2Vsc2UKKyAgICAgICAgICAgIHNjYWxlRmFjdG9yID0gW1tOU1NjcmVl
biBtYWluU2NyZWVuXSB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisjZW5kaWYKICAgICAgICAgICAg
IFtbX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgbGF5ZXJdIHNldFRyYW5zZm9ybTpDQVRyYW5z
Zm9ybTNETWFrZVNjYWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvciwgMSldOwogICAgICAgICB9
CiAjZW5kaWYKQEAgLTU1NzQsNyArNTU4MCwxNCBAQCAtICh2b2lkKWF0dGFjaFJvb3RMYXllcjoo
Q0FMYXllciopbGF5ZXIKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQogICAgIC8v
IElmIHdlIGFyZW4ndCBpbiB0aGUgd2luZG93IHlldCwgd2UnbGwgdXNlIHRoZSBzY3JlZW4ncyBz
Y2FsZSBmYWN0b3Igbm93LCBhbmQgcmVzZXQgdGhlIHNjYWxlIAogICAgIC8vIHZpYSAtdmlld0Rp
ZE1vdmVUb1dpbmRvdy4KLSAgICBDR0Zsb2F0IHNjYWxlRmFjdG9yID0gW3NlbGYgd2luZG93XSA/
IFtbc2VsZiB3aW5kb3ddIHVzZXJTcGFjZVNjYWxlRmFjdG9yXSA6IFtbTlNTY3JlZW4gbWFpblNj
cmVlbl0gdXNlclNwYWNlU2NhbGVGYWN0b3JdOworICAgIENHRmxvYXQgc2NhbGVGYWN0b3I7Cisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgIE5TU2l6ZSBkZXZpY2VS
ZXNvbHV0aW9uU2l6ZSA9IFtbW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBkZXZpY2VEZXNjcmlwdGlv
bl0gb2JqZWN0Rm9yS2V5Ok5TRGV2aWNlUmVzb2x1dGlvbl0gc2l6ZVZhbHVlXTsKKyAgICBzY2Fs
ZUZhY3RvciA9IGRldmljZVJlc29sdXRpb25TaXplLndpZHRoIC8gNzIuMDsKKyNlbHNlCisgICAg
c2NhbGVGYWN0b3IgPSBbW05TU2NyZWVuIG1haW5TY3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFjdG9y
XTsKKyNlbmRpZgorCiAgICAgW3ZpZXdMYXllciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1h
a2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IsIDEpXTsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87469</attachid>
            <date>2011-03-29 23:29:33 -0700</date>
            <delta_ts>2011-03-29 23:35:34 -0700</delta_ts>
            <desc>Way cooler patch</desc>
            <filename>for-review-3.txt</filename>
            <type>text/plain</type>
            <size>15898</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMzY5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjkgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU3NDA4IHdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIAorICAgICAgICBtZWRp
YSBxdWVyeSBkb2Vzbid0IHdvcmsgcG9zdC1Tbm93TGVvcGFyZCAKKyAgICAgICAgLWFuZCBjb3Jy
ZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY2NTQxMT4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ondp
bmRvd1NjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVXNlclNwYWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvRGV2aWNlU3BhY2UpOgorCiAyMDExLTAzLTI5ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkLgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQkocmV2
aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2LDEyICs3NiwyMSBAQCBOU1NjcmVlbiAqc2Ny
ZWVuRm9yV2luZG93KE5TV2luZG93ICp3aW5kCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorc3RhdGlj
IENHRmxvYXQgd2luZG93U2NhbGVGYWN0b3IoTlNXaW5kb3cgKndpbmRvdykKK3sKKyNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCisgICAgcmV0dXJuIFt3aW5kb3cgYmFja2luZ1NjYWxlRmFjdG9yXTsKKyNlbHNlCisg
ICAgcmV0dXJuIFt3aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworI2VuZGlmCit9CisKIEZs
b2F0UmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5TV2luZG93ICpkZXN0aW5h
dGlvbikKIHsKICAgICBGbG9hdFJlY3QgdXNlclJlY3QgPSByZWN0OwogICAgIHVzZXJSZWN0LnNl
dFkoTlNNYXhZKFtzY3JlZW5Gb3JXaW5kb3coZGVzdGluYXRpb24pIGZyYW1lXSkgLSAodXNlclJl
Y3QueSgpICsgdXNlclJlY3QuaGVpZ2h0KCkpKTsgLy8gZmxpcAogICAgIGlmIChkZXN0aW5hdGlv
bikKLSAgICAgICAgdXNlclJlY3Quc2NhbGUoMSAvIFtkZXN0aW5hdGlvbiB1c2VyU3BhY2VTY2Fs
ZUZhY3Rvcl0pOyAvLyBzY2FsZSBkb3duCisgICAgICAgIHVzZXJSZWN0LnNjYWxlKDEgLyB3aW5k
b3dTY2FsZUZhY3RvcihkZXN0aW5hdGlvbikpOyAvLyBzY2FsZSBkb3duCiAgICAgcmV0dXJuIHVz
ZXJSZWN0OwogfQogCkBAIC04OSw3ICs5OCw3IEBAIE5TUmVjdCB0b0RldmljZVNwYWNlKGNvbnN0
IEZsb2F0UmVjdCYgcmUKIHsKICAgICBGbG9hdFJlY3QgZGV2aWNlUmVjdCA9IHJlY3Q7CiAgICAg
aWYgKHNvdXJjZSkKLSAgICAgICAgZGV2aWNlUmVjdC5zY2FsZShbc291cmNlIHVzZXJTcGFjZVNj
YWxlRmFjdG9yXSk7IC8vIHNjYWxlIHVwCisgICAgICAgIGRldmljZVJlY3Quc2NhbGUod2luZG93
U2NhbGVGYWN0b3Ioc291cmNlKSk7IC8vIHNjYWxlIHVwCiAgICAgZGV2aWNlUmVjdC5zZXRZKE5T
TWF4WShbc2NyZWVuRm9yV2luZG93KHNvdXJjZSkgZnJhbWVdKSAtIChkZXZpY2VSZWN0LnkoKSAr
IGRldmljZVJlY3QuaGVpZ2h0KCkpKTsgLy8gZmxpcAogICAgIHJldHVybiBkZXZpY2VSZWN0Owog
fQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gODIzNzApCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0wMy0yOSAgQmV0aCBE
YWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRml4IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTc0MDggd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gCisgICAgICAgIG1l
ZGlhIHF1ZXJ5IGRvZXNuJ3Qgd29yayBwb3N0LVNub3dMZW9wYXJkIAorICAgICAgICAtYW5kIGNv
cnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjY1NDExPgorCisgICAgICAg
ICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVzZXJTcGFjZVNjYWxlRmFj
dG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2VfcC5oOgorICAgICAgICAo
UVdLUGFnZVByaXZhdGU6OnVzZXJTcGFjZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAg
ICAgICogVUlQcm9jZXNzL2d0ay9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6
OnVzZXJTcGFjZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6dXNlclNwYWNlU2NhbGVGYWN0b3IpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzY2FsZUZhY3Rvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1c2VyU3BhY2VTY2FsZUZhY3Rvcik6CisKIDIwMTEtMDMt
MjkgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNiArNTEsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShD
CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQpOwogICAg
IGVuY29kZXItPmVuY29kZShjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOwogICAgIGVu
Y29kZXItPmVuY29kZShjYW5SdW5Nb2RhbCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJTcGFj
ZVNjYWxlRmFjdG9yKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBlbmNvZGVyLT5lbmNvZGUo
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOwpAQCAtOTksNiArMTAwLDggQEAgYm9vbCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJhbWV0ZXJzLnVzZXJT
cGFjZVNjYWxlRmFjdG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRlcnMuaXNTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQpKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTcx
LDYgKzcxLDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wg
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwogICAgIGJvb2wgY2FuUnVuTW9kYWw7CiAK
KyAgICBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcjsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDgyMjc5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDYgKzE0
NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tUmVwcmVzZW50YXRpb25a
b29tRmFjdG9yKGRvdWJsZSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZsYXNoQmFja2luZ1N0
b3JlVXBkYXRlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHVwZGF0ZVJlY3RzKSA9
IDA7CisKKyAgICB2aXJ0dWFsIGZsb2F0IHVzZXJTcGFjZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYyMiw2ICsy
NjIyLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OgogICAgIHBh
cmFtZXRlcnMuaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0ZW1JRCA9IFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW06OmhpZ2hlZFVzZWRJdGVtSUQoKTsKICAgICBwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCA9IG1fdWlDbGllbnQuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCk7CiAgICAgcGFyYW1ldGVycy5jYW5SdW5Nb2RhbCA9IG1fdWlDbGllbnQuY2FuUnVuTW9k
YWwoKTsKKyAgICBwYXJhbWV0ZXJzLnVzZXJTcGFjZVNjYWxlRmFjdG9yID0gbV9wYWdlQ2xpZW50
LT51c2VyU3BhY2VTY2FsZUZhY3RvcigpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHBhcmFt
ZXRlcnMuaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBtX2lzU21hcnRJbnNlcnREZWxldGVF
bmFibGVkOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVu
dEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9Q
YWdlQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsx
MTAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9uUGFu
ZWxTb29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpOwogICAg
IHZpcnR1YWwgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdlYkNvcmU6OkVkaXRv
ckNsaWVudDo6QXV0b2NvcnJlY3Rpb25SZXNwb25zZVR5cGUsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpOwogCisgICAgdmlydHVh
bCBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0OworCiAgICAgV0tWaWV3KiBtX3dr
VmlldzsKICAgICBSZXRhaW5QdHI8V2ViRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1Rhcmdl
dDsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQkocmV2
aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcwLDQgKzQ3MCwxOCBAQCB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVjdGlvCiAjZW5kaWYKIH0KIAorZmxvYXQgUGFnZUNs
aWVudEltcGw6OnVzZXJTcGFjZVNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICBOU1dpbmRvdyAq
d2luZG93ID0gW21fd2tWaWV3IHdpbmRvd107CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQorICAgIGlmICh3aW5kb3cpCisgICAgICAgIHJldHVybiBbd2luZG93IGJhY2tp
bmdTY2FsZUZhY3Rvcl07CisgICAgcmV0dXJuIFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gYmFja2lu
Z1NjYWxlRmFjdG9yXTsKKyNlbHNlCisgICAgaWYgKHdpbmRvdykKKyAgICAgICAgcmV0dXJuIFt3
aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworICAgIHJldHVybiBbW05TU2NyZWVuIG1haW5T
Y3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9w
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
X3AuaAkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a3BhZ2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVwZGF0ZXMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CiAKKyAgICB2aXJ0dWFsIGZsb2F0IHVzZXJT
cGFjZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQorCiAgICAgdm9pZCBwYWludChR
UGFpbnRlciogcGFpbnRlciwgUVJlY3QpOwogCiAgICAgdm9pZCBrZXlQcmVzc0V2ZW50KFFLZXlF
dmVudCopOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmgJKHJldmlz
aW9uIDgyMjc5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJWaWV3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91
dCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgdXBkYXRlUmVjdHMpOworICAgIHZpcnR1YWwgZmxvYXQg
dXNlclNwYWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiAxOyB9CiAKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRFbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5oCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGxheVZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzY3JvbGxPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBmbGFzaEJhY2tpbmdTdG9yZVVw
ZGF0ZXMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiB1cGRhdGVSZWN0cyk7CisgICAg
dmlydHVhbCBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0K
ICAgICAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDggKzEx
Nyw3IEBAIEZsb2F0UmVjdCBXZWJDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KCkKIAogZmxvYXQgV2Vi
Q2hyb21lQ2xpZW50OjpzY2FsZUZhY3RvcigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gMS4wOworICAgIHJldHVybiBtX3BhZ2UtPnVzZXJTcGFjZVNjYWxlRmFjdG9yKCk7
CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1cygpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA4MjI3OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYwLDYgKzE2MCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlE
LCBjb25zdCAKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRl
cnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgICwgbV9jYW5SdW5Nb2RhbChw
YXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQogICAgICwgbV9pc1J1bm5pbmdNb2RhbChmYWxzZSkKKyAg
ICAsIG1fdXNlclNwYWNlU2NhbGVGYWN0b3IocGFyYW1ldGVycy51c2VyU3BhY2VTY2FsZUZhY3Rv
cikKICAgICAsIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlKGZhbHNlKQogICAg
ICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlKGZhbHNlKQogewpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA4
MjI3OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJ1bk1v
ZGFsKCk7CiAKKyAgICBmbG9hdCB1c2VyU3BhY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJu
IG1fdXNlclNwYWNlU2NhbGVGYWN0b3I7IH0KKwogICAgIHZvaWQgc2V0TWVtb3J5Q2FjaGVNZXNz
YWdlc0VuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIGZvcmNlUmVwYWludFdpdGhvdXRDYWxsYmFj
aygpOwpAQCAtNTg4LDYgKzU5MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhblJ1bk1vZGFs
OwogICAgIGJvb2wgbV9pc1J1bm5pbmdNb2RhbDsKIAorICAgIGZsb2F0IG1fdXNlclNwYWNlU2Nh
bGVGYWN0b3I7CisKICAgICBib29sIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRl
OwogICAgIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMzcwKQorKysgU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMtMjkgIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU3NDA4IHdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIAorICAgICAg
ICBtZWRpYSBxdWVyeSBkb2Vzbid0IHdvcmsgcG9zdC1Tbm93TGVvcGFyZCAKKyAgICAgICAgLWFu
ZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODY2NTQxMT4KKworICAg
ICAgICAqIE1pc2MvV2ViTlNDb250cm9sRXh0cmFzLm06CisgICAgICAgICgtW05TQ29udHJvbCBz
aXplVG9GaXRBbmRBZGp1c3RXaW5kb3dIZWlnaHRdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNjYWxlRmFj
dG9yKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGF0
dGFjaFJvb3RMYXllcjpdKToKKwogMjAxMS0wMy0yOSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3Ro
eUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBvcmRlciBvZiB0aGUgY29udGV4dCBt
ZW51IHRvIGJldHRlciBtYXRjaCBBcHBLaXQgb24gTWFjLgpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJOU0NvbnRyb2xFeHRyYXMubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYk5TQ29udHJvbEV4dHJhcy5tCShyZXZpc2lvbiA4MjI3OSkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNDb250cm9sRXh0cmFzLm0JKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDE1IEBAIC0gKHZvaWQpc2l6ZVRvRml0QW5kQWRqdXN0V2luZG93SGVpZ2h0CiAK
ICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKICAgICBOU1JlY3Qgd2luZG93
RnJhbWUgPSBbd2luZG93IGZyYW1lXTsKLSAgICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCArPSBo
ZWlnaHREZWx0YSAqIFt3aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworCisgICAgQ0dGbG9h
dCB1c2VyU3BhY2VTY2FsZUZhY3RvcjsKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisgICAgdXNlclNwYWNlU2Nh
bGVGYWN0b3IgPSBbd2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl07CisjZWxzZQorICAgIHVzZXJT
cGFjZVNjYWxlRmFjdG9yID0gW3dpbmRvdyB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisjZW5kaWYK
KworICAgIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0ICs9IGhlaWdodERlbHRhICogdXNlclNwYWNl
U2NhbGVGYWN0b3I7CiAgICAgW3dpbmRvdyBzZXRGcmFtZTp3aW5kb3dGcmFtZSBkaXNwbGF5Ok5P
XTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbQkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3
OCw5ICsxNzgsMTYgQEAgRmxvYXRSZWN0IFdlYkNocm9tZUNsaWVudDo6cGFnZVJlY3QoKQogCiBm
bG9hdCBXZWJDaHJvbWVDbGllbnQ6OnNjYWxlRmFjdG9yKCkKIHsKLSAgICBpZiAoTlNXaW5kb3cg
KndpbmRvdyA9IFttX3dlYlZpZXcgd2luZG93XSkKLSAgICAgICAgcmV0dXJuIFt3aW5kb3cgIHVz
ZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW21fd2ViVmlldyB3
aW5kb3ddOworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBpZiAod2luZG93KQorICAgICAgICByZXR1cm4g
W3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0b3JdOworICAgIHJldHVybiBbW05TU2NyZWVuIG1haW5T
Y3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07CisjZWxzZQorICAgIGlmICh3aW5kb3cpCisgICAg
ICAgIHJldHVybiBbd2luZG93IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKICAgICByZXR1cm4gW1tO
U1NjcmVlbiBtYWluU2NyZWVuXSB1c2VyU3BhY2VTY2FsZUZhY3Rvcl07CisjZW5kaWYKIH0KIAog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViSFRNTFZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQkocmV2aXNpb24gODIyNzkpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDYwLDcgKzMwNjAs
MTIgQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAgICAgICAgIC8vIFdlIG1heSBoYXZl
IGNyZWF0ZWQgdGhlIGxheWVyIGhvc3RpbmcgdmlldyB3aGlsZSBvdXRzaWRlIHRoZSB3aW5kb3cu
IFVwZGF0ZSB0aGUgc2NhbGUgZmFjdG9yCiAgICAgICAgIC8vIG5vdyB0aGF0IHdlIGhhdmUgYSB3
aW5kb3cgdG8gZ2V0IGl0IGZyb20uCiAgICAgICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5n
VmlldykgewotICAgICAgICAgICAgQ0dGbG9hdCBzY2FsZUZhY3RvciA9IFtbc2VsZiB3aW5kb3dd
IHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyAgICAgICAgICAgIENHRmxvYXQgc2NhbGVGYWN0b3I7
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorICAgICAgICAgICAgc2Nh
bGVGYWN0b3IgPSBbW3NlbGYgd2luZG93XSBiYWNraW5nU2NhbGVGYWN0b3JdOworI2Vsc2UKKyAg
ICAgICAgICAgIHNjYWxlRmFjdG9yID0gW1tzZWxmIHdpbmRvd10gdXNlclNwYWNlU2NhbGVGYWN0
b3JdOworI2VuZGlmCiAgICAgICAgICAgICBbW19wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3IGxh
eWVyXSBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2Nh
bGVGYWN0b3IsIDEpXTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01NTc0LDcgKzU1NzksMjAgQEAg
LSAodm9pZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIqKWxheWVyCiAjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKICAgICAvLyBJZiB3ZSBhcmVuJ3QgaW4gdGhlIHdpbmRvdyB5ZXQs
IHdlJ2xsIHVzZSB0aGUgc2NyZWVuJ3Mgc2NhbGUgZmFjdG9yIG5vdywgYW5kIHJlc2V0IHRoZSBz
Y2FsZSAKICAgICAvLyB2aWEgLXZpZXdEaWRNb3ZlVG9XaW5kb3cuCi0gICAgQ0dGbG9hdCBzY2Fs
ZUZhY3RvciA9IFtzZWxmIHdpbmRvd10gPyBbW3NlbGYgd2luZG93XSB1c2VyU3BhY2VTY2FsZUZh
Y3Rvcl0gOiBbW05TU2NyZWVuIG1haW5TY3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFjdG9yXTsKKyAg
ICBOU1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XTsKKyAgICBDR0Zsb2F0IHNjYWxlRmFj
dG9yOworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICBpZiAod2lu
ZG93KQorICAgICAgICBzY2FsZUZhY3RvciA9IFt3aW5kb3cgYmFja2luZ1NjYWxlRmFjdG9yXTsK
KyAgICBlbHNlCisgICAgICAgIHNjYWxlRmFjdG9yID0gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBi
YWNraW5nU2NhbGVGYWN0b3JdOworI2Vsc2UKKyAgICBpZiAod2luZG93KQorICAgICAgICBzY2Fs
ZUZhY3RvciA9IFt3aW5kb3cgdXNlclNwYWNlU2NhbGVGYWN0b3JdOworICAgIGVsc2UKKyAgICAg
ICAgc2NhbGVGYWN0b3IgPSBbW05TU2NyZWVuIG1haW5TY3JlZW5dIHVzZXJTcGFjZVNjYWxlRmFj
dG9yXTsKKyNlbmRpZgorCiAgICAgW3ZpZXdMYXllciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0z
RE1ha2VTY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IsIDEpXTsKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="79908"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>