<?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>75557</bug_id>
          
          <creation_ts>2012-01-04 09:53:31 -0800</creation_ts>
          <short_desc>[chromium] Create unit tests for CCTiledLayerImpl</short_desc>
          <delta_ts>2012-01-05 10:27:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>75574</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>shawnsingh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>529580</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-04 09:53:31 -0800</bug_when>
    <thetext>[chromium] Create unit tests for CCTiledLayerImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529581</commentid>
    <comment_count>1</comment_count>
      <attachid>121120</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-04 09:55:26 -0800</bug_when>
    <thetext>Created attachment 121120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529618</commentid>
    <comment_count>2</comment_count>
      <attachid>121120</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-04 11:03:44 -0800</bug_when>
    <thetext>Comment on attachment 121120
Patch

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

Awesome! R=me

&gt; Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp:38
&gt; +#define QUAD(i) &quot;    Quad: &quot; &lt;&lt; i

can you move this down closer to the first use?

do we really really need this? we have a lot of quad-named things going on. what about a string constant that&apos;s &lt;&lt;&apos;d in like normal?

&gt; Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp:246
&gt; +        EXPECT_EQ(quads[i]-&gt;material(), CCDrawQuad::TiledContent) &lt;&lt; QUAD(i);

think this should be ASSERT_EQ() or the next few lines will do really crazy and potentially hard-to-diagnose things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529624</commentid>
    <comment_count>3</comment_count>
      <attachid>121120</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-04 11:07:50 -0800</bug_when>
    <thetext>Comment on attachment 121120
Patch

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

&gt;&gt; Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp:38
&gt;&gt; +#define QUAD(i) &quot;    Quad: &quot; &lt;&lt; i
&gt; 
&gt; can you move this down closer to the first use?
&gt; 
&gt; do we really really need this? we have a lot of quad-named things going on. what about a string constant that&apos;s &lt;&lt;&apos;d in like normal?

Sure.  I&apos;ll make it a string constant.

&gt;&gt; Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp:246
&gt;&gt; +        EXPECT_EQ(quads[i]-&gt;material(), CCDrawQuad::TiledContent) &lt;&lt; QUAD(i);
&gt; 
&gt; think this should be ASSERT_EQ() or the next few lines will do really crazy and potentially hard-to-diagnose things

Good point.  Will change to an assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529646</commentid>
    <comment_count>4</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-04 11:36:26 -0800</bug_when>
    <thetext>Committed r104052: &lt;http://trac.webkit.org/changeset/104052&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529760</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-04 14:25:55 -0800</bug_when>
    <thetext>Reopening, due to OwnPtr copy constructor failure.  :(

http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Win%20Builder%20%28dbg%29/builds/18038/steps/compile/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530391</commentid>
    <comment_count>6</comment_count>
      <attachid>121295</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-05 10:25:21 -0800</bug_when>
    <thetext>Created attachment 121295
Fix win build errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530392</commentid>
    <comment_count>7</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-05 10:25:51 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=121295) [details]
&gt; Fix win build errors

^ Just uploading this for posterity.  No review needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530394</commentid>
    <comment_count>8</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-05 10:27:03 -0800</bug_when>
    <thetext>Committed r104176: &lt;http://trac.webkit.org/changeset/104176&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121120</attachid>
            <date>2012-01-04 09:55:26 -0800</date>
            <delta_ts>2012-01-05 10:25:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75557-20120104095525.patch</filename>
            <type>text/plain</type>
            <size>12081</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGFjYzhhNDg3ZjQ4YWFlZTUzYjUyNjI0NjUwZTJkNTk4MTljMmUyY2IuLjljYjM4NWExNThiZjQ3
M2ZjYTRiNDFiOTU3NTJmY2IxNTRjY2Y5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDEtMDQgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIENyZWF0ZSB1bml0IHRlc3RzIGZvciBDQ1RpbGVk
TGF5ZXJJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NTU1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzb21lIHF1YWQgZ2VuZXJhdGlvbiB0ZXN0cyBmb3IgdGlsZWQgbGF5ZXJzLgorCisgICAg
ICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVseUNvbnRhaW5zKToKKyAg
ICAgICAgKFdlYkNvcmU6OmdldFF1YWRzKToKKyAgICAgICAgKFdlYkNvcmU6OnZlcmlmeVF1YWRz
RXhhY3RseUNvdmVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpjb3ZlcmFnZVZpc2libGVSZWN0
T25UaWxlQm91bmRhcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb3ZlcmFnZVZpc2libGVSZWN0
SW50ZXJzZWN0c1RpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvdmVyYWdlVmlzaWJsZVJlY3RJ
bnRlcnNlY3RzQm91bmRzKToKKwogMjAxMi0wMS0wMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IGNvbXBpbGF0aW9uIHdpdGggY2xhbmcg
YW5kIHRoZSBzaGFyZWQgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IGU2
NzRiYjZiODViMDg1Y2FiYWNjOWQ5ZDY0OTk5M2Q1ZDYyZmU1Y2YuLmQ3ZDI5NDZiNTQ1NzQ0ZTRl
NzY0ZmY4M2MyZjU2MGE3MDRmMGRkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpA
QCAtNzQsNiArNzQsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNo
aW5lVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NDU2NoZWR1bGVyVGVzdENvbW1vbi5o
JywKICAgICAgICAgICAgICd0ZXN0cy9DQ1NjaGVkdWxlclRlc3QuY3BwJywKKyAgICAgICAgICAg
ICd0ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0ND
VGhyZWFkVGFza1Rlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9Db21wb3NpdG9yRmFrZUdy
YXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0NvbXBvc2l0b3JGYWtlV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDVGlsZWRMYXllckltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0MTJmNzVjNzM3MTRi
NTFhZGY5N2FjMGI4NTViZjdiOWY4ZDYxZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllckltcGxUZXN0LmNwcApAQCAtMCwwICsxLDI1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiY2Mv
Q0NUaWxlZExheWVySW1wbC5oIgorCisjaW5jbHVkZSAiUmVnaW9uLmgiCisjaW5jbHVkZSAiY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5oIgorI2luY2x1ZGUgImNjL0NDVGlsZURyYXdRdWFkLmgiCisj
aW5jbHVkZSA8Z21vY2svZ21vY2suaD4KKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworLy8gQWxpZ24gd2l0aCBleHBlY3RlZCBhbmQgYWN0dWFs
IG91dHB1dAorI2RlZmluZSBRVUFEKGkpICIgICAgUXVhZDogIiA8PCBpCisKK25hbWVzcGFjZSB7
CisKKy8vIENyZWF0ZSBhIGRlZmF1bHQgdGlsZWQgbGF5ZXIgd2l0aCB0ZXh0dXJlcyBmb3IgYWxs
IHRpbGVzIGFuZCBhIGRlZmF1bHQKKy8vIHZpc2liaWxpdHkgb2YgdGhlIGVudGlyZSBsYXllciBz
aXplLgorc3RhdGljIFBhc3NSZWZQdHI8Q0NUaWxlZExheWVySW1wbD4gY3JlYXRlTGF5ZXIoY29u
c3QgSW50U2l6ZSYgdGlsZVNpemUsIGNvbnN0IEludFNpemUmIGxheWVyU2l6ZSwgQ0NMYXllclRp
bGluZ0RhdGE6OkJvcmRlclRleGVsT3B0aW9uIGJvcmRlclRleGVscykKK3sKKyAgICBSZWZQdHI8
Q0NUaWxlZExheWVySW1wbD4gbGF5ZXIgPSBDQ1RpbGVkTGF5ZXJJbXBsOjpjcmVhdGUoMCk7Cisg
ICAgT3duUHRyPENDTGF5ZXJUaWxpbmdEYXRhPiB0aWxlciA9IENDTGF5ZXJUaWxpbmdEYXRhOjpj
cmVhdGUodGlsZVNpemUsIGJvcmRlclRleGVscyk7CisgICAgdGlsZXItPnNldEJvdW5kcyhsYXll
clNpemUpOworICAgIGxheWVyLT5zZXRUaWxpbmdEYXRhKCp0aWxlcik7CisgICAgbGF5ZXItPnNl
dFNraXBzRHJhdyhmYWxzZSk7CisgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVj
dChJbnRQb2ludCgpLCBsYXllclNpemUpKTsKKworICAgIGludCB0ZXh0dXJlSWQgPSAxOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgdGlsZXItPm51bVRpbGVzWCgpOyArK2kpCisgICAgICAgIGZv
ciAoaW50IGogPSAwOyBqIDwgdGlsZXItPm51bVRpbGVzWSgpOyArK2opCisgICAgICAgICAgICBs
YXllci0+c3luY1RleHR1cmVJZChpLCBqLCBzdGF0aWNfY2FzdDxQbGF0Zm9ybTNET2JqZWN0Pih0
ZXh0dXJlSWQrKykpOworCisgICAgcmV0dXJuIGxheWVyLnJlbGVhc2UoKTsKK30KKworVEVTVChD
Q1RpbGVkTGF5ZXJJbXBsVGVzdCwgZW1wdHlRdWFkTGlzdCkKK3sKKyAgICBEZWJ1Z1Njb3BlZFNl
dEltcGxUaHJlYWQgc2NvcGVkSW1wbFRocmVhZDsKKworICAgIGNvbnN0IEludFNpemUgdGlsZVNp
emUoOTAsIDkwKTsKKyAgICBjb25zdCBpbnQgbnVtVGlsZXNYID0gODsKKyAgICBjb25zdCBpbnQg
bnVtVGlsZXNZID0gNDsKKyAgICBjb25zdCBJbnRTaXplIGxheWVyU2l6ZSh0aWxlU2l6ZS53aWR0
aCgpICogbnVtVGlsZXNYLCB0aWxlU2l6ZS5oZWlnaHQoKSAqIG51bVRpbGVzWSk7CisKKyAgICAv
LyBWZXJpZnkgZGVmYXVsdCBsYXllciBkb2VzIGNyZWF0ZXMgcXVhZHMKKyAgICB7CisgICAgICAg
IFJlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllciA9IGNyZWF0ZUxheWVyKHRpbGVTaXplLCBs
YXllclNpemUsIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscyk7CisgICAgICAgIEND
UXVhZExpc3QgcXVhZHM7CisgICAgICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVk
UXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworICAgICAgICBsYXll
ci0+YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIG51bVRpbGVzID0gbnVtVGlsZXNYICogbnVtVGlsZXNZOworICAgICAgICBF
WFBFQ1RfRVEocXVhZHMuc2l6ZSgpLCBudW1UaWxlcyk7CisgICAgfQorCisgICAgLy8gTGF5ZXIg
d2l0aCBlbXB0eSB2aXNpYmxlIGxheWVyIHJlY3QgcHJvZHVjZXMgbm8gcXVhZHMKKyAgICB7Cisg
ICAgICAgIFJlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllciA9IGNyZWF0ZUxheWVyKHRpbGVT
aXplLCBsYXllclNpemUsIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscyk7CisgICAg
ICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KEludFJlY3QoKSk7CisKKyAgICAgICAgQ0NR
dWFkTGlzdCBxdWFkczsKKyAgICAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRR
dWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CisgICAgICAgIGxheWVy
LT5hcHBlbmRRdWFkcyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKHF1YWRzLnNpemUoKSwgMHUpOworICAgIH0KKworICAgIC8vIExheWVyIHdpdGggbm9u
LWludGVyc2VjdGluZyB2aXNpYmxlIGxheWVyIHJlY3QgcHJvZHVjZXMgbm8gcXVhZHMKKyAgICB7
CisgICAgICAgIFJlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllciA9IGNyZWF0ZUxheWVyKHRp
bGVTaXplLCBsYXllclNpemUsIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscyk7CisK
KyAgICAgICAgSW50UmVjdCBvdXRzaWRlQm91bmRzKEludFBvaW50KC0xMDAsIC0xMDApLCBJbnRT
aXplKDUwLCA1MCkpOworICAgICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChvdXRzaWRl
Qm91bmRzKTsKKworICAgICAgICBDQ1F1YWRMaXN0IHF1YWRzOworICAgICAgICBPd25QdHI8Q0NT
aGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFk
U3RhdGUoKTsKKyAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRzLCBzaGFyZWRRdWFkU3Rh
dGUuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEocXVhZHMuc2l6ZSgpLCAwdSk7CisgICAgfQor
CisgICAgLy8gTGF5ZXIgd2l0aCBza2lwcyBkcmF3IHByb2R1Y2VzIG5vIHF1YWRzCisgICAgewor
ICAgICAgICBSZWZQdHI8Q0NUaWxlZExheWVySW1wbD4gbGF5ZXIgPSBjcmVhdGVMYXllcih0aWxl
U2l6ZSwgbGF5ZXJTaXplLCBDQ0xheWVyVGlsaW5nRGF0YTo6Tm9Cb3JkZXJUZXhlbHMpOworICAg
ICAgICBsYXllci0+c2V0U2tpcHNEcmF3KHRydWUpOworCisgICAgICAgIENDUXVhZExpc3QgcXVh
ZHM7CisgICAgICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0g
bGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworICAgICAgICBsYXllci0+YXBwZW5kUXVh
ZHMocXVhZHMsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShxdWFk
cy5zaXplKCksIDB1KTsKKyAgICB9Cit9CisKK1RFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIGNo
ZWNrZXJib2FyZGluZykKK3sKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgc2NvcGVkSW1w
bFRocmVhZDsKKworICAgIGNvbnN0IEludFNpemUgdGlsZVNpemUoMTAsIDEwKTsKKyAgICBjb25z
dCBpbnQgbnVtVGlsZXNYID0gMjsKKyAgICBjb25zdCBpbnQgbnVtVGlsZXNZID0gMjsKKyAgICBj
b25zdCBJbnRTaXplIGxheWVyU2l6ZSh0aWxlU2l6ZS53aWR0aCgpICogbnVtVGlsZXNYLCB0aWxl
U2l6ZS5oZWlnaHQoKSAqIG51bVRpbGVzWSk7CisKKyAgICBSZWZQdHI8Q0NUaWxlZExheWVySW1w
bD4gbGF5ZXIgPSBjcmVhdGVMYXllcih0aWxlU2l6ZSwgbGF5ZXJTaXplLCBDQ0xheWVyVGlsaW5n
RGF0YTo6Tm9Cb3JkZXJUZXhlbHMpOworICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hh
cmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworCisgICAgLy8g
Tm8gY2hlY2tlcmJvYXJkaW5nCisgICAgeworICAgICAgICBDQ1F1YWRMaXN0IHF1YWRzOworICAg
ICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7Cisg
ICAgICAgIEVYUEVDVF9FUShxdWFkcy5zaXplKCksIDR1KTsKKworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgRVhQRUNUX0VRKHF1
YWRzW2ldLT5tYXRlcmlhbCgpLCBDQ0RyYXdRdWFkOjpUaWxlZENvbnRlbnQpOworICAgIH0KKwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtVGlsZXNYOyArK2kpCisgICAgICAgIGZvciAoaW50
IGogPSAwOyBqIDwgbnVtVGlsZXNZOyArK2opCisgICAgICAgICAgICBsYXllci0+c3luY1RleHR1
cmVJZChpLCBqLCBzdGF0aWNfY2FzdDxQbGF0Zm9ybTNET2JqZWN0PigwKSk7CisKKyAgICAvLyBB
bGwgY2hlY2tlcmJvYXJkaW5nCisgICAgeworICAgICAgICBDQ1F1YWRMaXN0IHF1YWRzOworICAg
ICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7Cisg
ICAgICAgIEVYUEVDVF9FUShxdWFkcy5zaXplKCksIDR1KTsKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIEVYUEVDVF9FUShxdWFk
c1tpXS0+bWF0ZXJpYWwoKSwgQ0NEcmF3UXVhZDo6U29saWRDb2xvcik7CisgICAgfQorfQorCitz
dGF0aWMgYm9vbCBjb21wbGV0ZWx5Q29udGFpbnMoY29uc3QgUmVnaW9uJiBjb250YWluZXIsIGNv
bnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgUmVnaW9uIHRlc3RlcihyZWN0KTsKKyAgICBWZWN0
b3I8SW50UmVjdD4gcmVjdHMgPSBjb250YWluZXIucmVjdHMoKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytpKQorICAgICAgICB0ZXN0ZXIuc3VidHJhY3QocmVj
dHNbaV0pOworICAgIHJldHVybiB0ZXN0ZXIuaXNFbXB0eSgpOworfQorCitzdGF0aWMgQ0NRdWFk
TGlzdCBnZXRRdWFkcyhJbnRTaXplIHRpbGVTaXplLCBjb25zdCBJbnRTaXplJiBsYXllclNpemUs
IENDTGF5ZXJUaWxpbmdEYXRhOjpCb3JkZXJUZXhlbE9wdGlvbiBib3JkZXJUZXhlbE9wdGlvbiwg
Y29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkKK3sKKyAgICBDQ1F1YWRMaXN0IHF1YWRz
OworCisgICAgUmVmUHRyPENDVGlsZWRMYXllckltcGw+IGxheWVyID0gY3JlYXRlTGF5ZXIodGls
ZVNpemUsIGxheWVyU2l6ZSwgYm9yZGVyVGV4ZWxPcHRpb24pOworICAgIGxheWVyLT5zZXRWaXNp
YmxlTGF5ZXJSZWN0KHZpc2libGVMYXllclJlY3QpOworICAgIGxheWVyLT5zZXRCb3VuZHMobGF5
ZXJTaXplKTsKKworICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRl
ID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworICAgIGxheWVyLT5hcHBlbmRRdWFk
cyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKKworICAgIHJldHVybiBxdWFkczsKK30K
Kworc3RhdGljIHZvaWQgdmVyaWZ5UXVhZHNFeGFjdGx5Q292ZXJSZWN0KGNvbnN0IENDUXVhZExp
c3QmIHF1YWRzLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFJlZ2lvbiByZW1haW5pbmco
cmVjdCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKSB7
CisgICAgICAgIENDRHJhd1F1YWQqIHF1YWQgPSBxdWFkc1tpXS5nZXQoKTsKKworICAgICAgICBF
WFBFQ1RfVFJVRShyZWN0LmNvbnRhaW5zKHF1YWQtPnF1YWRSZWN0KCkpKSA8PCBRVUFEKGkpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShjb21wbGV0ZWx5Q29udGFpbnMocmVtYWluaW5nLCBxdWFkLT5x
dWFkUmVjdCgpKSkgPDwgUVVBRChpKTsKKyAgICAgICAgcmVtYWluaW5nLnN1YnRyYWN0KFJlZ2lv
bihxdWFkLT5xdWFkUmVjdCgpKSk7CisgICAgfQorCisgICAgRVhQRUNUX1RSVUUocmVtYWluaW5n
LmlzRW1wdHkoKSk7Cit9CisKKy8vIFRlc3Qgd2l0aCBib3RoIGJvcmRlciB0ZXhlbHMgYW5kIHdp
dGhvdXQuCisjZGVmaW5lIFdJVEhfQU5EX1dJVEhPVVRfQk9SREVSX1RFU1QodGVzdEZpeHR1cmVO
YW1lKSAgICAgICBcCisgICAgVEVTVChDQ1RpbGVkTGF5ZXJJbXBsVGVzdCwgdGVzdEZpeHR1cmVO
YW1lIyNOb0JvcmRlcnMpICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHRlc3RGaXh0dXJlTmFtZShDQ0xheWVy
VGlsaW5nRGF0YTo6Tm9Cb3JkZXJUZXhlbHMpOyBcCisgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVEVTVChDQ1RpbGVkTGF5
ZXJJbXBsVGVzdCwgdGVzdEZpeHR1cmVOYW1lIyNIYXNCb3JkZXJzKSBcCisgICAgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg
IHRlc3RGaXh0dXJlTmFtZShDQ0xheWVyVGlsaW5nRGF0YTo6SGFzQm9yZGVyVGV4ZWxzKTtcCisg
ICAgfQorCitzdGF0aWMgdm9pZCBjb3ZlcmFnZVZpc2libGVSZWN0T25UaWxlQm91bmRhcmllcyhD
Q0xheWVyVGlsaW5nRGF0YTo6Qm9yZGVyVGV4ZWxPcHRpb24gYm9yZGVycykKK3sKKyAgICBEZWJ1
Z1Njb3BlZFNldEltcGxUaHJlYWQgc2NvcGVkSW1wbFRocmVhZDsKKworICAgIEludFNpemUgbGF5
ZXJTaXplKDEwMDAsIDEwMDApOworICAgIENDUXVhZExpc3QgcXVhZHMgPSBnZXRRdWFkcyhJbnRT
aXplKDEwMCwgMTAwKSwgbGF5ZXJTaXplLCBib3JkZXJzLCBJbnRSZWN0KEludFBvaW50KCksIGxh
eWVyU2l6ZSkpOworICAgIHZlcmlmeVF1YWRzRXhhY3RseUNvdmVyUmVjdChxdWFkcywgSW50UmVj
dChJbnRQb2ludCgpLCBsYXllclNpemUpKTsKK30KK1dJVEhfQU5EX1dJVEhPVVRfQk9SREVSX1RF
U1QoY292ZXJhZ2VWaXNpYmxlUmVjdE9uVGlsZUJvdW5kYXJpZXMpOworCitzdGF0aWMgdm9pZCBj
b3ZlcmFnZVZpc2libGVSZWN0SW50ZXJzZWN0c1RpbGVzKENDTGF5ZXJUaWxpbmdEYXRhOjpCb3Jk
ZXJUZXhlbE9wdGlvbiBib3JkZXJzKQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBz
Y29wZWRJbXBsVGhyZWFkOworCisgICAgLy8gVGhpcyByZWN0IGludGVyc2VjdHMgdGhlIG1pZGRs
ZSAzeDMgb2YgdGhlIDV4NSB0aWxlcy4KKyAgICBJbnRQb2ludCB0b3BMZWZ0KDY1LCA3Myk7Cisg
ICAgSW50UG9pbnQgYm90dG9tUmlnaHQoMTgyLCAxOTgpOworICAgIEludFJlY3QgdmlzaWJsZUxh
eWVyUmVjdCh0b3BMZWZ0LCBib3R0b21SaWdodCAtIHRvcExlZnQpOworCisgICAgSW50U2l6ZSBs
YXllclNpemUoMjUwLCAyNTApOworICAgIENDUXVhZExpc3QgcXVhZHMgPSBnZXRRdWFkcyhJbnRT
aXplKDUwLCA1MCksIEludFNpemUoMjUwLCAyNTApLCBDQ0xheWVyVGlsaW5nRGF0YTo6Tm9Cb3Jk
ZXJUZXhlbHMsIHZpc2libGVMYXllclJlY3QpOworICAgIHZlcmlmeVF1YWRzRXhhY3RseUNvdmVy
UmVjdChxdWFkcywgdmlzaWJsZUxheWVyUmVjdCk7Cit9CitXSVRIX0FORF9XSVRIT1VUX0JPUkRF
Ul9URVNUKGNvdmVyYWdlVmlzaWJsZVJlY3RJbnRlcnNlY3RzVGlsZXMpOworCitzdGF0aWMgdm9p
ZCBjb3ZlcmFnZVZpc2libGVSZWN0SW50ZXJzZWN0c0JvdW5kcyhDQ0xheWVyVGlsaW5nRGF0YTo6
Qm9yZGVyVGV4ZWxPcHRpb24gYm9yZGVycykKK3sKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJl
YWQgc2NvcGVkSW1wbFRocmVhZDsKKworICAgIEludFNpemUgbGF5ZXJTaXplKDIyMCwgMjEwKTsK
KyAgICBJbnRSZWN0IHZpc2libGVMYXllclJlY3QoSW50UG9pbnQoKSwgbGF5ZXJTaXplKTsKKyAg
ICBDQ1F1YWRMaXN0IHF1YWRzID0gZ2V0UXVhZHMoSW50U2l6ZSgxMDAsIDEwMCksIGxheWVyU2l6
ZSwgQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9yZGVyVGV4ZWxzLCB2aXNpYmxlTGF5ZXJSZWN0KTsK
KyAgICB2ZXJpZnlRdWFkc0V4YWN0bHlDb3ZlclJlY3QocXVhZHMsIHZpc2libGVMYXllclJlY3Qp
OworfQorV0lUSF9BTkRfV0lUSE9VVF9CT1JERVJfVEVTVChjb3ZlcmFnZVZpc2libGVSZWN0SW50
ZXJzZWN0c0JvdW5kcyk7CisKK1RFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIHRleHR1cmVJbmZv
Rm9yTGF5ZXJOb0JvcmRlcnMpCit7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIHNjb3Bl
ZEltcGxUaHJlYWQ7CisKKyAgICBJbnRTaXplIHRpbGVTaXplKDUwLCA1MCk7CisgICAgSW50U2l6
ZSBsYXllclNpemUoMjUwLCAyNTApOworICAgIENDUXVhZExpc3QgcXVhZHMgPSBnZXRRdWFkcyh0
aWxlU2l6ZSwgbGF5ZXJTaXplLCBDQ0xheWVyVGlsaW5nRGF0YTo6Tm9Cb3JkZXJUZXhlbHMsIElu
dFJlY3QoSW50UG9pbnQoKSwgbGF5ZXJTaXplKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHF1YWRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUShxdWFkc1tpXS0+bWF0
ZXJpYWwoKSwgQ0NEcmF3UXVhZDo6VGlsZWRDb250ZW50KSA8PCBRVUFEKGkpOworICAgICAgICBD
Q1RpbGVEcmF3UXVhZCogcXVhZCA9IHN0YXRpY19jYXN0PENDVGlsZURyYXdRdWFkKj4ocXVhZHNb
aV0uZ2V0KCkpOworCisgICAgICAgIEVYUEVDVF9ORShxdWFkLT50ZXh0dXJlSWQoKSwgMHUpIDw8
IFFVQUQoaSk7CisgICAgICAgIEVYUEVDVF9FUShxdWFkLT50ZXh0dXJlT2Zmc2V0KCksIEludFBv
aW50KCkpIDw8IFFVQUQoaSk7CisgICAgICAgIEVYUEVDVF9FUShxdWFkLT50ZXh0dXJlU2l6ZSgp
LCB0aWxlU2l6ZSkgPDwgUVVBRChpKTsKKyAgICB9Cit9CisKKworfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121295</attachid>
            <date>2012-01-05 10:25:21 -0800</date>
            <delta_ts>2012-01-05 10:25:21 -0800</delta_ts>
            <desc>Fix win build errors</desc>
            <filename>bug-75557-20120105102520.patch</filename>
            <type>text/plain</type>
            <size>12176</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQyYzM2ODczM2I4M2U2OTA2NjA3ZjBkNzhkMTcyMTdjM2VlYWY4YTUuLjdlOThiZTQ0N2NlYmVm
Mzc3ODM1OGQ5Y2VkNWMwYzc0ZGMzMjU1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDEtMDQgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xl
LmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIENyZWF0ZSB1bml0IHRlc3RzIGZvciBDQ1RpbGVk
TGF5ZXJJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NTU1NworCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAg
IEFkZCBzb21lIHF1YWQgZ2VuZXJhdGlvbiB0ZXN0cyBmb3IgdGlsZWQgbGF5ZXJzLgorCisgICAg
ICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVseUNvbnRhaW5zKToKKyAg
ICAgICAgKFdlYkNvcmU6OmdldFF1YWRzKToKKyAgICAgICAgKFdlYkNvcmU6OnZlcmlmeVF1YWRz
RXhhY3RseUNvdmVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpjb3ZlcmFnZVZpc2libGVSZWN0
T25UaWxlQm91bmRhcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpjb3ZlcmFnZVZpc2libGVSZWN0
SW50ZXJzZWN0c1RpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvdmVyYWdlVmlzaWJsZVJlY3RJ
bnRlcnNlY3RzQm91bmRzKToKKwogMjAxMi0wMS0wNSAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmVtb3ZlIFdlYlNldHRpbmdzOjpz
ZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIGZyb20gcHVibGljIEFQSS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXBpCmluZGV4IGU2NzRiYjZiODViMDg1Y2FiYWNjOWQ5ZDY0OTk5M2Q1ZDYy
ZmU1Y2YuLmQ3ZDI5NDZiNTQ1NzQ0ZTRlNzY0ZmY4M2MyZjU2MGE3MDRmMGRkNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtNzQsNiArNzQsNyBAQAogICAgICAgICAgICAgJ3Rl
c3RzL0NDU2NoZWR1bGVyU3RhdGVNYWNoaW5lVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3Rz
L0NDU2NoZWR1bGVyVGVzdENvbW1vbi5oJywKICAgICAgICAgICAgICd0ZXN0cy9DQ1NjaGVkdWxl
clRlc3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL0NDVGhyZWFkVGFza1Rlc3QuY3BwJywKICAgICAgICAgICAg
ICd0ZXN0cy9Db21wb3NpdG9yRmFrZUdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAg
J3Rlc3RzL0NvbXBvc2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllckltcGxUZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVySW1wbFRlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyZWVhOTQ0MGM0M2MzM2MzOGU0OTZlMzc4YmRjN2MzMzEyZTgzZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllcklt
cGxUZXN0LmNwcApAQCAtMCwwICsxLDI1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiY2MvQ0NUaWxlZExheWVySW1wbC5oIgorCisjaW5jbHVkZSAi
UmVnaW9uLmgiCisjaW5jbHVkZSAiY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgorI2luY2x1ZGUg
ImNjL0NDVGlsZURyYXdRdWFkLmgiCisjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KKyNpbmNsdWRl
IDxndGVzdC9ndGVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IHsKKworLy8gQ3JlYXRlIGEgZGVmYXVsdCB0aWxlZCBsYXllciB3aXRoIHRleHR1cmVzIGZvciBh
bGwgdGlsZXMgYW5kIGEgZGVmYXVsdAorLy8gdmlzaWJpbGl0eSBvZiB0aGUgZW50aXJlIGxheWVy
IHNpemUuCitzdGF0aWMgUGFzc1JlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjcmVhdGVMYXllcihj
b25zdCBJbnRTaXplJiB0aWxlU2l6ZSwgY29uc3QgSW50U2l6ZSYgbGF5ZXJTaXplLCBDQ0xheWVy
VGlsaW5nRGF0YTo6Qm9yZGVyVGV4ZWxPcHRpb24gYm9yZGVyVGV4ZWxzKQoreworICAgIFJlZlB0
cjxDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllciA9IENDVGlsZWRMYXllckltcGw6OmNyZWF0ZSgwKTsK
KyAgICBPd25QdHI8Q0NMYXllclRpbGluZ0RhdGE+IHRpbGVyID0gQ0NMYXllclRpbGluZ0RhdGE6
OmNyZWF0ZSh0aWxlU2l6ZSwgYm9yZGVyVGV4ZWxzKTsKKyAgICB0aWxlci0+c2V0Qm91bmRzKGxh
eWVyU2l6ZSk7CisgICAgbGF5ZXItPnNldFRpbGluZ0RhdGEoKnRpbGVyKTsKKyAgICBsYXllci0+
c2V0U2tpcHNEcmF3KGZhbHNlKTsKKyAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChJbnRS
ZWN0KEludFBvaW50KCksIGxheWVyU2l6ZSkpOworCisgICAgaW50IHRleHR1cmVJZCA9IDE7Cisg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aWxlci0+bnVtVGlsZXNYKCk7ICsraSkKKyAgICAgICAg
Zm9yIChpbnQgaiA9IDA7IGogPCB0aWxlci0+bnVtVGlsZXNZKCk7ICsraikKKyAgICAgICAgICAg
IGxheWVyLT5zeW5jVGV4dHVyZUlkKGksIGosIHN0YXRpY19jYXN0PFBsYXRmb3JtM0RPYmplY3Q+
KHRleHR1cmVJZCsrKSk7CisKKyAgICByZXR1cm4gbGF5ZXIucmVsZWFzZSgpOworfQorCitURVNU
KENDVGlsZWRMYXllckltcGxUZXN0LCBlbXB0eVF1YWRMaXN0KQoreworICAgIERlYnVnU2NvcGVk
U2V0SW1wbFRocmVhZCBzY29wZWRJbXBsVGhyZWFkOworCisgICAgY29uc3QgSW50U2l6ZSB0aWxl
U2l6ZSg5MCwgOTApOworICAgIGNvbnN0IGludCBudW1UaWxlc1ggPSA4OworICAgIGNvbnN0IGlu
dCBudW1UaWxlc1kgPSA0OworICAgIGNvbnN0IEludFNpemUgbGF5ZXJTaXplKHRpbGVTaXplLndp
ZHRoKCkgKiBudW1UaWxlc1gsIHRpbGVTaXplLmhlaWdodCgpICogbnVtVGlsZXNZKTsKKworICAg
IC8vIFZlcmlmeSBkZWZhdWx0IGxheWVyIGRvZXMgY3JlYXRlcyBxdWFkcworICAgIHsKKyAgICAg
ICAgUmVmUHRyPENDVGlsZWRMYXllckltcGw+IGxheWVyID0gY3JlYXRlTGF5ZXIodGlsZVNpemUs
IGxheWVyU2l6ZSwgQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9yZGVyVGV4ZWxzKTsKKyAgICAgICAg
Q0NRdWFkTGlzdCBxdWFkczsKKyAgICAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFy
ZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CisgICAgICAgIGxh
eWVyLT5hcHBlbmRRdWFkcyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgbnVtVGlsZXMgPSBudW1UaWxlc1ggKiBudW1UaWxlc1k7CisgICAgICAg
IEVYUEVDVF9FUShxdWFkcy5zaXplKCksIG51bVRpbGVzKTsKKyAgICB9CisKKyAgICAvLyBMYXll
ciB3aXRoIGVtcHR5IHZpc2libGUgbGF5ZXIgcmVjdCBwcm9kdWNlcyBubyBxdWFkcworICAgIHsK
KyAgICAgICAgUmVmUHRyPENDVGlsZWRMYXllckltcGw+IGxheWVyID0gY3JlYXRlTGF5ZXIodGls
ZVNpemUsIGxheWVyU2l6ZSwgQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9yZGVyVGV4ZWxzKTsKKyAg
ICAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgpKTsKKworICAgICAgICBD
Q1F1YWRMaXN0IHF1YWRzOworICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJl
ZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKyAgICAgICAgbGF5
ZXItPmFwcGVuZFF1YWRzKHF1YWRzLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOworICAgICAgICBF
WFBFQ1RfRVEocXVhZHMuc2l6ZSgpLCAwdSk7CisgICAgfQorCisgICAgLy8gTGF5ZXIgd2l0aCBu
b24taW50ZXJzZWN0aW5nIHZpc2libGUgbGF5ZXIgcmVjdCBwcm9kdWNlcyBubyBxdWFkcworICAg
IHsKKyAgICAgICAgUmVmUHRyPENDVGlsZWRMYXllckltcGw+IGxheWVyID0gY3JlYXRlTGF5ZXIo
dGlsZVNpemUsIGxheWVyU2l6ZSwgQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9yZGVyVGV4ZWxzKTsK
KworICAgICAgICBJbnRSZWN0IG91dHNpZGVCb3VuZHMoSW50UG9pbnQoLTEwMCwgLTEwMCksIElu
dFNpemUoNTAsIDUwKSk7CisgICAgICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KG91dHNp
ZGVCb3VuZHMpOworCisgICAgICAgIENDUXVhZExpc3QgcXVhZHM7CisgICAgICAgIE93blB0cjxD
Q1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1
YWRTdGF0ZSgpOworICAgICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZHMsIHNoYXJlZFF1YWRT
dGF0ZS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShxdWFkcy5zaXplKCksIDB1KTsKKyAgICB9
CisKKyAgICAvLyBMYXllciB3aXRoIHNraXBzIGRyYXcgcHJvZHVjZXMgbm8gcXVhZHMKKyAgICB7
CisgICAgICAgIFJlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllciA9IGNyZWF0ZUxheWVyKHRp
bGVTaXplLCBsYXllclNpemUsIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscyk7Cisg
ICAgICAgIGxheWVyLT5zZXRTa2lwc0RyYXcodHJ1ZSk7CisKKyAgICAgICAgQ0NRdWFkTGlzdCBx
dWFkczsKKyAgICAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUg
PSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CisgICAgICAgIGxheWVyLT5hcHBlbmRR
dWFkcyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKHF1
YWRzLnNpemUoKSwgMHUpOworICAgIH0KK30KKworVEVTVChDQ1RpbGVkTGF5ZXJJbXBsVGVzdCwg
Y2hlY2tlcmJvYXJkaW5nKQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBzY29wZWRJ
bXBsVGhyZWFkOworCisgICAgY29uc3QgSW50U2l6ZSB0aWxlU2l6ZSgxMCwgMTApOworICAgIGNv
bnN0IGludCBudW1UaWxlc1ggPSAyOworICAgIGNvbnN0IGludCBudW1UaWxlc1kgPSAyOworICAg
IGNvbnN0IEludFNpemUgbGF5ZXJTaXplKHRpbGVTaXplLndpZHRoKCkgKiBudW1UaWxlc1gsIHRp
bGVTaXplLmhlaWdodCgpICogbnVtVGlsZXNZKTsKKworICAgIFJlZlB0cjxDQ1RpbGVkTGF5ZXJJ
bXBsPiBsYXllciA9IGNyZWF0ZUxheWVyKHRpbGVTaXplLCBsYXllclNpemUsIENDTGF5ZXJUaWxp
bmdEYXRhOjpOb0JvcmRlclRleGVscyk7CisgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBz
aGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CisKKyAgICAv
LyBObyBjaGVja2VyYm9hcmRpbmcKKyAgICB7CisgICAgICAgIENDUXVhZExpc3QgcXVhZHM7Cisg
ICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsK
KyAgICAgICAgRVhQRUNUX0VRKHF1YWRzLnNpemUoKSwgNHUpOworCisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcXVhZHMuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBFWFBFQ1RfRVEo
cXVhZHNbaV0tPm1hdGVyaWFsKCksIENDRHJhd1F1YWQ6OlRpbGVkQ29udGVudCk7CisgICAgfQor
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1UaWxlc1g7ICsraSkKKyAgICAgICAgZm9yIChp
bnQgaiA9IDA7IGogPCBudW1UaWxlc1k7ICsraikKKyAgICAgICAgICAgIGxheWVyLT5zeW5jVGV4
dHVyZUlkKGksIGosIHN0YXRpY19jYXN0PFBsYXRmb3JtM0RPYmplY3Q+KDApKTsKKworICAgIC8v
IEFsbCBjaGVja2VyYm9hcmRpbmcKKyAgICB7CisgICAgICAgIENDUXVhZExpc3QgcXVhZHM7Cisg
ICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkcywgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsK
KyAgICAgICAgRVhQRUNUX0VRKHF1YWRzLnNpemUoKSwgNHUpOworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgRVhQRUNUX0VRKHF1
YWRzW2ldLT5tYXRlcmlhbCgpLCBDQ0RyYXdRdWFkOjpTb2xpZENvbG9yKTsKKyAgICB9Cit9CisK
K3N0YXRpYyBib29sIGNvbXBsZXRlbHlDb250YWlucyhjb25zdCBSZWdpb24mIGNvbnRhaW5lciwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBSZWdpb24gdGVzdGVyKHJlY3QpOworICAgIFZl
Y3RvcjxJbnRSZWN0PiByZWN0cyA9IGNvbnRhaW5lci5yZWN0cygpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRlc3Rlci5zdWJ0cmFjdChy
ZWN0c1tpXSk7CisgICAgcmV0dXJuIHRlc3Rlci5pc0VtcHR5KCk7Cit9CisKK3N0YXRpYyB2b2lk
IGdldFF1YWRzKENDUXVhZExpc3QmIHF1YWRzLCBJbnRTaXplIHRpbGVTaXplLCBjb25zdCBJbnRT
aXplJiBsYXllclNpemUsIENDTGF5ZXJUaWxpbmdEYXRhOjpCb3JkZXJUZXhlbE9wdGlvbiBib3Jk
ZXJUZXhlbE9wdGlvbiwgY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkKK3sKKyAgICBS
ZWZQdHI8Q0NUaWxlZExheWVySW1wbD4gbGF5ZXIgPSBjcmVhdGVMYXllcih0aWxlU2l6ZSwgbGF5
ZXJTaXplLCBib3JkZXJUZXhlbE9wdGlvbik7CisgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJl
Y3QodmlzaWJsZUxheWVyUmVjdCk7CisgICAgbGF5ZXItPnNldEJvdW5kcyhsYXllclNpemUpOwor
CisgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+
Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CisgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRzLCBz
aGFyZWRRdWFkU3RhdGUuZ2V0KCkpOworfQorCisvLyBBbGlnbiB3aXRoIGV4cGVjdGVkIGFuZCBh
Y3R1YWwgb3V0cHV0CitzdGF0aWMgY29uc3QgY2hhciogcXVhZFN0cmluZyA9ICIgICAgUXVhZDog
IjsKKworc3RhdGljIHZvaWQgdmVyaWZ5UXVhZHNFeGFjdGx5Q292ZXJSZWN0KGNvbnN0IENDUXVh
ZExpc3QmIHF1YWRzLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFJlZ2lvbiByZW1haW5p
bmcocmVjdCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIENDRHJhd1F1YWQqIHF1YWQgPSBxdWFkc1tpXS5nZXQoKTsKKworICAgICAg
ICBFWFBFQ1RfVFJVRShyZWN0LmNvbnRhaW5zKHF1YWQtPnF1YWRSZWN0KCkpKSA8PCBxdWFkU3Ry
aW5nIDw8IGk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNvbXBsZXRlbHlDb250YWlucyhyZW1haW5p
bmcsIHF1YWQtPnF1YWRSZWN0KCkpKSA8PCBxdWFkU3RyaW5nIDw8IGk7CisgICAgICAgIHJlbWFp
bmluZy5zdWJ0cmFjdChSZWdpb24ocXVhZC0+cXVhZFJlY3QoKSkpOworICAgIH0KKworICAgIEVY
UEVDVF9UUlVFKHJlbWFpbmluZy5pc0VtcHR5KCkpOworfQorCisvLyBUZXN0IHdpdGggYm90aCBi
b3JkZXIgdGV4ZWxzIGFuZCB3aXRob3V0LgorI2RlZmluZSBXSVRIX0FORF9XSVRIT1VUX0JPUkRF
Ul9URVNUKHRlc3RGaXh0dXJlTmFtZSkgICAgICAgXAorICAgIFRFU1QoQ0NUaWxlZExheWVySW1w
bFRlc3QsIHRlc3RGaXh0dXJlTmFtZSMjTm9Cb3JkZXJzKSAgXAorICAgIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0ZXN0
Rml4dHVyZU5hbWUoQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9yZGVyVGV4ZWxzKTsgXAorICAgIH0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIFRFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIHRlc3RGaXh0dXJlTmFtZSMjSGFzQm9yZGVy
cykgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgICAgICB0ZXN0Rml4dHVyZU5hbWUoQ0NMYXllclRpbGluZ0RhdGE6Okhh
c0JvcmRlclRleGVscyk7XAorICAgIH0KKworc3RhdGljIHZvaWQgY292ZXJhZ2VWaXNpYmxlUmVj
dE9uVGlsZUJvdW5kYXJpZXMoQ0NMYXllclRpbGluZ0RhdGE6OkJvcmRlclRleGVsT3B0aW9uIGJv
cmRlcnMpCit7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIHNjb3BlZEltcGxUaHJlYWQ7
CisKKyAgICBJbnRTaXplIGxheWVyU2l6ZSgxMDAwLCAxMDAwKTsKKyAgICBDQ1F1YWRMaXN0IHF1
YWRzOworICAgIGdldFF1YWRzKHF1YWRzLCBJbnRTaXplKDEwMCwgMTAwKSwgbGF5ZXJTaXplLCBi
b3JkZXJzLCBJbnRSZWN0KEludFBvaW50KCksIGxheWVyU2l6ZSkpOworICAgIHZlcmlmeVF1YWRz
RXhhY3RseUNvdmVyUmVjdChxdWFkcywgSW50UmVjdChJbnRQb2ludCgpLCBsYXllclNpemUpKTsK
K30KK1dJVEhfQU5EX1dJVEhPVVRfQk9SREVSX1RFU1QoY292ZXJhZ2VWaXNpYmxlUmVjdE9uVGls
ZUJvdW5kYXJpZXMpOworCitzdGF0aWMgdm9pZCBjb3ZlcmFnZVZpc2libGVSZWN0SW50ZXJzZWN0
c1RpbGVzKENDTGF5ZXJUaWxpbmdEYXRhOjpCb3JkZXJUZXhlbE9wdGlvbiBib3JkZXJzKQorewor
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBzY29wZWRJbXBsVGhyZWFkOworCisgICAgLy8g
VGhpcyByZWN0IGludGVyc2VjdHMgdGhlIG1pZGRsZSAzeDMgb2YgdGhlIDV4NSB0aWxlcy4KKyAg
ICBJbnRQb2ludCB0b3BMZWZ0KDY1LCA3Myk7CisgICAgSW50UG9pbnQgYm90dG9tUmlnaHQoMTgy
LCAxOTgpOworICAgIEludFJlY3QgdmlzaWJsZUxheWVyUmVjdCh0b3BMZWZ0LCBib3R0b21SaWdo
dCAtIHRvcExlZnQpOworCisgICAgSW50U2l6ZSBsYXllclNpemUoMjUwLCAyNTApOworICAgIEND
UXVhZExpc3QgcXVhZHM7CisgICAgZ2V0UXVhZHMocXVhZHMsIEludFNpemUoNTAsIDUwKSwgSW50
U2l6ZSgyNTAsIDI1MCksIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscywgdmlzaWJs
ZUxheWVyUmVjdCk7CisgICAgdmVyaWZ5UXVhZHNFeGFjdGx5Q292ZXJSZWN0KHF1YWRzLCB2aXNp
YmxlTGF5ZXJSZWN0KTsKK30KK1dJVEhfQU5EX1dJVEhPVVRfQk9SREVSX1RFU1QoY292ZXJhZ2VW
aXNpYmxlUmVjdEludGVyc2VjdHNUaWxlcyk7CisKK3N0YXRpYyB2b2lkIGNvdmVyYWdlVmlzaWJs
ZVJlY3RJbnRlcnNlY3RzQm91bmRzKENDTGF5ZXJUaWxpbmdEYXRhOjpCb3JkZXJUZXhlbE9wdGlv
biBib3JkZXJzKQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBzY29wZWRJbXBsVGhy
ZWFkOworCisgICAgSW50U2l6ZSBsYXllclNpemUoMjIwLCAyMTApOworICAgIEludFJlY3Qgdmlz
aWJsZUxheWVyUmVjdChJbnRQb2ludCgpLCBsYXllclNpemUpOworICAgIENDUXVhZExpc3QgcXVh
ZHM7CisgICAgZ2V0UXVhZHMocXVhZHMsIEludFNpemUoMTAwLCAxMDApLCBsYXllclNpemUsIEND
TGF5ZXJUaWxpbmdEYXRhOjpOb0JvcmRlclRleGVscywgdmlzaWJsZUxheWVyUmVjdCk7CisgICAg
dmVyaWZ5UXVhZHNFeGFjdGx5Q292ZXJSZWN0KHF1YWRzLCB2aXNpYmxlTGF5ZXJSZWN0KTsKK30K
K1dJVEhfQU5EX1dJVEhPVVRfQk9SREVSX1RFU1QoY292ZXJhZ2VWaXNpYmxlUmVjdEludGVyc2Vj
dHNCb3VuZHMpOworCitURVNUKENDVGlsZWRMYXllckltcGxUZXN0LCB0ZXh0dXJlSW5mb0Zvckxh
eWVyTm9Cb3JkZXJzKQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBzY29wZWRJbXBs
VGhyZWFkOworCisgICAgSW50U2l6ZSB0aWxlU2l6ZSg1MCwgNTApOworICAgIEludFNpemUgbGF5
ZXJTaXplKDI1MCwgMjUwKTsKKyAgICBDQ1F1YWRMaXN0IHF1YWRzOworICAgIGdldFF1YWRzKHF1
YWRzLCB0aWxlU2l6ZSwgbGF5ZXJTaXplLCBDQ0xheWVyVGlsaW5nRGF0YTo6Tm9Cb3JkZXJUZXhl
bHMsIEludFJlY3QoSW50UG9pbnQoKSwgbGF5ZXJTaXplKSk7CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEFTU0VSVF9FUShxdWFkc1tp
XS0+bWF0ZXJpYWwoKSwgQ0NEcmF3UXVhZDo6VGlsZWRDb250ZW50KSA8PCBxdWFkU3RyaW5nIDw8
IGk7CisgICAgICAgIENDVGlsZURyYXdRdWFkKiBxdWFkID0gc3RhdGljX2Nhc3Q8Q0NUaWxlRHJh
d1F1YWQqPihxdWFkc1tpXS5nZXQoKSk7CisKKyAgICAgICAgRVhQRUNUX05FKHF1YWQtPnRleHR1
cmVJZCgpLCAwdSkgPDwgcXVhZFN0cmluZyA8PCBpOworICAgICAgICBFWFBFQ1RfRVEocXVhZC0+
dGV4dHVyZU9mZnNldCgpLCBJbnRQb2ludCgpKSA8PCBxdWFkU3RyaW5nIDw8IGk7CisgICAgICAg
IEVYUEVDVF9FUShxdWFkLT50ZXh0dXJlU2l6ZSgpLCB0aWxlU2l6ZSkgPDwgcXVhZFN0cmluZyA8
PCBpOworICAgIH0KK30KKworCit9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>