<?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>129370</bug_id>
          
          <creation_ts>2014-02-26 06:55:34 -0800</creation_ts>
          <short_desc>FastMalloc should use vm_page_shift intead of PAGE_SHIFT.</short_desc>
          <delta_ts>2014-02-26 13:12:13 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984727</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 06:55:34 -0800</bug_when>
    <thetext>Previously we used PAGE_SHIFT to initialize kPageShift. Since this was a constant, it could be used to calculate other contants used in the code. Some of these values are used in the definition of certain data structures (specifiying the length of some array members).

Make kPageShift &amp; dependent properties variables setup during initialization. Add upper bound values (K_PAGE_SHIFT_MAX, K_NUM_CLASSES_MAX) for use in cases where we need a constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984728</commentid>
    <comment_count>1</comment_count>
      <attachid>225251</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 06:56:27 -0800</bug_when>
    <thetext>Created attachment 225251
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984729</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-26 06:58:32 -0800</bug_when>
    <thetext>Attachment 225251 did not pass style-queue:


ERROR: Source/WTF/wtf/FastMalloc.cpp:665:  num_objects_to_move is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:761:  class_to_size is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:764:  class_to_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:915:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:918:  Non-label code inside switch statements should be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:916:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:917:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:920:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:923:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:925:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:927:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:928:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:930:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:931:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1171:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1444:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1444:  tc_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1666:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1684:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1692:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1693:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1926:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1942:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2245:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2386:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2464:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2531:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2628:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  Extra space between FreeList and list_  [whitespace/declaration] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  list_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2818:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2831:  central_cache is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2987:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3012:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3059:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3075:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3130:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3213:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3323:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3398:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3691:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3713:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3751:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4040:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4055:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4109:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4483:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4726:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 61 in 2 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>984730</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 06:59:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/15483701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984733</commentid>
    <comment_count>4</comment_count>
      <attachid>225252</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 07:12:10 -0800</bug_when>
    <thetext>Created attachment 225252
Speculative efl/gtk build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984734</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-26 07:13:16 -0800</bug_when>
    <thetext>Attachment 225252 did not pass style-queue:


ERROR: Source/WTF/wtf/FastMalloc.cpp:665:  num_objects_to_move is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:761:  class_to_size is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:764:  class_to_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:915:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:918:  Non-label code inside switch statements should be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:916:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:917:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:920:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:923:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:925:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:927:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:928:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:930:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:931:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1171:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1444:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1444:  tc_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1666:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1684:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1692:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1693:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1926:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1942:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2245:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2386:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2464:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2531:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2628:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  Extra space between FreeList and list_  [whitespace/declaration] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2762:  list_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2818:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2831:  central_cache is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2987:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3012:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3059:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3075:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3130:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3213:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3323:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3398:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3691:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3713:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3751:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4040:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4055:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4109:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4482:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4483:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4725:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4726:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 61 in 2 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>984752</commentid>
    <comment_count>6</comment_count>
      <attachid>225259</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 08:45:49 -0800</bug_when>
    <thetext>Created attachment 225259
Ooops, stray semi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984753</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-26 08:48:47 -0800</bug_when>
    <thetext>Attachment 225259 did not pass style-queue:


ERROR: Source/WTF/wtf/FastMalloc.cpp:666:  num_objects_to_move is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:762:  class_to_size is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:765:  class_to_pages is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:916:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:919:  Non-label code inside switch statements should be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:917:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:918:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:921:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:924:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:926:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:928:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:929:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:931:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:932:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1164:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1172:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1445:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1445:  tc_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1667:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1685:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1693:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1694:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1927:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:1943:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2246:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2387:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2465:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2532:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2629:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2763:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2763:  Extra space between FreeList and list_  [whitespace/declaration] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2763:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2763:  list_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2819:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2832:  central_cache is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:2988:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3013:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3060:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3076:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3324:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3399:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3692:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3714:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:3752:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4041:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4056:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4110:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4162:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4483:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4483:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4483:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4483:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4484:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4726:  More than one command on the same line in if  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4726:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4726:  Use 0 instead of NULL.  [readability/null] [5]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4726:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/FastMalloc.cpp:4727:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 61 in 2 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>984780</commentid>
    <comment_count>8</comment_count>
      <attachid>225259</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-26 09:59:34 -0800</bug_when>
    <thetext>Comment on attachment 225259
Ooops, stray semi.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984813</commentid>
    <comment_count>9</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 11:11:59 -0800</bug_when>
    <thetext>Committed revision 164728.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984820</commentid>
    <comment_count>10</comment_count>
      <attachid>225259</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-02-26 11:30:29 -0800</bug_when>
    <thetext>Comment on attachment 225259
Ooops, stray semi.

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

&gt; Source/WTF/wtf/FastMalloc.cpp:1685
&gt; -  typedef TCMalloc_PageMap3&lt;64 - kPageShift - kBitsUnusedOn64Bit&gt; Type;
&gt; +  typedef TCMalloc_PageMap3&lt;64 - K_PAGE_SHIFT_MAX - kBitsUnusedOn64Bit&gt; Type;

Doesn&apos;t this lead to the page map using fewer bits than it was before? It seems like this will cause some page addresses to no longer be representable in the map when using 4K pages. Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984853</commentid>
    <comment_count>11</comment_count>
      <attachid>225283</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 12:48:51 -0800</bug_when>
    <thetext>Created attachment 225283
Fix for Mark&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984860</commentid>
    <comment_count>12</comment_count>
      <attachid>225283</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-02-26 12:51:57 -0800</bug_when>
    <thetext>Comment on attachment 225283
Fix for Mark&apos;s comments.

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

&gt; Source/WTF/ChangeLog:14
&gt; +              larger than absolutely necessary, rather that potentially too small.

&quot;rather that&quot; → &quot;rather than&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984871</commentid>
    <comment_count>13</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-02-26 13:12:13 -0800</bug_when>
    <thetext>Transmitting file data ..
Committed revision 164742.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225251</attachid>
            <date>2014-02-26 06:56:27 -0800</date>
            <delta_ts>2014-02-26 07:12:10 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>129370.1.patch</filename>
            <type>text/plain</type>
            <size>21752</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjQzNTcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDE0LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBGYXN0TWFsbG9jIHNob3VsZCB1c2Ug
dm1fcGFnZV9zaGlmdCBpbnRlYWQgb2YgUEFHRV9TSElGVC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTM3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2UgdXNlZCBQQUdFX1NISUZU
IHRvIGluaXRpYWxpemUga1BhZ2VTaGlmdC4KKyAgICAgICAgU2luY2UgdGhpcyB3YXMgYSBjb25z
dGFudCwgaXQgY291bGQgYmUgdXNlZCB0byBjYWxjdWxhdGUgb3RoZXIKKyAgICAgICAgY29udGFu
dHMgdXNlZCBpbiB0aGUgY29kZS4gU29tZSBvZiB0aGVzZSB2YWx1ZXMgYXJlIHVzZWQgaW4gdGhl
CisgICAgICAgIGRlZmluaXRpb24gb2YgY2VydGFpbiBkYXRhIHN0cnVjdHVyZXMgKHNwZWNpZml5
aW5nIHRoZSBsZW5ndGggb2YKKyAgICAgICAgc29tZSBhcnJheSBtZW1iZXJzKS4KKworICAgICAg
ICBNYWtlIGtQYWdlU2hpZnQgJiBkZXBlbmRlbnQgcHJvcGVydGllcyB2YXJpYWJsZXMgc2V0dXAg
ZHVyaW5nCisgICAgICAgIGluaXRpYWxpemF0aW9uLiBBZGQgdXBwZXIgYm91bmQgdmFsdWVzIChL
X1BBR0VfU0hJRlRfTUFYLAorICAgICAgICBLX05VTV9DTEFTU0VTX01BWCkgZm9yIHVzZSBpbiBj
YXNlcyB3aGVyZSB3ZSBuZWVkIGEgY29uc3RhbnQuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxv
Yy5jcHA6CisgICAgICAgIChXVEY6OkluaXRTaXplQ2xhc3Nlcyk6CisgICAgICAgICAgICAtIGlu
aXRpYWxpemUga1BhZ2VTaGlmdCwga051bUNsYXNzZXMsIGtQYWdlU2l6ZSwga01heFZhbGlkUGFn
ZXMuCisgICAgICAgIChXVEY6OnBhZ2VzKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgor
ICAgICAgICAoV1RGOjpBbGxvY2F0aW9uU2l6ZSk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VS
VC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OkZyZWVCeXRlcyk6CisgICAgICAg
ICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6Omlu
aXQpOgorICAgICAgICAgICAgLSBDT01QSUxFX0FTU0VSVCAtPiBBU1NFUlQKKyAgICAgICAgKFdU
Rjo6VENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNT
RVJULgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6Q2FydmUpOgorICAgICAgICAg
ICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6Om1lcmdlRGVjb21taXR0ZWRTdGF0ZXMp
OgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX1Bh
Z2VIZWFwOjpJbmNyZW1lbnRhbFNjYXZlbmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJU
LgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6UmV0dXJuZWRCeXRlcyk6CisgICAg
ICAgICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6UGFnZXNUb01CKToKKyAgICAg
ICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6
R3Jvd0hlYXApOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRD
TWFsbG9jX1BhZ2VIZWFwOjpSZWxlYXNlRnJlZUxpc3QpOgorICAgICAgICAgICAgLSBrTnVtQ2xh
c3NlcyAtPiBLX05VTV9DTEFTU0VTX01BWAorICAgICAgICAoV1RGOjpUQ01hbGxvY19UaHJlYWRD
YWNoZTo6ZW51bWVyYXRlRnJlZU9iamVjdHMpOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQu
CisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkluaXQpOgorICAgICAg
ICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJl
ZUxpc3Q6OlJlbGVhc2VUb1NwYW5zKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAg
ICAgICAoV1RGOjpUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpFdmljdFJhbmRvbVNpemVDbGFz
cyk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6VENNYWxsb2Nf
Q2VudHJhbF9GcmVlTGlzdDo6TWFrZUNhY2hlU3BhY2UpOgorICAgICAgICAgICAgLSBhZGRlZCBB
U1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6Okluc2VydFJh
bmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01hbGxv
Y19DZW50cmFsX0ZyZWVMaXN0OjpQb3B1bGF0ZSk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VS
VC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXQpOgorICAgICAgICAg
ICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX1RocmVhZENhY2hlOjpD
bGVhbnVwKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01h
bGxvY19UaHJlYWRDYWNoZTo6U2NhdmVuZ2UpOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQu
CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1RocmVhZENhY2hlOjpDcmVhdGVDYWNoZUlmTmVjZXNz
YXJ5KToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorCiAyMDE0LTAyLTE4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUExBVEZPUk0oTUFDKSBpcyB0cnVl
IHdoZW4gYnVpbGRpbmcgZm9yIGlPUwpJbmRleDogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHJldmlzaW9u
IDE2NDM1NykKKysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MjksMjggKzYyOSwyMSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB1aW50MzJfdCBmcmVl
ZE9iamVjCiAvLyBDb25maWd1cmF0aW9uCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorLy8gVHlwZSB0aGF0IGNh
biBob2xkIHRoZSBsZW5ndGggb2YgYSBydW4gb2YgcGFnZXMKK3R5cGVkZWYgdWludHB0cl90IExl
bmd0aDsKKwogLy8gTm90IGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgdGhlIGZvbGxvd2lu
ZyBwYXJhbWV0ZXJzIG1ha2UKIC8vIHNlbnNlLiAgSW4gcGFydGljdWxhciwgaWYga01heFNpemUg
aW5jcmVhc2VzLCB5b3UgbWF5IGhhdmUgdG8KIC8vIGluY3JlYXNlIGtOdW1DbGFzc2VzIGFzIHdl
bGwuCi0jaWYgT1MoREFSV0lOKQotIyAgICBkZWZpbmUgS19QQUdFX1NISUZUIFBBR0VfU0hJRlQK
LSMgICAgaWYgKEtfUEFHRV9TSElGVCA9PSAxMikKLSMgICAgICAgIGRlZmluZSBLX05VTV9DTEFT
U0VTIDY4Ci0jICAgIGVsaWYgKEtfUEFHRV9TSElGVCA9PSAxNCkKLSMgICAgICAgIGRlZmluZSBL
X05VTV9DTEFTU0VTIDc3Ci0jICAgIGVsc2UKLSMgICAgICAgIGVycm9yICJVbnN1cHBvcnRlZCBQ
QUdFX1NISUZUIGFtb3VudCIKLSMgICAgZW5kaWYKLSNlbHNlCi0jICAgIGRlZmluZSBLX1BBR0Vf
U0hJRlQgMTIKLSMgICAgZGVmaW5lIEtfTlVNX0NMQVNTRVMgNjgKLSNlbmRpZgotc3RhdGljIGNv
bnN0IHNpemVfdCBrUGFnZVNoaWZ0ICA9IEtfUEFHRV9TSElGVDsKLXN0YXRpYyBjb25zdCBzaXpl
X3Qga1BhZ2VTaXplICAgPSAxIDw8IGtQYWdlU2hpZnQ7CisjZGVmaW5lIEtfUEFHRV9TSElGVF9N
QVggMTQKKyNkZWZpbmUgS19OVU1fQ0xBU1NFU19NQVggNzcKK3N0YXRpYyBzaXplX3Qga1BhZ2VT
aGlmdCAgPSAwOworc3RhdGljIHNpemVfdCBrTnVtQ2xhc3NlcyA9IDA7CitzdGF0aWMgc2l6ZV90
IGtQYWdlU2l6ZSAgID0gMDsKK3N0YXRpYyBMZW5ndGgga01heFZhbGlkUGFnZXMgPSAwOwogc3Rh
dGljIGNvbnN0IHNpemVfdCBrTWF4U2l6ZSAgICA9IDMydSAqIDEwMjQ7CiBzdGF0aWMgY29uc3Qg
c2l6ZV90IGtBbGlnblNoaWZ0ID0gMzsKIHN0YXRpYyBjb25zdCBzaXplX3Qga0FsaWdubWVudCAg
PSAxIDw8IGtBbGlnblNoaWZ0Owotc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ2xhc3NlcyA9IEtf
TlVNX0NMQVNTRVM7CiAKIC8vIEFsbG9jYXRlcyBhIGJpZyBibG9jayBvZiBtZW1vcnkgZm9yIHRo
ZSBwYWdlbWFwIG9uY2Ugd2UgcmVhY2ggbW9yZSB0aGFuCiAvLyAxMjhNQgpAQCAtNjYyLDE0ICs2
NTUsMTQgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBrUGFnZU1hcEJpZ0FsbG9jYXRpbwogLy8gc2hv
dWxkIGtlZXAgdGhpcyB2YWx1ZSBiaWcgYmVjYXVzZSB2YXJpb3VzIGluY2FybmF0aW9ucyBvZiBM
aW51eAogLy8gaGF2ZSBzbWFsbCBsaW1pdHMgb24gdGhlIG51bWJlciBvZiBtbWFwKCkgcmVnaW9u
cyBwZXIKIC8vIGFkZHJlc3Mtc3BhY2UuCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtNaW5TeXN0ZW1B
bGxvYyA9IDEgPDwgKDIwIC0ga1BhZ2VTaGlmdCk7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtNaW5T
eXN0ZW1BbGxvYyA9IDEgPDwgKDIwIC0gS19QQUdFX1NISUZUX01BWCk7CiAKIC8vIE51bWJlciBv
ZiBvYmplY3RzIHRvIG1vdmUgYmV0d2VlbiBhIHBlci10aHJlYWQgbGlzdCBhbmQgYSBjZW50cmFs
CiAvLyBsaXN0IGluIG9uZSBzaG90LiAgV2Ugd2FudCB0aGlzIHRvIGJlIG5vdCB0b28gc21hbGwg
c28gd2UgY2FuCiAvLyBhbW9ydGl6ZSB0aGUgbG9jayBvdmVyaGVhZCBmb3IgYWNjZXNzaW5nIHRo
ZSBjZW50cmFsIGxpc3QuICBNYWtpbmcKIC8vIGl0IHRvbyBiaWcgbWF5IHRlbXBvcmFyaWx5IGNh
dXNlIHVubmVjZXNzYXJ5IG1lbW9yeSB3YXN0YWdlIGluIHRoZQogLy8gcGVyLXRocmVhZCBmcmVl
IGxpc3QgdW50aWwgdGhlIHNjYXZlbmdlciBjbGVhbnMgdXAgdGhlIGxpc3QuCi1zdGF0aWMgaW50
IG51bV9vYmplY3RzX3RvX21vdmVba051bUNsYXNzZXNdOworc3RhdGljIGludCBudW1fb2JqZWN0
c190b19tb3ZlW0tfTlVNX0NMQVNTRVNfTUFYXTsKIAogLy8gTWF4aW11bSBsZW5ndGggd2UgYWxs
b3cgYSBwZXItdGhyZWFkIGZyZWUtbGlzdCB0byBoYXZlIGJlZm9yZSB3ZQogLy8gbW92ZSBvYmpl
Y3RzIGZyb20gaXQgaW50byB0aGUgY29ycmVzcG9uZGluZyBjZW50cmFsIGZyZWUtbGlzdC4gIFdl
CkBAIC03NjUsMTAgKzc1OCwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBDbGFzc0luZGV4KHNpemVf
dCBzKSB7CiB9CiAKIC8vIE1hcHBpbmcgZnJvbSBzaXplIGNsYXNzIHRvIG1heCBzaXplIHN0b3Jh
YmxlIGluIHRoYXQgY2xhc3MKLXN0YXRpYyBzaXplX3QgY2xhc3NfdG9fc2l6ZVtrTnVtQ2xhc3Nl
c107CitzdGF0aWMgc2l6ZV90IGNsYXNzX3RvX3NpemVbS19OVU1fQ0xBU1NFU19NQVhdOwogCiAv
LyBNYXBwaW5nIGZyb20gc2l6ZSBjbGFzcyB0byBudW1iZXIgb2YgcGFnZXMgdG8gYWxsb2NhdGUg
YXQgYSB0aW1lCi1zdGF0aWMgc2l6ZV90IGNsYXNzX3RvX3BhZ2VzW2tOdW1DbGFzc2VzXTsKK3N0
YXRpYyBzaXplX3QgY2xhc3NfdG9fcGFnZXNbS19OVU1fQ0xBU1NFU19NQVhdOwogCiAvLyBIYXJk
ZW5lZCBzaW5nbHkgbGlua2VkIGxpc3QuICBXZSBtYWtlIHRoaXMgYSBjbGFzcyB0byBhbGxvdyBj
b21waWxlciB0bwogLy8gc3RhdGljYWxseSBwcmV2ZW50IG1pc21hdGNoaW5nIGhhcmRlbmVkIGFu
ZCBub24taGFyZGVuZWQgbGlzdApAQCAtODEzLDcgKzgwNiw4IEBAIHN0cnVjdCBUQ0VudHJ5IHsK
IC8vIG51bWJlciBvZiBUQ0VudHJpZXMgYWNyb3NzIHNpemUgY2xhc3NlcyBpcyBmaXhlZC4gIEN1
cnJlbnRseSBlYWNoIHNpemUKIC8vIGNsYXNzIGlzIGluaXRpYWxseSBnaXZlbiBvbmUgVENFbnRy
eSB3aGljaCBhbHNvIG1lYW5zIHRoYXQgdGhlIG1heGltdW0gYW55CiAvLyBvbmUgY2xhc3MgY2Fu
IGhhdmUgaXMga051bUNsYXNzZXMuCi1zdGF0aWMgY29uc3QgaW50IGtOdW1UcmFuc2ZlckVudHJp
ZXMgPSBrTnVtQ2xhc3NlczsKKyNkZWZpbmUgS19OVU1fVFJBTlNGRVJfRU5UUklFU19NQVggS19O
VU1fQ0xBU1NFU19NQVgKKyNkZWZpbmUga051bVRyYW5zZmVyRW50cmllcyBrTnVtQ2xhc3NlczsK
IAogLy8gTm90ZTogdGhlIGZvbGxvd2luZyBvbmx5IHdvcmtzIGZvciAibiJzIHRoYXQgZml0IGlu
IDMyLWJpdHMsIGJ1dAogLy8gdGhhdCBpcyBmaW5lIHNpbmNlIHdlIG9ubHkgdXNlIGl0IGZvciBz
bWFsbCBzaXplcy4KQEAgLTkxNyw2ICs5MTEsMjUgQEAgc3RhdGljIGludCBOdW1Nb3ZlU2l6ZShz
aXplX3Qgc2l6ZSkgewogCiAvLyBJbml0aWFsaXplIHRoZSBtYXBwaW5nIGFycmF5cwogc3RhdGlj
IHZvaWQgSW5pdFNpemVDbGFzc2VzKCkgeworI2lmIE9TKERBUldJTikKKyAga1BhZ2VTaGlmdCA9
IHZtX3BhZ2Vfc2hpZnQ7CisgIHN3aXRjaCAoa1BhZ2VTaGlmdCkgeworICBjYXNlIDEyOgorICAg
IGtOdW1DbGFzc2VzID0gNjg7CisgICAgYnJlYWs7CisgIGNhc2UgMTQ6CisgICAga051bUNsYXNz
ZXMgPSA3NzsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoKKyAgICBDUkFTSCgpOworICB9OworI2Vs
c2UKKyAga1BhZ2VTaGlmdCA9IDEyOworICBrTnVtQ2xhc3NlcyA9IDY4OworI2VuZGlmCisgIGtQ
YWdlU2l6ZSA9IDEgPDwga1BhZ2VTaGlmdDsKKyAga01heFZhbGlkUGFnZXMgPSAofnN0YXRpY19j
YXN0PExlbmd0aD4oMCkpID4+IGtQYWdlU2hpZnQ7CisKICAgLy8gRG8gc29tZSBzYW5pdHkgY2hl
Y2tpbmcgb24gYWRkX2Ftb3VudFtdL3NoaWZ0X2Ftb3VudFtdL2NsYXNzX2FycmF5W10KICAgaWYg
KENsYXNzSW5kZXgoMCkgPCAwKSB7CiAgICAgTUVTU0FHRSgiSW52YWxpZCBjbGFzcyBpbmRleCAl
ZCBmb3Igc2l6ZSAwXG4iLCBDbGFzc0luZGV4KDApKTsKQEAgLTExNDQsMTQgKzExNTcsMTAgQEAg
Y2xhc3MgUGFnZUhlYXBBbGxvY2F0b3IgewogLy8gVHlwZSB0aGF0IGNhbiBob2xkIGEgcGFnZSBu
dW1iZXIKIHR5cGVkZWYgdWludHB0cl90IFBhZ2VJRDsKIAotLy8gVHlwZSB0aGF0IGNhbiBob2xk
IHRoZSBsZW5ndGggb2YgYSBydW4gb2YgcGFnZXMKLXR5cGVkZWYgdWludHB0cl90IExlbmd0aDsK
LQotc3RhdGljIGNvbnN0IExlbmd0aCBrTWF4VmFsaWRQYWdlcyA9ICh+c3RhdGljX2Nhc3Q8TGVu
Z3RoPigwKSkgPj4ga1BhZ2VTaGlmdDsKLQogLy8gQ29udmVydCBieXRlIHNpemUgaW50byBwYWdl
cy4gIFRoaXMgd29uJ3Qgb3ZlcmZsb3csIGJ1dCBtYXkgcmV0dXJuCiAvLyBhbiB1bnJlYXNvbmFi
bHkgbGFyZ2UgdmFsdWUgaWYgYnl0ZXMgaXMgaHVnZSBlbm91Z2guCiBzdGF0aWMgaW5saW5lIExl
bmd0aCBwYWdlcyhzaXplX3QgYnl0ZXMpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNs
YXNzZXMgJiYga1BhZ2VTaXplKTsKICAgcmV0dXJuIChieXRlcyA+PiBrUGFnZVNoaWZ0KSArCiAg
ICAgICAoKGJ5dGVzICYgKGtQYWdlU2l6ZSAtIDEpKSA+IDAgPyAxIDogMCk7CiB9CkBAIC0xMTU5
LDYgKzExNjgsNyBAQCBzdGF0aWMgaW5saW5lIExlbmd0aCBwYWdlcyhzaXplX3QgYnl0ZXMpCiAv
LyBDb252ZXJ0IGEgdXNlciBzaXplIGludG8gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwg
YWN0dWFsbHkgYmUKIC8vIGFsbG9jYXRlZAogc3RhdGljIHNpemVfdCBBbGxvY2F0aW9uU2l6ZShz
aXplX3QgYnl0ZXMpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKICAgaWYgKGJ5dGVzID4ga01heFNpemUpIHsKICAgICAvLyBMYXJnZSBvYmplY3Q6
IHdlIGFsbG9jYXRlIGFuIGludGVncmFsIG51bWJlciBvZiBwYWdlcwogICAgIEFTU0VSVChieXRl
cyA8PSAoa01heFZhbGlkUGFnZXMgPDwga1BhZ2VTaGlmdCkpOwpAQCAtMTQzMSw3ICsxNDQxLDcg
QEAgY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCB7CiAgIC8vIEhlcmUgd2UgcmVzZXJ2
ZSBzcGFjZSBmb3IgVENFbnRyeSBjYWNoZSBzbG90cy4gIFNpbmNlIG9uZSBzaXplIGNsYXNzIGNh
bgogICAvLyBlbmQgdXAgZ2V0dGluZyBhbGwgdGhlIFRDRW50cmllcyBxdW90YSBpbiB0aGUgc3lz
dGVtIHdlIGp1c3QgcHJlYWxsb2NhdGUKICAgLy8gc3VmZmljaWVudCBudW1iZXIgb2YgZW50cmll
cyBoZXJlLgotICBUQ0VudHJ5IHRjX3Nsb3RzX1trTnVtVHJhbnNmZXJFbnRyaWVzXTsKKyAgVENF
bnRyeSB0Y19zbG90c19bS19OVU1fVFJBTlNGRVJfRU5UUklFU19NQVhdOwogCiAgIC8vIE51bWJl
ciBvZiBjdXJyZW50bHkgdXNlZCBjYWNoZWQgZW50cmllcyBpbiB0Y19zbG90c18uICBUaGlzIHZh
cmlhYmxlIGlzCiAgIC8vIHVwZGF0ZWQgdW5kZXIgYSBsb2NrIGJ1dCBjYW4gYmUgcmVhZCB3aXRo
b3V0IG9uZS4KQEAgLTE2NTMsNyArMTY2Myw3IEBAIHN0YXRpYyBTcGFuIHNhbXBsZWRfb2JqZWN0
czsKIC8vIFNlbGVjdG9yIGNsYXNzIC0tIGdlbmVyYWwgc2VsZWN0b3IgdXNlcyAzLWxldmVsIG1h
cAogdGVtcGxhdGUgPGludCBCSVRTPiBjbGFzcyBNYXBTZWxlY3RvciB7CiAgcHVibGljOgotICB0
eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAzPEJJVFMta1BhZ2VTaGlmdD4gVHlwZTsKKyAgdHlwZWRl
ZiBUQ01hbGxvY19QYWdlTWFwMzxCSVRTLUtfUEFHRV9TSElGVF9NQVg+IFR5cGU7CiAgIHR5cGVk
ZWYgUGFja2VkQ2FjaGU8QklUUywgdWludDY0X3Q+IENhY2hlVHlwZTsKIH07CiAKQEAgLTE2NzEs
NyArMTY4MSw3IEBAIHN0YXRpYyBjb25zdCBzaXplX3Qga0JpdHNVbnVzZWRPbjY0Qml0ID0KIC8v
IEEgdGhyZWUtbGV2ZWwgbWFwIGZvciA2NC1iaXQgbWFjaGluZXMKIHRlbXBsYXRlIDw+IGNsYXNz
IE1hcFNlbGVjdG9yPDY0PiB7CiAgcHVibGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAz
PDY0IC0ga1BhZ2VTaGlmdCAtIGtCaXRzVW51c2VkT242NEJpdD4gVHlwZTsKKyAgdHlwZWRlZiBU
Q01hbGxvY19QYWdlTWFwMzw2NCAtIEtfUEFHRV9TSElGVF9NQVggLSBrQml0c1VudXNlZE9uNjRC
aXQ+IFR5cGU7CiAgIHR5cGVkZWYgUGFja2VkQ2FjaGU8NjQsIHVpbnQ2NF90PiBDYWNoZVR5cGU7
CiB9OwogI2VuZGlmCkBAIC0xNjc5LDggKzE2ODksOCBAQCB0ZW1wbGF0ZSA8PiBjbGFzcyBNYXBT
ZWxlY3Rvcjw2ND4gewogLy8gQSB0d28tbGV2ZWwgbWFwIGZvciAzMi1iaXQgbWFjaGluZXMKIHRl
bXBsYXRlIDw+IGNsYXNzIE1hcFNlbGVjdG9yPDMyPiB7CiAgcHVibGljOgotICB0eXBlZGVmIFRD
TWFsbG9jX1BhZ2VNYXAyPDMyIC0ga1BhZ2VTaGlmdD4gVHlwZTsKLSAgdHlwZWRlZiBQYWNrZWRD
YWNoZTwzMiAtIGtQYWdlU2hpZnQsIHVpbnQxNl90PiBDYWNoZVR5cGU7CisgIHR5cGVkZWYgVENN
YWxsb2NfUGFnZU1hcDI8MzIgLSBLX1BBR0VfU0hJRlRfTUFYPiBUeXBlOworICB0eXBlZGVmIFBh
Y2tlZENhY2hlPDMyIC0gS19QQUdFX1NISUZUX01BWCwgdWludDE2X3Q+IENhY2hlVHlwZTsKIH07
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE3NzcsNiArMTc4Nyw3IEBAIGNsYXNzIFRDTWFs
bG9jX1BhZ2VIZWFwIHsKIAogICAvLyBSZXR1cm4gbnVtYmVyIG9mIGZyZWUgYnl0ZXMgaW4gaGVh
cAogICB1aW50NjRfdCBGcmVlQnl0ZXMoKSBjb25zdCB7CisgICAgQVNTRVJUKGtQYWdlU2hpZnQg
JiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgICByZXR1cm4gKHN0YXRpY19jYXN0PHVp
bnQ2NF90PihmcmVlX3BhZ2VzXykgPDwga1BhZ2VTaGlmdCk7CiAgIH0KIApAQCAtMTkxMiw2ICsx
OTIzLDggQEAgY2xhc3MgVENNYWxsb2NfUGFnZUhlYXAgewogCiB2b2lkIFRDTWFsbG9jX1BhZ2VI
ZWFwOjppbml0KCkKIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKKwogICBwYWdlbWFwXy5pbml0KE1ldGFEYXRhQWxsb2MpOwogICBwYWdlbWFwX2Nh
Y2hlXyA9IFBhZ2VNYXBDYWNoZSgwKTsKICAgZnJlZV9wYWdlc18gPSAwOwpAQCAtMTkyNiw3ICsx
OTM5LDcgQEAgdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6aW5pdCgpCiAgIHNjYXZlbmdlX2NvdW50
ZXJfID0gMDsKICAgLy8gU3RhcnQgc2NhdmVuZ2luZyBhdCBrTWF4UGFnZXMgbGlzdAogICBzY2F2
ZW5nZV9pbmRleF8gPSBrTWF4UGFnZXMtMTsKLSAgQ09NUElMRV9BU1NFUlQoa051bUNsYXNzZXMg
PD0gKDEgPDwgUGFnZU1hcENhY2hlOjprVmFsdWViaXRzKSwgdmFsdWViaXRzKTsKKyAgQVNTRVJU
KGtOdW1DbGFzc2VzIDw9ICgxIDw8IFBhZ2VNYXBDYWNoZTo6a1ZhbHVlYml0cykpOwogICBETExf
SW5pdCgmbGFyZ2VfLm5vcm1hbCwgZW50cm9weV8pOwogICBETExfSW5pdCgmbGFyZ2VfLnJldHVy
bmVkLCBlbnRyb3B5Xyk7CiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga01heFBhZ2VzOyBpKysp
IHsKQEAgLTIwNjcsNiArMjA4MCw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01hbGxvY19QYWdl
SGVhcDo6c2kKIAogdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6c2NhdmVuZ2UoKQogeworICAgIEFT
U0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgc2l6ZV90
IHBhZ2VzVG9SZWxlYXNlID0gbWluX2ZyZWVfY29tbWl0dGVkX3BhZ2VzX3NpbmNlX2xhc3Rfc2Nh
dmVuZ2VfICoga1NjYXZlbmdlUGVyY2VudGFnZTsKICAgICBzaXplX3QgdGFyZ2V0UGFnZUNvdW50
ID0gc3RkOjptYXg8c2l6ZV90PihrTWluaW11bUZyZWVDb21taXR0ZWRQYWdlQ291bnQsIGZyZWVf
Y29tbWl0dGVkX3BhZ2VzXyAtIHBhZ2VzVG9SZWxlYXNlKTsKIApAQCAtMjIyOCw2ICsyMjQyLDcg
QEAgU3BhbiogVENNYWxsb2NfUGFnZUhlYXA6OlNwbGl0KFNwYW4qIHNwYQogfQogCiBpbmxpbmUg
dm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6Q2FydmUoU3Bhbiogc3BhbiwgTGVuZ3RoIG4sIGJvb2wg
cmVsZWFzZWQpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VT
aXplKTsKICAgQVNTRVJUKG4gPiAwKTsKICAgRExMX1JlbW92ZShzcGFuLCBlbnRyb3B5Xyk7CiAg
IHNwYW4tPmZyZWUgPSAwOwpAQCAtMjI2NCw2ICsyMjc5LDcgQEAgaW5saW5lIHZvaWQgVENNYWxs
b2NfUGFnZUhlYXA6OkNhcnZlKFNwYQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIG1lcmdl
RGVjb21taXR0ZWRTdGF0ZXMoU3BhbiogZGVzdGluYXRpb24sIFNwYW4qIG90aGVyKQogeworICAg
IEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgaWYg
KGRlc3RpbmF0aW9uLT5kZWNvbW1pdHRlZCAmJiAhb3RoZXItPmRlY29tbWl0dGVkKSB7CiAgICAg
ICAgIFRDTWFsbG9jX1N5c3RlbVJlbGVhc2UocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ob3RoZXIt
PnN0YXJ0IDw8IGtQYWdlU2hpZnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PHNpemVfdD4ob3RoZXItPmxlbmd0aCA8PCBrUGFnZVNoaWZ0KSk7CkBAIC0yMzY3
LDYgKzIzODMsNyBAQCBpbmxpbmUgdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6RGVsZXRlKFNwCiAK
ICNpZiAhVVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RPX1NDQVZFTkdFX01FTU9SWQogdm9pZCBUQ01h
bGxvY19QYWdlSGVhcDo6SW5jcmVtZW50YWxTY2F2ZW5nZShMZW5ndGggbikgeworICBBU1NFUlQo
a1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAvLyBGYXN0IHBhdGg7
IG5vdCB5ZXQgdGltZSB0byByZWxlYXNlIG1lbW9yeQogICBzY2F2ZW5nZV9jb3VudGVyXyAtPSBu
OwogICBpZiAoc2NhdmVuZ2VfY291bnRlcl8gPj0gMCkgcmV0dXJuOyAgLy8gTm90IHlldCB0aW1l
IHRvIHNjYXZlbmdlCkBAIC0yNDI4LDYgKzI0NDUsNyBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFw
OjpSZWdpc3RlclNpemVDbGFzCiAgICAgCiAjaWZkZWYgV1RGX0NIQU5HRVMKIHNpemVfdCBUQ01h
bGxvY19QYWdlSGVhcDo6UmV0dXJuZWRCeXRlcygpIGNvbnN0IHsKKyAgICBBU1NFUlQoa1BhZ2VT
aGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAgIHNpemVfdCByZXN1bHQgPSAw
OwogICAgIGZvciAodW5zaWduZWQgcyA9IDA7IHMgPCBrTWF4UGFnZXM7IHMrKykgewogICAgICAg
ICBjb25zdCBpbnQgcl9sZW5ndGggPSBETExfTGVuZ3RoKCZmcmVlX1tzXS5yZXR1cm5lZCwgZW50
cm9weV8pOwpAQCAtMjQ0Myw2ICsyNDYxLDcgQEAgc2l6ZV90IFRDTWFsbG9jX1BhZ2VIZWFwOjpS
ZXR1cm5lZEJ5dGVzKAogCiAjaWZuZGVmIFdURl9DSEFOR0VTCiBzdGF0aWMgZG91YmxlIFBhZ2Vz
VG9NQih1aW50NjRfdCBwYWdlcykgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3Nl
cyAmJiBrUGFnZVNpemUpOwogICByZXR1cm4gKHBhZ2VzIDw8IGtQYWdlU2hpZnQpIC8gMTA0ODU3
Ni4wOwogfQogCkBAIC0yNTA5LDYgKzI1MjgsNyBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpE
dW1wKFRDTWFsbG9jX1ByCiAjZW5kaWYKIAogYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6R3Jvd0hl
YXAoTGVuZ3RoIG4pIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKICAgQVNTRVJUKGtNYXhQYWdlcyA+PSBrTWluU3lzdGVtQWxsb2MpOwogICBpZiAo
biA+IGtNYXhWYWxpZFBhZ2VzKSByZXR1cm4gZmFsc2U7CiAgIExlbmd0aCBhc2sgPSAobj5rTWlu
U3lzdGVtQWxsb2MpID8gbiA6IHN0YXRpY19jYXN0PExlbmd0aD4oa01pblN5c3RlbUFsbG9jKTsK
QEAgLTI2MDUsNiArMjYyNSw3IEBAIHNpemVfdCBUQ01hbGxvY19QYWdlSGVhcDo6Q2hlY2tMaXN0
KFNwYW4KICNlbmRpZgogCiB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpSZWxlYXNlRnJlZUxpc3Qo
U3BhbiogbGlzdCwgU3BhbiogcmV0dXJuZWQpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051
bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gV2FsayBiYWNrd2FyZHMgdGhyb3VnaCBsaXN0
IHNvIHRoYXQgd2hlbiB3ZSBwdXNoIHRoZXNlCiAgIC8vIHNwYW5zIG9uIHRoZSAicmV0dXJuZWQi
IGxpc3QsIHdlIHByZXNlcnZlIHRoZSBvcmRlci4KICNpZiBVU0VfQkFDS0dST1VORF9USFJFQURf
VE9fU0NBVkVOR0VfTUVNT1JZCkBAIC0yNzM4LDcgKzI3NTksNyBAQCBjbGFzcyBUQ01hbGxvY19U
aHJlYWRDYWNoZSB7CiAgIHNpemVfdCAgICAgICAgc2l6ZV87ICAgICAgICAgICAgICAgICAgLy8g
Q29tYmluZWQgc2l6ZSBvZiBkYXRhCiAgIFRocmVhZElkZW50aWZpZXIgdGlkXzsgICAgICAgICAg
ICAgICAgLy8gV2hpY2ggdGhyZWFkIG93bnMgaXQKICAgYm9vbCAgICAgICAgICBpbl9zZXRzcGVj
aWZpY187ICAgICAgICAgICAvLyBDYWxsZWQgcHRocmVhZF9zZXRzcGVjaWZpYz8KLSAgRnJlZUxp
c3QgICAgICBsaXN0X1trTnVtQ2xhc3Nlc107ICAgICAvLyBBcnJheSBpbmRleGVkIGJ5IHNpemUt
Y2xhc3MKKyAgRnJlZUxpc3QgICAgICBsaXN0X1tLX05VTV9DTEFTU0VTX01BWF07ICAgICAvLyBB
cnJheSBpbmRleGVkIGJ5IHNpemUtY2xhc3MKIAogICAvLyBXZSBzYW1wbGUgYWxsb2NhdGlvbnMs
IGJpYXNlZCBieSB0aGUgc2l6ZSBvZiB0aGUgYWxsb2NhdGlvbgogICB1aW50MzJfdCAgICAgIHJu
ZF87ICAgICAgICAgICAgICAgICAgIC8vIENoZWFwIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCkBA
IC0yNzk0LDYgKzI4MTUsNyBAQCBjbGFzcyBUQ01hbGxvY19UaHJlYWRDYWNoZSB7CiAgIHRlbXBs
YXRlIDxjbGFzcyBGaW5kZXIsIGNsYXNzIFJlYWRlcj4KICAgdm9pZCBlbnVtZXJhdGVGcmVlT2Jq
ZWN0cyhGaW5kZXImIGZpbmRlciwgY29uc3QgUmVhZGVyJiByZWFkZXIpCiAgIHsKKyAgICAgIEFT
U0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgICBmb3Ig
KHVuc2lnbmVkIHNpemVDbGFzcyA9IDA7IHNpemVDbGFzcyA8IGtOdW1DbGFzc2VzOyBzaXplQ2xh
c3MrKykKICAgICAgICAgICBsaXN0X1tzaXplQ2xhc3NdLmVudW1lcmF0ZUZyZWVPYmplY3RzKGZp
bmRlciwgcmVhZGVyKTsKICAgfQpAQCAtMjgwNiw3ICsyODI4LDcgQEAgY2xhc3MgVENNYWxsb2Nf
VGhyZWFkQ2FjaGUgewogCiAvLyBDZW50cmFsIGNhY2hlIC0tIGEgY29sbGVjdGlvbiBvZiBmcmVl
LWxpc3RzLCBvbmUgcGVyIHNpemUtY2xhc3MuCiAvLyBXZSBoYXZlIGEgc2VwYXJhdGUgbG9jayBw
ZXIgZnJlZS1saXN0IHRvIHJlZHVjZSBjb250ZW50aW9uLgotc3RhdGljIFRDTWFsbG9jX0NlbnRy
YWxfRnJlZUxpc3RQYWRkZWQgY2VudHJhbF9jYWNoZVtrTnVtQ2xhc3Nlc107CitzdGF0aWMgVENN
YWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCBjZW50cmFsX2NhY2hlW0tfTlVNX0NMQVNTRVNf
TUFYXTsKIAogLy8gUGFnZS1sZXZlbCBhbGxvY2F0b3IKIHN0YXRpYyBBbGxvY0FsaWdubWVudElu
dGVnZXIgcGFnZWhlYXBfbWVtb3J5WyhzaXplb2YoVENNYWxsb2NfUGFnZUhlYXApICsgc2l6ZW9m
KEFsbG9jQWxpZ25tZW50SW50ZWdlcikgLSAxKSAvIHNpemVvZihBbGxvY0FsaWdubWVudEludGVn
ZXIpXTsKQEAgLTI5NjIsNiArMjk4NCw3IEBAIHN0YXRpYyB2b2xhdGlsZSBzaXplX3QgcGVyX3Ro
cmVhZF9jYWNoZV8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxp
c3Q6OkluaXQoc2l6ZV90IGNsLCB1aW50cHRyX3QgZW50cm9weSkgeworICBBU1NFUlQoa1BhZ2VT
aGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBsb2NrXy5Jbml0KCk7CiAgIHNp
emVfY2xhc3NfID0gY2w7CiAgIGVudHJvcHlfID0gZW50cm9weTsKQEAgLTI5ODYsNiArMzAwOSw3
IEBAIHZvaWQgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6UmVsZWFzZUwKIH0KIAogQUxXQVlT
X0lOTElORSB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlJlbGVhc2VUb1NwYW5zKEhh
cmRlbmVkU0xMIG9iamVjdCkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAm
JiBrUGFnZVNpemUpOwogICBjb25zdCBQYWdlSUQgcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihvYmplY3QudmFsdWUoKSkgPj4ga1BhZ2VTaGlmdDsKICAgU3Bhbiogc3BhbiA9IHBhZ2Vo
ZWFwLT5HZXREZXNjcmlwdG9yKHApOwogICBBU1NFUlQoc3BhbiAhPSBOVUxMKTsKQEAgLTMwMzIs
NiArMzA1Niw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01hbGxvY19DZW50cmFsX0ZyZWUKIAog
QUxXQVlTX0lOTElORSBib29sIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkV2aWN0UmFuZG9t
U2l6ZUNsYXNzKAogICAgIHNpemVfdCBsb2NrZWRfc2l6ZV9jbGFzcywgYm9vbCBmb3JjZSkgewor
ICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBzdGF0
aWMgaW50IHJhY2VfY291bnRlciA9IDA7CiAgIGludCB0ID0gcmFjZV9jb3VudGVyKys7ICAvLyBV
cGRhdGVkIHdpdGhvdXQgYSBsb2NrLCBidXQgd2hvIGNhcmVzLgogICBpZiAodCA+PSBzdGF0aWNf
Y2FzdDxpbnQ+KGtOdW1DbGFzc2VzKSkgewpAQCAtMzA0Nyw2ICszMDcyLDcgQEAgQUxXQVlTX0lO
TElORSBib29sIFRDTWFsbG9jX0NlbnRyYWxfRnJlZQogfQogCiBib29sIFRDTWFsbG9jX0NlbnRy
YWxfRnJlZUxpc3Q6Ok1ha2VDYWNoZVNwYWNlKCkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBr
TnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAvLyBJcyB0aGVyZSByb29tIGluIHRoZSBjYWNo
ZT8KICAgaWYgKHVzZWRfc2xvdHNfIDwgY2FjaGVfc2l6ZV8pIHJldHVybiB0cnVlOwogICAvLyBD
aGVjayBpZiB3ZSBjYW4gZXhwYW5kIHRoaXMgY2FjaGU/CkBAIC0zMTAxLDYgKzMxMjcsNyBAQCBi
b29sIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlNocmlua0NhCiB9CiAKIHZvaWQgVENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdDo6SW5zZXJ0UmFuZ2UoSGFyZGVuZWRTTEwgc3RhcnQsIEhhcmRl
bmVkU0xMIGVuZCwgaW50IE4pIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMg
JiYga1BhZ2VTaXplKTsKICAgU3BpbkxvY2tIb2xkZXIgaCgmbG9ja18pOwogICBpZiAoTiA9PSBu
dW1fb2JqZWN0c190b19tb3ZlW3NpemVfY2xhc3NfXSAmJgogICAgIE1ha2VDYWNoZVNwYWNlKCkp
IHsKQEAgLTMxODMsNiArMzIxMCw3IEBAIEhhcmRlbmVkU0xMIFRDTWFsbG9jX0NlbnRyYWxfRnJl
ZUxpc3Q6OkYKIAogLy8gRmV0Y2ggbWVtb3J5IGZyb20gdGhlIHN5c3RlbSBhbmQgYWRkIHRvIHRo
ZSBjZW50cmFsIGNhY2hlIGZyZWVsaXN0LgogQUxXQVlTX0lOTElORSB2b2lkIFRDTWFsbG9jX0Nl
bnRyYWxfRnJlZUxpc3Q6OlBvcHVsYXRlKCkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVt
Q2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAvLyBSZWxlYXNlIGNlbnRyYWwgbGlzdCBsb2NrIHdo
aWxlIG9wZXJhdGluZyBvbiBwYWdlaGVhcAogICBsb2NrXy5VbmxvY2soKTsKICAgY29uc3Qgc2l6
ZV90IG5wYWdlcyA9IGNsYXNzX3RvX3BhZ2VzW3NpemVfY2xhc3NfXTsKQEAgLTMyNjksNiArMzI5
Nyw3IEBAIGlubGluZSBib29sIFRDTWFsbG9jX1RocmVhZENhY2hlOjpTYW1wbGUKIH0KIAogdm9p
ZCBUQ01hbGxvY19UaHJlYWRDYWNoZTo6SW5pdChUaHJlYWRJZGVudGlmaWVyIHRpZCwgdWludHB0
cl90IGVudHJvcHkpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKICAgc2l6ZV8gPSAwOwogICBuZXh0XyA9IE5VTEw7CiAgIHByZXZfID0gTlVMTDsK
QEAgLTMyOTEsNiArMzMyMCw3IEBAIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXQoVGhy
ZWFkSWQKIH0KIAogdm9pZCBUQ01hbGxvY19UaHJlYWRDYWNoZTo6Q2xlYW51cCgpIHsKKyAgQVNT
RVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gUHV0IHVu
dXNlZCBtZW1vcnkgYmFjayBpbnRvIGNlbnRyYWwgY2FjaGUKICAgZm9yIChzaXplX3QgY2wgPSAw
OyBjbCA8IGtOdW1DbGFzc2VzOyArK2NsKSB7CiAgICAgaWYgKGxpc3RfW2NsXS5sZW5ndGgoKSA+
IDApIHsKQEAgLTMzNjUsNiArMzM5NSw3IEBAIGlubGluZSB2b2lkIFRDTWFsbG9jX1RocmVhZENh
Y2hlOjpSZWxlYXMKIAogLy8gUmVsZWFzZSBpZGxlIG1lbW9yeSB0byB0aGUgY2VudHJhbCBjYWNo
ZQogaW5saW5lIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OlNjYXZlbmdlKCkgeworICBBU1NF
UlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAvLyBJZiB0aGUg
bG93LXdhdGVyIG1hcmsgZm9yIHRoZSBmcmVlIGxpc3QgaXMgTCwgaXQgbWVhbnMgd2Ugd291bGQK
ICAgLy8gbm90IGhhdmUgaGFkIHRvIGFsbG9jYXRlIGFueXRoaW5nIGZyb20gdGhlIGNlbnRyYWwg
Y2FjaGUgZXZlbiBpZgogICAvLyB3ZSBoYWQgcmVkdWNlZCB0aGUgZnJlZSBsaXN0IHNpemUgYnkg
TC4gIFdlIGFpbSB0byBnZXQgY2xvc2VyIHRvCkBAIC0zNjU3LDYgKzM2ODgsNyBAQCB2b2lkIFRD
TWFsbG9jX1RocmVhZENhY2hlOjpSZWNvbXB1dGVUaHJlCiB9CiAKIHZvaWQgVENNYWxsb2NfVGhy
ZWFkQ2FjaGU6OlByaW50KCkgY29uc3QgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xh
c3NlcyAmJiBrUGFnZVNpemUpOwogICBmb3IgKHNpemVfdCBjbCA9IDA7IGNsIDwga051bUNsYXNz
ZXM7ICsrY2wpIHsKICAgICBNRVNTQUdFKCIgICAgICAlNSIgUFJJdVMgIiA6ICU0ZCBsZW47ICU0
ZCBsb1xuIiwKICAgICAgICAgICAgIEJ5dGVTaXplRm9yQ2xhc3MoY2wpLApAQCAtMzY3OCw2ICsz
NzEwLDcgQEAgc3RydWN0IFRDTWFsbG9jU3RhdHMgewogI2lmbmRlZiBXVEZfQ0hBTkdFUwogLy8g
R2V0IHN0YXRzIGludG8gInIiLiAgQWxzbyBnZXQgcGVyLXNpemUtY2xhc3MgY291bnRzIGlmIGNs
YXNzX2NvdW50ICE9IE5VTEwKIHN0YXRpYyB2b2lkIEV4dHJhY3RTdGF0cyhUQ01hbGxvY1N0YXRz
KiByLCB1aW50NjRfdCogY2xhc3NfY291bnQpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051
bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgci0+Y2VudHJhbF9ieXRlcyA9IDA7CiAgIHItPnRy
YW5zZmVyX2J5dGVzID0gMDsKICAgZm9yIChpbnQgY2wgPSAwOyBjbCA8IGtOdW1DbGFzc2VzOyAr
K2NsKSB7CkBAIC0zNzE1LDYgKzM3NDgsNyBAQCBzdGF0aWMgdm9pZCBFeHRyYWN0U3RhdHMoVENN
YWxsb2NTdGF0cyogCiAjaWZuZGVmIFdURl9DSEFOR0VTCiAvLyBXUklURSBzdGF0cyB0byAib3V0
Igogc3RhdGljIHZvaWQgRHVtcFN0YXRzKFRDTWFsbG9jX1ByaW50ZXIqIG91dCwgaW50IGxldmVs
KSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAg
IFRDTWFsbG9jU3RhdHMgc3RhdHM7CiAgIHVpbnQ2NF90IGNsYXNzX2NvdW50W2tOdW1DbGFzc2Vz
XTsKICAgRXh0cmFjdFN0YXRzKCZzdGF0cywgKGxldmVsID49IDIgPyBjbGFzc19jb3VudCA6IE5V
TEwpKTsKQEAgLTQwMDMsNiArNDAzNyw3IEBAIHN0YXRpYyBTcGFuKiBEb1NhbXBsZWRBbGxvY2F0
aW9uKHNpemVfdCAKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKIHN0YXRpYyBpbmxpbmUgYm9vbCBD
aGVja0NhY2hlZFNpemVDbGFzcyh2b2lkICpwdHIpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYg
a051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgUGFnZUlEIHAgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4ocHRyKSA+PiBrUGFnZVNoaWZ0OwogICBzaXplX3QgY2FjaGVkX3ZhbHVlID0g
cGFnZWhlYXAtPkdldFNpemVDbGFzc0lmQ2FjaGVkKHApOwogICByZXR1cm4gY2FjaGVkX3ZhbHVl
ID09IDAgfHwKQEAgLTQwMTcsNiArNDA1Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCogQ2hlY2tl
ZE1hbGxvY1Jlc3VsdCgKIH0KIAogc3RhdGljIGlubGluZSB2b2lkKiBTcGFuVG9NYWxsb2NSZXN1
bHQoU3BhbiAqc3BhbikgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBr
UGFnZVNpemUpOwogICBBU1NFUlRfU1BBTl9DT01NSVRURUQoc3Bhbik7CiAgIHBhZ2VoZWFwLT5D
YWNoZVNpemVDbGFzcyhzcGFuLT5zdGFydCwgMCk7CiAgIHZvaWQqIHJlc3VsdCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KHNwYW4tPnN0YXJ0IDw8IGtQYWdlU2hpZnQpOwpAQCAtNDA3MCw2ICs0
MTA2LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCogZG9fbWFsbG9jKHNpegogc3RhdGlj
IEFMV0FZU19JTkxJTkUgdm9pZCBkb19mcmVlKHZvaWQqIHB0cikgewogICBpZiAocHRyID09IE5V
TEwpIHJldHVybjsKICAgQVNTRVJUKHBhZ2VoZWFwICE9IE5VTEwpOyAgLy8gU2hvdWxkIG5vdCBj
YWxsIGZyZWUoKSBiZWZvcmUgbWFsbG9jKCkKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNs
YXNzZXMgJiYga1BhZ2VTaXplKTsKICAgY29uc3QgUGFnZUlEIHAgPSByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4ocHRyKSA+PiBrUGFnZVNoaWZ0OwogICBTcGFuKiBzcGFuID0gcGFnZWhlYXAt
PkdldERlc2NyaXB0b3IocCk7CiAgIFJFTEVBU0VfQVNTRVJUKHNwYW4tPmlzVmFsaWQoKSk7CkBA
IC00MTIxLDYgKzQxNTgsNyBAQCBzdGF0aWMgdm9pZCogZG9fbWVtYWxpZ24oc2l6ZV90IGFsaWdu
LCBzCiAgIEFTU0VSVCgoYWxpZ24gJiAoYWxpZ24gLSAxKSkgPT0gMCk7CiAgIEFTU0VSVChhbGln
biA+IDApOwogICBpZiAocGFnZWhlYXAgPT0gTlVMTCkgVENNYWxsb2NfVGhyZWFkQ2FjaGU6Oklu
aXRNb2R1bGUoKTsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VT
aXplKTsKIAogICAvLyBBbGxvY2F0ZSBhdCBsZWFzdCBvbmUgYnl0ZSB0byBhdm9pZCBib3VuZGFy
eSBjb25kaXRpb25zIGJlbG93CiAgIGlmIChzaXplID09IDApIHNpemUgPSAxOwpAQCAtNDQ0MSw2
ICs0NDc5LDkgQEAgdm9pZCogcmVhbGxvYyh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3XwogICAg
IG5ld19zaXplICs9IEludGVybmFsOjpWYWxpZGF0aW9uQnVmZmVyU2l6ZTsKICNlbmRpZgogCisg
IEFTU0VSVChwYWdlaGVhcCAhPSBOVUxMKTsgIC8vIFNob3VsZCBub3QgY2FsbCByZWFsbG9jKCkg
YmVmb3JlIG1hbGxvYygpCisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQ
YWdlU2l6ZSk7CisKICAgLy8gR2V0IHRoZSBzaXplIG9mIHRoZSBvbGQgZW50cnkKICAgY29uc3Qg
UGFnZUlEIHAgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2xkX3B0cikgPj4ga1BhZ2VT
aGlmdDsKICAgc2l6ZV90IGNsID0gcGFnZWhlYXAtPkdldFNpemVDbGFzc0lmQ2FjaGVkKHApOwpA
QCAtNDY1OSw2ICs0NzAwLDcgQEAgdm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKQog
CiBGYXN0TWFsbG9jU3RhdGlzdGljcyBmYXN0TWFsbG9jU3RhdGlzdGljcygpCiB7CisgICAgQVNT
RVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgICBGYXN0TWFs
bG9jU3RhdGlzdGljcyBzdGF0aXN0aWNzOwogCiAgICAgU3BpbkxvY2tIb2xkZXIgbG9ja0hvbGRl
cigmcGFnZWhlYXBfbG9jayk7CkBAIC00NjgwLDYgKzQ3MjIsOSBAQCBGYXN0TWFsbG9jU3RhdGlz
dGljcyBmYXN0TWFsbG9jU3RhdGlzdGljCiAKIHNpemVfdCBmYXN0TWFsbG9jU2l6ZShjb25zdCB2
b2lkKiBwdHIpCiB7CisgIGlmIChwYWdlaGVhcCA9PSBOVUxMKSBUQ01hbGxvY19UaHJlYWRDYWNo
ZTo6SW5pdE1vZHVsZSgpOworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBr
UGFnZVNpemUpOworCiAjaWYgRU5BQkxFKFdURl9NQUxMT0NfVkFMSURBVElPTikKICAgICByZXR1
cm4gSW50ZXJuYWw6OmZhc3RNYWxsb2NWYWxpZGF0aW9uSGVhZGVyKGNvbnN0X2Nhc3Q8dm9pZCo+
KHB0cikpLT5tX3NpemU7CiAjZWxzZQpAQCAtNDc5MSw2ICs0ODM2LDcgQEAgcHVibGljOgogCiAg
ICAgaW50IHZpc2l0KHZvaWQqIHB0cikgY29uc3QKICAgICB7CisgICAgICAgIEFTU0VSVChrUGFn
ZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgICAgIGlmICghcHRyKQog
ICAgICAgICAgICAgcmV0dXJuIDE7CiAKQEAgLTQ4MzgsNiArNDg4NCw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcmVjb3JkUGVuZGluZ1JlZ2lvbnMoKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGtQ
YWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKKwogICAgICAgICBib29sIHJl
Y29yZFJlZ2lvbnNDb250YWluaW5nUG9pbnRlcnMgPSBtX3R5cGVNYXNrICYgTUFMTE9DX1BUUl9S
RUdJT05fUkFOR0VfVFlQRTsKICAgICAgICAgYm9vbCByZWNvcmRBbGxvY2F0aW9ucyA9IG1fdHlw
ZU1hc2sgJiBNQUxMT0NfUFRSX0lOX1VTRV9SQU5HRV9UWVBFOwogCkBAIC00ODg2LDYgKzQ5MzQs
NyBAQCBwdWJsaWM6CiAKICAgICBpbnQgdmlzaXQodm9pZCogcHRyKQogICAgIHsKKyAgICAgICAg
QVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgICAgICAg
aWYgKCFwdHIpCiAgICAgICAgICAgICByZXR1cm4gMTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225252</attachid>
            <date>2014-02-26 07:12:10 -0800</date>
            <delta_ts>2014-02-26 08:45:49 -0800</delta_ts>
            <desc>Speculative efl/gtk build fix</desc>
            <filename>129370.2.patch</filename>
            <type>text/plain</type>
            <size>21788</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjQzNTcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDE0LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBGYXN0TWFsbG9jIHNob3VsZCB1c2Ug
dm1fcGFnZV9zaGlmdCBpbnRlYWQgb2YgUEFHRV9TSElGVC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTM3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2UgdXNlZCBQQUdFX1NISUZU
IHRvIGluaXRpYWxpemUga1BhZ2VTaGlmdC4KKyAgICAgICAgU2luY2UgdGhpcyB3YXMgYSBjb25z
dGFudCwgaXQgY291bGQgYmUgdXNlZCB0byBjYWxjdWxhdGUgb3RoZXIKKyAgICAgICAgY29udGFu
dHMgdXNlZCBpbiB0aGUgY29kZS4gU29tZSBvZiB0aGVzZSB2YWx1ZXMgYXJlIHVzZWQgaW4gdGhl
CisgICAgICAgIGRlZmluaXRpb24gb2YgY2VydGFpbiBkYXRhIHN0cnVjdHVyZXMgKHNwZWNpZml5
aW5nIHRoZSBsZW5ndGggb2YKKyAgICAgICAgc29tZSBhcnJheSBtZW1iZXJzKS4KKworICAgICAg
ICBNYWtlIGtQYWdlU2hpZnQgJiBkZXBlbmRlbnQgcHJvcGVydGllcyB2YXJpYWJsZXMgc2V0dXAg
ZHVyaW5nCisgICAgICAgIGluaXRpYWxpemF0aW9uLiBBZGQgdXBwZXIgYm91bmQgdmFsdWVzIChL
X1BBR0VfU0hJRlRfTUFYLAorICAgICAgICBLX05VTV9DTEFTU0VTX01BWCkgZm9yIHVzZSBpbiBj
YXNlcyB3aGVyZSB3ZSBuZWVkIGEgY29uc3RhbnQuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxv
Yy5jcHA6CisgICAgICAgIChXVEY6OkluaXRTaXplQ2xhc3Nlcyk6CisgICAgICAgICAgICAtIGlu
aXRpYWxpemUga1BhZ2VTaGlmdCwga051bUNsYXNzZXMsIGtQYWdlU2l6ZSwga01heFZhbGlkUGFn
ZXMuCisgICAgICAgIChXVEY6OnBhZ2VzKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgor
ICAgICAgICAoV1RGOjpBbGxvY2F0aW9uU2l6ZSk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VS
VC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OkZyZWVCeXRlcyk6CisgICAgICAg
ICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6Omlu
aXQpOgorICAgICAgICAgICAgLSBDT01QSUxFX0FTU0VSVCAtPiBBU1NFUlQKKyAgICAgICAgKFdU
Rjo6VENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNT
RVJULgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6Q2FydmUpOgorICAgICAgICAg
ICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6Om1lcmdlRGVjb21taXR0ZWRTdGF0ZXMp
OgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX1Bh
Z2VIZWFwOjpJbmNyZW1lbnRhbFNjYXZlbmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJU
LgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6UmV0dXJuZWRCeXRlcyk6CisgICAg
ICAgICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6UGFnZXNUb01CKToKKyAgICAg
ICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6
R3Jvd0hlYXApOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRD
TWFsbG9jX1BhZ2VIZWFwOjpSZWxlYXNlRnJlZUxpc3QpOgorICAgICAgICAgICAgLSBrTnVtQ2xh
c3NlcyAtPiBLX05VTV9DTEFTU0VTX01BWAorICAgICAgICAoV1RGOjpUQ01hbGxvY19UaHJlYWRD
YWNoZTo6ZW51bWVyYXRlRnJlZU9iamVjdHMpOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQu
CisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkluaXQpOgorICAgICAg
ICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJl
ZUxpc3Q6OlJlbGVhc2VUb1NwYW5zKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAg
ICAgICAoV1RGOjpUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpFdmljdFJhbmRvbVNpemVDbGFz
cyk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6VENNYWxsb2Nf
Q2VudHJhbF9GcmVlTGlzdDo6TWFrZUNhY2hlU3BhY2UpOgorICAgICAgICAgICAgLSBhZGRlZCBB
U1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6Okluc2VydFJh
bmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01hbGxv
Y19DZW50cmFsX0ZyZWVMaXN0OjpQb3B1bGF0ZSk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VS
VC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXQpOgorICAgICAgICAg
ICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX1RocmVhZENhY2hlOjpD
bGVhbnVwKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01h
bGxvY19UaHJlYWRDYWNoZTo6U2NhdmVuZ2UpOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQu
CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1RocmVhZENhY2hlOjpDcmVhdGVDYWNoZUlmTmVjZXNz
YXJ5KToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorCiAyMDE0LTAyLTE4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUExBVEZPUk0oTUFDKSBpcyB0cnVl
IHdoZW4gYnVpbGRpbmcgZm9yIGlPUwpJbmRleDogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHJldmlzaW9u
IDE2NDM1NykKKysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MjksMjggKzYyOSwyMSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB1aW50MzJfdCBmcmVl
ZE9iamVjCiAvLyBDb25maWd1cmF0aW9uCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorLy8gVHlwZSB0aGF0IGNh
biBob2xkIHRoZSBsZW5ndGggb2YgYSBydW4gb2YgcGFnZXMKK3R5cGVkZWYgdWludHB0cl90IExl
bmd0aDsKKwogLy8gTm90IGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgdGhlIGZvbGxvd2lu
ZyBwYXJhbWV0ZXJzIG1ha2UKIC8vIHNlbnNlLiAgSW4gcGFydGljdWxhciwgaWYga01heFNpemUg
aW5jcmVhc2VzLCB5b3UgbWF5IGhhdmUgdG8KIC8vIGluY3JlYXNlIGtOdW1DbGFzc2VzIGFzIHdl
bGwuCi0jaWYgT1MoREFSV0lOKQotIyAgICBkZWZpbmUgS19QQUdFX1NISUZUIFBBR0VfU0hJRlQK
LSMgICAgaWYgKEtfUEFHRV9TSElGVCA9PSAxMikKLSMgICAgICAgIGRlZmluZSBLX05VTV9DTEFT
U0VTIDY4Ci0jICAgIGVsaWYgKEtfUEFHRV9TSElGVCA9PSAxNCkKLSMgICAgICAgIGRlZmluZSBL
X05VTV9DTEFTU0VTIDc3Ci0jICAgIGVsc2UKLSMgICAgICAgIGVycm9yICJVbnN1cHBvcnRlZCBQ
QUdFX1NISUZUIGFtb3VudCIKLSMgICAgZW5kaWYKLSNlbHNlCi0jICAgIGRlZmluZSBLX1BBR0Vf
U0hJRlQgMTIKLSMgICAgZGVmaW5lIEtfTlVNX0NMQVNTRVMgNjgKLSNlbmRpZgotc3RhdGljIGNv
bnN0IHNpemVfdCBrUGFnZVNoaWZ0ICA9IEtfUEFHRV9TSElGVDsKLXN0YXRpYyBjb25zdCBzaXpl
X3Qga1BhZ2VTaXplICAgPSAxIDw8IGtQYWdlU2hpZnQ7CisjZGVmaW5lIEtfUEFHRV9TSElGVF9N
QVggMTQKKyNkZWZpbmUgS19OVU1fQ0xBU1NFU19NQVggNzcKK3N0YXRpYyBzaXplX3Qga1BhZ2VT
aGlmdCAgPSAwOworc3RhdGljIHNpemVfdCBrTnVtQ2xhc3NlcyA9IDA7CitzdGF0aWMgc2l6ZV90
IGtQYWdlU2l6ZSAgID0gMDsKK3N0YXRpYyBMZW5ndGgga01heFZhbGlkUGFnZXMgPSAwOwogc3Rh
dGljIGNvbnN0IHNpemVfdCBrTWF4U2l6ZSAgICA9IDMydSAqIDEwMjQ7CiBzdGF0aWMgY29uc3Qg
c2l6ZV90IGtBbGlnblNoaWZ0ID0gMzsKIHN0YXRpYyBjb25zdCBzaXplX3Qga0FsaWdubWVudCAg
PSAxIDw8IGtBbGlnblNoaWZ0Owotc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ2xhc3NlcyA9IEtf
TlVNX0NMQVNTRVM7CiAKIC8vIEFsbG9jYXRlcyBhIGJpZyBibG9jayBvZiBtZW1vcnkgZm9yIHRo
ZSBwYWdlbWFwIG9uY2Ugd2UgcmVhY2ggbW9yZSB0aGFuCiAvLyAxMjhNQgpAQCAtNjYyLDE0ICs2
NTUsMTQgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBrUGFnZU1hcEJpZ0FsbG9jYXRpbwogLy8gc2hv
dWxkIGtlZXAgdGhpcyB2YWx1ZSBiaWcgYmVjYXVzZSB2YXJpb3VzIGluY2FybmF0aW9ucyBvZiBM
aW51eAogLy8gaGF2ZSBzbWFsbCBsaW1pdHMgb24gdGhlIG51bWJlciBvZiBtbWFwKCkgcmVnaW9u
cyBwZXIKIC8vIGFkZHJlc3Mtc3BhY2UuCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtNaW5TeXN0ZW1B
bGxvYyA9IDEgPDwgKDIwIC0ga1BhZ2VTaGlmdCk7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtNaW5T
eXN0ZW1BbGxvYyA9IDEgPDwgKDIwIC0gS19QQUdFX1NISUZUX01BWCk7CiAKIC8vIE51bWJlciBv
ZiBvYmplY3RzIHRvIG1vdmUgYmV0d2VlbiBhIHBlci10aHJlYWQgbGlzdCBhbmQgYSBjZW50cmFs
CiAvLyBsaXN0IGluIG9uZSBzaG90LiAgV2Ugd2FudCB0aGlzIHRvIGJlIG5vdCB0b28gc21hbGwg
c28gd2UgY2FuCiAvLyBhbW9ydGl6ZSB0aGUgbG9jayBvdmVyaGVhZCBmb3IgYWNjZXNzaW5nIHRo
ZSBjZW50cmFsIGxpc3QuICBNYWtpbmcKIC8vIGl0IHRvbyBiaWcgbWF5IHRlbXBvcmFyaWx5IGNh
dXNlIHVubmVjZXNzYXJ5IG1lbW9yeSB3YXN0YWdlIGluIHRoZQogLy8gcGVyLXRocmVhZCBmcmVl
IGxpc3QgdW50aWwgdGhlIHNjYXZlbmdlciBjbGVhbnMgdXAgdGhlIGxpc3QuCi1zdGF0aWMgaW50
IG51bV9vYmplY3RzX3RvX21vdmVba051bUNsYXNzZXNdOworc3RhdGljIGludCBudW1fb2JqZWN0
c190b19tb3ZlW0tfTlVNX0NMQVNTRVNfTUFYXTsKIAogLy8gTWF4aW11bSBsZW5ndGggd2UgYWxs
b3cgYSBwZXItdGhyZWFkIGZyZWUtbGlzdCB0byBoYXZlIGJlZm9yZSB3ZQogLy8gbW92ZSBvYmpl
Y3RzIGZyb20gaXQgaW50byB0aGUgY29ycmVzcG9uZGluZyBjZW50cmFsIGZyZWUtbGlzdC4gIFdl
CkBAIC03NjUsMTAgKzc1OCwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBDbGFzc0luZGV4KHNpemVf
dCBzKSB7CiB9CiAKIC8vIE1hcHBpbmcgZnJvbSBzaXplIGNsYXNzIHRvIG1heCBzaXplIHN0b3Jh
YmxlIGluIHRoYXQgY2xhc3MKLXN0YXRpYyBzaXplX3QgY2xhc3NfdG9fc2l6ZVtrTnVtQ2xhc3Nl
c107CitzdGF0aWMgc2l6ZV90IGNsYXNzX3RvX3NpemVbS19OVU1fQ0xBU1NFU19NQVhdOwogCiAv
LyBNYXBwaW5nIGZyb20gc2l6ZSBjbGFzcyB0byBudW1iZXIgb2YgcGFnZXMgdG8gYWxsb2NhdGUg
YXQgYSB0aW1lCi1zdGF0aWMgc2l6ZV90IGNsYXNzX3RvX3BhZ2VzW2tOdW1DbGFzc2VzXTsKK3N0
YXRpYyBzaXplX3QgY2xhc3NfdG9fcGFnZXNbS19OVU1fQ0xBU1NFU19NQVhdOwogCiAvLyBIYXJk
ZW5lZCBzaW5nbHkgbGlua2VkIGxpc3QuICBXZSBtYWtlIHRoaXMgYSBjbGFzcyB0byBhbGxvdyBj
b21waWxlciB0bwogLy8gc3RhdGljYWxseSBwcmV2ZW50IG1pc21hdGNoaW5nIGhhcmRlbmVkIGFu
ZCBub24taGFyZGVuZWQgbGlzdApAQCAtODEzLDcgKzgwNiw4IEBAIHN0cnVjdCBUQ0VudHJ5IHsK
IC8vIG51bWJlciBvZiBUQ0VudHJpZXMgYWNyb3NzIHNpemUgY2xhc3NlcyBpcyBmaXhlZC4gIEN1
cnJlbnRseSBlYWNoIHNpemUKIC8vIGNsYXNzIGlzIGluaXRpYWxseSBnaXZlbiBvbmUgVENFbnRy
eSB3aGljaCBhbHNvIG1lYW5zIHRoYXQgdGhlIG1heGltdW0gYW55CiAvLyBvbmUgY2xhc3MgY2Fu
IGhhdmUgaXMga051bUNsYXNzZXMuCi1zdGF0aWMgY29uc3QgaW50IGtOdW1UcmFuc2ZlckVudHJp
ZXMgPSBrTnVtQ2xhc3NlczsKKyNkZWZpbmUgS19OVU1fVFJBTlNGRVJfRU5UUklFU19NQVggc3Rh
dGljX2Nhc3Q8aW50PihLX05VTV9DTEFTU0VTX01BWCkKKyNkZWZpbmUga051bVRyYW5zZmVyRW50
cmllcyBzdGF0aWNfY2FzdDxpbnQ+KGtOdW1DbGFzc2VzKTsKIAogLy8gTm90ZTogdGhlIGZvbGxv
d2luZyBvbmx5IHdvcmtzIGZvciAibiJzIHRoYXQgZml0IGluIDMyLWJpdHMsIGJ1dAogLy8gdGhh
dCBpcyBmaW5lIHNpbmNlIHdlIG9ubHkgdXNlIGl0IGZvciBzbWFsbCBzaXplcy4KQEAgLTkxNyw2
ICs5MTEsMjUgQEAgc3RhdGljIGludCBOdW1Nb3ZlU2l6ZShzaXplX3Qgc2l6ZSkgewogCiAvLyBJ
bml0aWFsaXplIHRoZSBtYXBwaW5nIGFycmF5cwogc3RhdGljIHZvaWQgSW5pdFNpemVDbGFzc2Vz
KCkgeworI2lmIE9TKERBUldJTikKKyAga1BhZ2VTaGlmdCA9IHZtX3BhZ2Vfc2hpZnQ7CisgIHN3
aXRjaCAoa1BhZ2VTaGlmdCkgeworICBjYXNlIDEyOgorICAgIGtOdW1DbGFzc2VzID0gNjg7Cisg
ICAgYnJlYWs7CisgIGNhc2UgMTQ6CisgICAga051bUNsYXNzZXMgPSA3NzsKKyAgICBicmVhazsK
KyAgZGVmYXVsdDoKKyAgICBDUkFTSCgpOworICB9OworI2Vsc2UKKyAga1BhZ2VTaGlmdCA9IDEy
OworICBrTnVtQ2xhc3NlcyA9IDY4OworI2VuZGlmCisgIGtQYWdlU2l6ZSA9IDEgPDwga1BhZ2VT
aGlmdDsKKyAga01heFZhbGlkUGFnZXMgPSAofnN0YXRpY19jYXN0PExlbmd0aD4oMCkpID4+IGtQ
YWdlU2hpZnQ7CisKICAgLy8gRG8gc29tZSBzYW5pdHkgY2hlY2tpbmcgb24gYWRkX2Ftb3VudFtd
L3NoaWZ0X2Ftb3VudFtdL2NsYXNzX2FycmF5W10KICAgaWYgKENsYXNzSW5kZXgoMCkgPCAwKSB7
CiAgICAgTUVTU0FHRSgiSW52YWxpZCBjbGFzcyBpbmRleCAlZCBmb3Igc2l6ZSAwXG4iLCBDbGFz
c0luZGV4KDApKTsKQEAgLTExNDQsMTQgKzExNTcsMTAgQEAgY2xhc3MgUGFnZUhlYXBBbGxvY2F0
b3IgewogLy8gVHlwZSB0aGF0IGNhbiBob2xkIGEgcGFnZSBudW1iZXIKIHR5cGVkZWYgdWludHB0
cl90IFBhZ2VJRDsKIAotLy8gVHlwZSB0aGF0IGNhbiBob2xkIHRoZSBsZW5ndGggb2YgYSBydW4g
b2YgcGFnZXMKLXR5cGVkZWYgdWludHB0cl90IExlbmd0aDsKLQotc3RhdGljIGNvbnN0IExlbmd0
aCBrTWF4VmFsaWRQYWdlcyA9ICh+c3RhdGljX2Nhc3Q8TGVuZ3RoPigwKSkgPj4ga1BhZ2VTaGlm
dDsKLQogLy8gQ29udmVydCBieXRlIHNpemUgaW50byBwYWdlcy4gIFRoaXMgd29uJ3Qgb3ZlcmZs
b3csIGJ1dCBtYXkgcmV0dXJuCiAvLyBhbiB1bnJlYXNvbmFibHkgbGFyZ2UgdmFsdWUgaWYgYnl0
ZXMgaXMgaHVnZSBlbm91Z2guCiBzdGF0aWMgaW5saW5lIExlbmd0aCBwYWdlcyhzaXplX3QgYnl0
ZXMpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsK
ICAgcmV0dXJuIChieXRlcyA+PiBrUGFnZVNoaWZ0KSArCiAgICAgICAoKGJ5dGVzICYgKGtQYWdl
U2l6ZSAtIDEpKSA+IDAgPyAxIDogMCk7CiB9CkBAIC0xMTU5LDYgKzExNjgsNyBAQCBzdGF0aWMg
aW5saW5lIExlbmd0aCBwYWdlcyhzaXplX3QgYnl0ZXMpCiAvLyBDb252ZXJ0IGEgdXNlciBzaXpl
IGludG8gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwgYWN0dWFsbHkgYmUKIC8vIGFsbG9j
YXRlZAogc3RhdGljIHNpemVfdCBBbGxvY2F0aW9uU2l6ZShzaXplX3QgYnl0ZXMpIHsKKyAgQVNT
RVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgaWYgKGJ5dGVz
ID4ga01heFNpemUpIHsKICAgICAvLyBMYXJnZSBvYmplY3Q6IHdlIGFsbG9jYXRlIGFuIGludGVn
cmFsIG51bWJlciBvZiBwYWdlcwogICAgIEFTU0VSVChieXRlcyA8PSAoa01heFZhbGlkUGFnZXMg
PDwga1BhZ2VTaGlmdCkpOwpAQCAtMTQzMSw3ICsxNDQxLDcgQEAgY2xhc3MgVENNYWxsb2NfQ2Vu
dHJhbF9GcmVlTGlzdCB7CiAgIC8vIEhlcmUgd2UgcmVzZXJ2ZSBzcGFjZSBmb3IgVENFbnRyeSBj
YWNoZSBzbG90cy4gIFNpbmNlIG9uZSBzaXplIGNsYXNzIGNhbgogICAvLyBlbmQgdXAgZ2V0dGlu
ZyBhbGwgdGhlIFRDRW50cmllcyBxdW90YSBpbiB0aGUgc3lzdGVtIHdlIGp1c3QgcHJlYWxsb2Nh
dGUKICAgLy8gc3VmZmljaWVudCBudW1iZXIgb2YgZW50cmllcyBoZXJlLgotICBUQ0VudHJ5IHRj
X3Nsb3RzX1trTnVtVHJhbnNmZXJFbnRyaWVzXTsKKyAgVENFbnRyeSB0Y19zbG90c19bS19OVU1f
VFJBTlNGRVJfRU5UUklFU19NQVhdOwogCiAgIC8vIE51bWJlciBvZiBjdXJyZW50bHkgdXNlZCBj
YWNoZWQgZW50cmllcyBpbiB0Y19zbG90c18uICBUaGlzIHZhcmlhYmxlIGlzCiAgIC8vIHVwZGF0
ZWQgdW5kZXIgYSBsb2NrIGJ1dCBjYW4gYmUgcmVhZCB3aXRob3V0IG9uZS4KQEAgLTE2NTMsNyAr
MTY2Myw3IEBAIHN0YXRpYyBTcGFuIHNhbXBsZWRfb2JqZWN0czsKIC8vIFNlbGVjdG9yIGNsYXNz
IC0tIGdlbmVyYWwgc2VsZWN0b3IgdXNlcyAzLWxldmVsIG1hcAogdGVtcGxhdGUgPGludCBCSVRT
PiBjbGFzcyBNYXBTZWxlY3RvciB7CiAgcHVibGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VN
YXAzPEJJVFMta1BhZ2VTaGlmdD4gVHlwZTsKKyAgdHlwZWRlZiBUQ01hbGxvY19QYWdlTWFwMzxC
SVRTLUtfUEFHRV9TSElGVF9NQVg+IFR5cGU7CiAgIHR5cGVkZWYgUGFja2VkQ2FjaGU8QklUUywg
dWludDY0X3Q+IENhY2hlVHlwZTsKIH07CiAKQEAgLTE2NzEsNyArMTY4MSw3IEBAIHN0YXRpYyBj
b25zdCBzaXplX3Qga0JpdHNVbnVzZWRPbjY0Qml0ID0KIC8vIEEgdGhyZWUtbGV2ZWwgbWFwIGZv
ciA2NC1iaXQgbWFjaGluZXMKIHRlbXBsYXRlIDw+IGNsYXNzIE1hcFNlbGVjdG9yPDY0PiB7CiAg
cHVibGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAzPDY0IC0ga1BhZ2VTaGlmdCAtIGtC
aXRzVW51c2VkT242NEJpdD4gVHlwZTsKKyAgdHlwZWRlZiBUQ01hbGxvY19QYWdlTWFwMzw2NCAt
IEtfUEFHRV9TSElGVF9NQVggLSBrQml0c1VudXNlZE9uNjRCaXQ+IFR5cGU7CiAgIHR5cGVkZWYg
UGFja2VkQ2FjaGU8NjQsIHVpbnQ2NF90PiBDYWNoZVR5cGU7CiB9OwogI2VuZGlmCkBAIC0xNjc5
LDggKzE2ODksOCBAQCB0ZW1wbGF0ZSA8PiBjbGFzcyBNYXBTZWxlY3Rvcjw2ND4gewogLy8gQSB0
d28tbGV2ZWwgbWFwIGZvciAzMi1iaXQgbWFjaGluZXMKIHRlbXBsYXRlIDw+IGNsYXNzIE1hcFNl
bGVjdG9yPDMyPiB7CiAgcHVibGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAyPDMyIC0g
a1BhZ2VTaGlmdD4gVHlwZTsKLSAgdHlwZWRlZiBQYWNrZWRDYWNoZTwzMiAtIGtQYWdlU2hpZnQs
IHVpbnQxNl90PiBDYWNoZVR5cGU7CisgIHR5cGVkZWYgVENNYWxsb2NfUGFnZU1hcDI8MzIgLSBL
X1BBR0VfU0hJRlRfTUFYPiBUeXBlOworICB0eXBlZGVmIFBhY2tlZENhY2hlPDMyIC0gS19QQUdF
X1NISUZUX01BWCwgdWludDE2X3Q+IENhY2hlVHlwZTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KQEAgLTE3NzcsNiArMTc4Nyw3IEBAIGNsYXNzIFRDTWFsbG9jX1BhZ2VIZWFwIHsKIAogICAv
LyBSZXR1cm4gbnVtYmVyIG9mIGZyZWUgYnl0ZXMgaW4gaGVhcAogICB1aW50NjRfdCBGcmVlQnl0
ZXMoKSBjb25zdCB7CisgICAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKICAgICByZXR1cm4gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihmcmVlX3BhZ2VzXykg
PDwga1BhZ2VTaGlmdCk7CiAgIH0KIApAQCAtMTkxMiw2ICsxOTIzLDggQEAgY2xhc3MgVENNYWxs
b2NfUGFnZUhlYXAgewogCiB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjppbml0KCkKIHsKKyAgQVNT
RVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKKwogICBwYWdlbWFw
Xy5pbml0KE1ldGFEYXRhQWxsb2MpOwogICBwYWdlbWFwX2NhY2hlXyA9IFBhZ2VNYXBDYWNoZSgw
KTsKICAgZnJlZV9wYWdlc18gPSAwOwpAQCAtMTkyNiw3ICsxOTM5LDcgQEAgdm9pZCBUQ01hbGxv
Y19QYWdlSGVhcDo6aW5pdCgpCiAgIHNjYXZlbmdlX2NvdW50ZXJfID0gMDsKICAgLy8gU3RhcnQg
c2NhdmVuZ2luZyBhdCBrTWF4UGFnZXMgbGlzdAogICBzY2F2ZW5nZV9pbmRleF8gPSBrTWF4UGFn
ZXMtMTsKLSAgQ09NUElMRV9BU1NFUlQoa051bUNsYXNzZXMgPD0gKDEgPDwgUGFnZU1hcENhY2hl
OjprVmFsdWViaXRzKSwgdmFsdWViaXRzKTsKKyAgQVNTRVJUKGtOdW1DbGFzc2VzIDw9ICgxIDw8
IFBhZ2VNYXBDYWNoZTo6a1ZhbHVlYml0cykpOwogICBETExfSW5pdCgmbGFyZ2VfLm5vcm1hbCwg
ZW50cm9weV8pOwogICBETExfSW5pdCgmbGFyZ2VfLnJldHVybmVkLCBlbnRyb3B5Xyk7CiAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwga01heFBhZ2VzOyBpKyspIHsKQEAgLTIwNjcsNiArMjA4MCw3
IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6c2kKIAogdm9pZCBUQ01h
bGxvY19QYWdlSGVhcDo6c2NhdmVuZ2UoKQogeworICAgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtO
dW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgc2l6ZV90IHBhZ2VzVG9SZWxlYXNlID0gbWlu
X2ZyZWVfY29tbWl0dGVkX3BhZ2VzX3NpbmNlX2xhc3Rfc2NhdmVuZ2VfICoga1NjYXZlbmdlUGVy
Y2VudGFnZTsKICAgICBzaXplX3QgdGFyZ2V0UGFnZUNvdW50ID0gc3RkOjptYXg8c2l6ZV90Pihr
TWluaW11bUZyZWVDb21taXR0ZWRQYWdlQ291bnQsIGZyZWVfY29tbWl0dGVkX3BhZ2VzXyAtIHBh
Z2VzVG9SZWxlYXNlKTsKIApAQCAtMjIyOCw2ICsyMjQyLDcgQEAgU3BhbiogVENNYWxsb2NfUGFn
ZUhlYXA6OlNwbGl0KFNwYW4qIHNwYQogfQogCiBpbmxpbmUgdm9pZCBUQ01hbGxvY19QYWdlSGVh
cDo6Q2FydmUoU3Bhbiogc3BhbiwgTGVuZ3RoIG4sIGJvb2wgcmVsZWFzZWQpIHsKKyAgQVNTRVJU
KGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgQVNTRVJUKG4gPiAw
KTsKICAgRExMX1JlbW92ZShzcGFuLCBlbnRyb3B5Xyk7CiAgIHNwYW4tPmZyZWUgPSAwOwpAQCAt
MjI2NCw2ICsyMjc5LDcgQEAgaW5saW5lIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OkNhcnZlKFNw
YQogCiBzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIG1lcmdlRGVjb21taXR0ZWRTdGF0ZXMoU3Bh
biogZGVzdGluYXRpb24sIFNwYW4qIG90aGVyKQogeworICAgIEFTU0VSVChrUGFnZVNoaWZ0ICYm
IGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgaWYgKGRlc3RpbmF0aW9uLT5kZWNvbW1p
dHRlZCAmJiAhb3RoZXItPmRlY29tbWl0dGVkKSB7CiAgICAgICAgIFRDTWFsbG9jX1N5c3RlbVJl
bGVhc2UocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ob3RoZXItPnN0YXJ0IDw8IGtQYWdlU2hpZnQp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4ob3Ro
ZXItPmxlbmd0aCA8PCBrUGFnZVNoaWZ0KSk7CkBAIC0yMzY3LDYgKzIzODMsNyBAQCBpbmxpbmUg
dm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6RGVsZXRlKFNwCiAKICNpZiAhVVNFX0JBQ0tHUk9VTkRf
VEhSRUFEX1RPX1NDQVZFTkdFX01FTU9SWQogdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6SW5jcmVt
ZW50YWxTY2F2ZW5nZShMZW5ndGggbikgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xh
c3NlcyAmJiBrUGFnZVNpemUpOwogICAvLyBGYXN0IHBhdGg7IG5vdCB5ZXQgdGltZSB0byByZWxl
YXNlIG1lbW9yeQogICBzY2F2ZW5nZV9jb3VudGVyXyAtPSBuOwogICBpZiAoc2NhdmVuZ2VfY291
bnRlcl8gPj0gMCkgcmV0dXJuOyAgLy8gTm90IHlldCB0aW1lIHRvIHNjYXZlbmdlCkBAIC0yNDI4
LDYgKzI0NDUsNyBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpSZWdpc3RlclNpemVDbGFzCiAg
ICAgCiAjaWZkZWYgV1RGX0NIQU5HRVMKIHNpemVfdCBUQ01hbGxvY19QYWdlSGVhcDo6UmV0dXJu
ZWRCeXRlcygpIGNvbnN0IHsKKyAgICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAm
JiBrUGFnZVNpemUpOwogICAgIHNpemVfdCByZXN1bHQgPSAwOwogICAgIGZvciAodW5zaWduZWQg
cyA9IDA7IHMgPCBrTWF4UGFnZXM7IHMrKykgewogICAgICAgICBjb25zdCBpbnQgcl9sZW5ndGgg
PSBETExfTGVuZ3RoKCZmcmVlX1tzXS5yZXR1cm5lZCwgZW50cm9weV8pOwpAQCAtMjQ0Myw2ICsy
NDYxLDcgQEAgc2l6ZV90IFRDTWFsbG9jX1BhZ2VIZWFwOjpSZXR1cm5lZEJ5dGVzKAogCiAjaWZu
ZGVmIFdURl9DSEFOR0VTCiBzdGF0aWMgZG91YmxlIFBhZ2VzVG9NQih1aW50NjRfdCBwYWdlcykg
eworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBy
ZXR1cm4gKHBhZ2VzIDw8IGtQYWdlU2hpZnQpIC8gMTA0ODU3Ni4wOwogfQogCkBAIC0yNTA5LDYg
KzI1MjgsNyBAQCB2b2lkIFRDTWFsbG9jX1BhZ2VIZWFwOjpEdW1wKFRDTWFsbG9jX1ByCiAjZW5k
aWYKIAogYm9vbCBUQ01hbGxvY19QYWdlSGVhcDo6R3Jvd0hlYXAoTGVuZ3RoIG4pIHsKKyAgQVNT
RVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgQVNTRVJUKGtN
YXhQYWdlcyA+PSBrTWluU3lzdGVtQWxsb2MpOwogICBpZiAobiA+IGtNYXhWYWxpZFBhZ2VzKSBy
ZXR1cm4gZmFsc2U7CiAgIExlbmd0aCBhc2sgPSAobj5rTWluU3lzdGVtQWxsb2MpID8gbiA6IHN0
YXRpY19jYXN0PExlbmd0aD4oa01pblN5c3RlbUFsbG9jKTsKQEAgLTI2MDUsNiArMjYyNSw3IEBA
IHNpemVfdCBUQ01hbGxvY19QYWdlSGVhcDo6Q2hlY2tMaXN0KFNwYW4KICNlbmRpZgogCiB2b2lk
IFRDTWFsbG9jX1BhZ2VIZWFwOjpSZWxlYXNlRnJlZUxpc3QoU3BhbiogbGlzdCwgU3BhbiogcmV0
dXJuZWQpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXpl
KTsKICAgLy8gV2FsayBiYWNrd2FyZHMgdGhyb3VnaCBsaXN0IHNvIHRoYXQgd2hlbiB3ZSBwdXNo
IHRoZXNlCiAgIC8vIHNwYW5zIG9uIHRoZSAicmV0dXJuZWQiIGxpc3QsIHdlIHByZXNlcnZlIHRo
ZSBvcmRlci4KICNpZiBVU0VfQkFDS0dST1VORF9USFJFQURfVE9fU0NBVkVOR0VfTUVNT1JZCkBA
IC0yNzM4LDcgKzI3NTksNyBAQCBjbGFzcyBUQ01hbGxvY19UaHJlYWRDYWNoZSB7CiAgIHNpemVf
dCAgICAgICAgc2l6ZV87ICAgICAgICAgICAgICAgICAgLy8gQ29tYmluZWQgc2l6ZSBvZiBkYXRh
CiAgIFRocmVhZElkZW50aWZpZXIgdGlkXzsgICAgICAgICAgICAgICAgLy8gV2hpY2ggdGhyZWFk
IG93bnMgaXQKICAgYm9vbCAgICAgICAgICBpbl9zZXRzcGVjaWZpY187ICAgICAgICAgICAvLyBD
YWxsZWQgcHRocmVhZF9zZXRzcGVjaWZpYz8KLSAgRnJlZUxpc3QgICAgICBsaXN0X1trTnVtQ2xh
c3Nlc107ICAgICAvLyBBcnJheSBpbmRleGVkIGJ5IHNpemUtY2xhc3MKKyAgRnJlZUxpc3QgICAg
ICBsaXN0X1tLX05VTV9DTEFTU0VTX01BWF07ICAgICAvLyBBcnJheSBpbmRleGVkIGJ5IHNpemUt
Y2xhc3MKIAogICAvLyBXZSBzYW1wbGUgYWxsb2NhdGlvbnMsIGJpYXNlZCBieSB0aGUgc2l6ZSBv
ZiB0aGUgYWxsb2NhdGlvbgogICB1aW50MzJfdCAgICAgIHJuZF87ICAgICAgICAgICAgICAgICAg
IC8vIENoZWFwIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCkBAIC0yNzk0LDYgKzI4MTUsNyBAQCBj
bGFzcyBUQ01hbGxvY19UaHJlYWRDYWNoZSB7CiAgIHRlbXBsYXRlIDxjbGFzcyBGaW5kZXIsIGNs
YXNzIFJlYWRlcj4KICAgdm9pZCBlbnVtZXJhdGVGcmVlT2JqZWN0cyhGaW5kZXImIGZpbmRlciwg
Y29uc3QgUmVhZGVyJiByZWFkZXIpCiAgIHsKKyAgICAgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtO
dW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgICBmb3IgKHVuc2lnbmVkIHNpemVDbGFzcyA9
IDA7IHNpemVDbGFzcyA8IGtOdW1DbGFzc2VzOyBzaXplQ2xhc3MrKykKICAgICAgICAgICBsaXN0
X1tzaXplQ2xhc3NdLmVudW1lcmF0ZUZyZWVPYmplY3RzKGZpbmRlciwgcmVhZGVyKTsKICAgfQpA
QCAtMjgwNiw3ICsyODI4LDcgQEAgY2xhc3MgVENNYWxsb2NfVGhyZWFkQ2FjaGUgewogCiAvLyBD
ZW50cmFsIGNhY2hlIC0tIGEgY29sbGVjdGlvbiBvZiBmcmVlLWxpc3RzLCBvbmUgcGVyIHNpemUt
Y2xhc3MuCiAvLyBXZSBoYXZlIGEgc2VwYXJhdGUgbG9jayBwZXIgZnJlZS1saXN0IHRvIHJlZHVj
ZSBjb250ZW50aW9uLgotc3RhdGljIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQgY2Vu
dHJhbF9jYWNoZVtrTnVtQ2xhc3Nlc107CitzdGF0aWMgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlz
dFBhZGRlZCBjZW50cmFsX2NhY2hlW0tfTlVNX0NMQVNTRVNfTUFYXTsKIAogLy8gUGFnZS1sZXZl
bCBhbGxvY2F0b3IKIHN0YXRpYyBBbGxvY0FsaWdubWVudEludGVnZXIgcGFnZWhlYXBfbWVtb3J5
WyhzaXplb2YoVENNYWxsb2NfUGFnZUhlYXApICsgc2l6ZW9mKEFsbG9jQWxpZ25tZW50SW50ZWdl
cikgLSAxKSAvIHNpemVvZihBbGxvY0FsaWdubWVudEludGVnZXIpXTsKQEAgLTI5NjIsNiArMjk4
NCw3IEBAIHN0YXRpYyB2b2xhdGlsZSBzaXplX3QgcGVyX3RocmVhZF9jYWNoZV8KIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkluaXQoc2l6ZV90IGNsLCB1
aW50cHRyX3QgZW50cm9weSkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAm
JiBrUGFnZVNpemUpOwogICBsb2NrXy5Jbml0KCk7CiAgIHNpemVfY2xhc3NfID0gY2w7CiAgIGVu
dHJvcHlfID0gZW50cm9weTsKQEAgLTI5ODYsNiArMzAwOSw3IEBAIHZvaWQgVENNYWxsb2NfQ2Vu
dHJhbF9GcmVlTGlzdDo6UmVsZWFzZUwKIH0KIAogQUxXQVlTX0lOTElORSB2b2lkIFRDTWFsbG9j
X0NlbnRyYWxfRnJlZUxpc3Q6OlJlbGVhc2VUb1NwYW5zKEhhcmRlbmVkU0xMIG9iamVjdCkgewor
ICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBjb25z
dCBQYWdlSUQgcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QudmFsdWUoKSkg
Pj4ga1BhZ2VTaGlmdDsKICAgU3Bhbiogc3BhbiA9IHBhZ2VoZWFwLT5HZXREZXNjcmlwdG9yKHAp
OwogICBBU1NFUlQoc3BhbiAhPSBOVUxMKTsKQEAgLTMwMzIsNiArMzA1Niw3IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBUQ01hbGxvY19DZW50cmFsX0ZyZWUKIAogQUxXQVlTX0lOTElORSBib29sIFRD
TWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkV2aWN0UmFuZG9tU2l6ZUNsYXNzKAogICAgIHNpemVf
dCBsb2NrZWRfc2l6ZV9jbGFzcywgYm9vbCBmb3JjZSkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAm
JiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBzdGF0aWMgaW50IHJhY2VfY291bnRlciA9
IDA7CiAgIGludCB0ID0gcmFjZV9jb3VudGVyKys7ICAvLyBVcGRhdGVkIHdpdGhvdXQgYSBsb2Nr
LCBidXQgd2hvIGNhcmVzLgogICBpZiAodCA+PSBzdGF0aWNfY2FzdDxpbnQ+KGtOdW1DbGFzc2Vz
KSkgewpAQCAtMzA0Nyw2ICszMDcyLDcgQEAgQUxXQVlTX0lOTElORSBib29sIFRDTWFsbG9jX0Nl
bnRyYWxfRnJlZQogfQogCiBib29sIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6Ok1ha2VDYWNo
ZVNwYWNlKCkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNp
emUpOwogICAvLyBJcyB0aGVyZSByb29tIGluIHRoZSBjYWNoZT8KICAgaWYgKHVzZWRfc2xvdHNf
IDwgY2FjaGVfc2l6ZV8pIHJldHVybiB0cnVlOwogICAvLyBDaGVjayBpZiB3ZSBjYW4gZXhwYW5k
IHRoaXMgY2FjaGU/CkBAIC0zMTAxLDYgKzMxMjcsNyBAQCBib29sIFRDTWFsbG9jX0NlbnRyYWxf
RnJlZUxpc3Q6OlNocmlua0NhCiB9CiAKIHZvaWQgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6
SW5zZXJ0UmFuZ2UoSGFyZGVuZWRTTEwgc3RhcnQsIEhhcmRlbmVkU0xMIGVuZCwgaW50IE4pIHsK
KyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgU3Bp
bkxvY2tIb2xkZXIgaCgmbG9ja18pOwogICBpZiAoTiA9PSBudW1fb2JqZWN0c190b19tb3ZlW3Np
emVfY2xhc3NfXSAmJgogICAgIE1ha2VDYWNoZVNwYWNlKCkpIHsKQEAgLTMxODMsNiArMzIxMCw3
IEBAIEhhcmRlbmVkU0xMIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkYKIAogLy8gRmV0Y2gg
bWVtb3J5IGZyb20gdGhlIHN5c3RlbSBhbmQgYWRkIHRvIHRoZSBjZW50cmFsIGNhY2hlIGZyZWVs
aXN0LgogQUxXQVlTX0lOTElORSB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlBvcHVs
YXRlKCkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUp
OwogICAvLyBSZWxlYXNlIGNlbnRyYWwgbGlzdCBsb2NrIHdoaWxlIG9wZXJhdGluZyBvbiBwYWdl
aGVhcAogICBsb2NrXy5VbmxvY2soKTsKICAgY29uc3Qgc2l6ZV90IG5wYWdlcyA9IGNsYXNzX3Rv
X3BhZ2VzW3NpemVfY2xhc3NfXTsKQEAgLTMyNjksNiArMzI5Nyw3IEBAIGlubGluZSBib29sIFRD
TWFsbG9jX1RocmVhZENhY2hlOjpTYW1wbGUKIH0KIAogdm9pZCBUQ01hbGxvY19UaHJlYWRDYWNo
ZTo6SW5pdChUaHJlYWRJZGVudGlmaWVyIHRpZCwgdWludHB0cl90IGVudHJvcHkpIHsKKyAgQVNT
RVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgc2l6ZV8gPSAw
OwogICBuZXh0XyA9IE5VTEw7CiAgIHByZXZfID0gTlVMTDsKQEAgLTMyOTEsNiArMzMyMCw3IEBA
IHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXQoVGhyZWFkSWQKIH0KIAogdm9pZCBUQ01h
bGxvY19UaHJlYWRDYWNoZTo6Q2xlYW51cCgpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051
bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gUHV0IHVudXNlZCBtZW1vcnkgYmFjayBpbnRv
IGNlbnRyYWwgY2FjaGUKICAgZm9yIChzaXplX3QgY2wgPSAwOyBjbCA8IGtOdW1DbGFzc2VzOyAr
K2NsKSB7CiAgICAgaWYgKGxpc3RfW2NsXS5sZW5ndGgoKSA+IDApIHsKQEAgLTMzNjUsNiArMzM5
NSw3IEBAIGlubGluZSB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpSZWxlYXMKIAogLy8gUmVs
ZWFzZSBpZGxlIG1lbW9yeSB0byB0aGUgY2VudHJhbCBjYWNoZQogaW5saW5lIHZvaWQgVENNYWxs
b2NfVGhyZWFkQ2FjaGU6OlNjYXZlbmdlKCkgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVt
Q2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAvLyBJZiB0aGUgbG93LXdhdGVyIG1hcmsgZm9yIHRo
ZSBmcmVlIGxpc3QgaXMgTCwgaXQgbWVhbnMgd2Ugd291bGQKICAgLy8gbm90IGhhdmUgaGFkIHRv
IGFsbG9jYXRlIGFueXRoaW5nIGZyb20gdGhlIGNlbnRyYWwgY2FjaGUgZXZlbiBpZgogICAvLyB3
ZSBoYWQgcmVkdWNlZCB0aGUgZnJlZSBsaXN0IHNpemUgYnkgTC4gIFdlIGFpbSB0byBnZXQgY2xv
c2VyIHRvCkBAIC0zNjU3LDYgKzM2ODgsNyBAQCB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpS
ZWNvbXB1dGVUaHJlCiB9CiAKIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OlByaW50KCkgY29u
c3QgeworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwog
ICBmb3IgKHNpemVfdCBjbCA9IDA7IGNsIDwga051bUNsYXNzZXM7ICsrY2wpIHsKICAgICBNRVNT
QUdFKCIgICAgICAlNSIgUFJJdVMgIiA6ICU0ZCBsZW47ICU0ZCBsb1xuIiwKICAgICAgICAgICAg
IEJ5dGVTaXplRm9yQ2xhc3MoY2wpLApAQCAtMzY3OCw2ICszNzEwLDcgQEAgc3RydWN0IFRDTWFs
bG9jU3RhdHMgewogI2lmbmRlZiBXVEZfQ0hBTkdFUwogLy8gR2V0IHN0YXRzIGludG8gInIiLiAg
QWxzbyBnZXQgcGVyLXNpemUtY2xhc3MgY291bnRzIGlmIGNsYXNzX2NvdW50ICE9IE5VTEwKIHN0
YXRpYyB2b2lkIEV4dHJhY3RTdGF0cyhUQ01hbGxvY1N0YXRzKiByLCB1aW50NjRfdCogY2xhc3Nf
Y291bnQpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXpl
KTsKICAgci0+Y2VudHJhbF9ieXRlcyA9IDA7CiAgIHItPnRyYW5zZmVyX2J5dGVzID0gMDsKICAg
Zm9yIChpbnQgY2wgPSAwOyBjbCA8IGtOdW1DbGFzc2VzOyArK2NsKSB7CkBAIC0zNzE1LDYgKzM3
NDgsNyBAQCBzdGF0aWMgdm9pZCBFeHRyYWN0U3RhdHMoVENNYWxsb2NTdGF0cyogCiAjaWZuZGVm
IFdURl9DSEFOR0VTCiAvLyBXUklURSBzdGF0cyB0byAib3V0Igogc3RhdGljIHZvaWQgRHVtcFN0
YXRzKFRDTWFsbG9jX1ByaW50ZXIqIG91dCwgaW50IGxldmVsKSB7CisgIEFTU0VSVChrUGFnZVNo
aWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgIFRDTWFsbG9jU3RhdHMgc3RhdHM7
CiAgIHVpbnQ2NF90IGNsYXNzX2NvdW50W2tOdW1DbGFzc2VzXTsKICAgRXh0cmFjdFN0YXRzKCZz
dGF0cywgKGxldmVsID49IDIgPyBjbGFzc19jb3VudCA6IE5VTEwpKTsKQEAgLTQwMDMsNiArNDAz
Nyw3IEBAIHN0YXRpYyBTcGFuKiBEb1NhbXBsZWRBbGxvY2F0aW9uKHNpemVfdCAKIAogI2lmICFB
U1NFUlRfRElTQUJMRUQKIHN0YXRpYyBpbmxpbmUgYm9vbCBDaGVja0NhY2hlZFNpemVDbGFzcyh2
b2lkICpwdHIpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VT
aXplKTsKICAgUGFnZUlEIHAgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSA+PiBr
UGFnZVNoaWZ0OwogICBzaXplX3QgY2FjaGVkX3ZhbHVlID0gcGFnZWhlYXAtPkdldFNpemVDbGFz
c0lmQ2FjaGVkKHApOwogICByZXR1cm4gY2FjaGVkX3ZhbHVlID09IDAgfHwKQEAgLTQwMTcsNiAr
NDA1Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCogQ2hlY2tlZE1hbGxvY1Jlc3VsdCgKIH0KIAog
c3RhdGljIGlubGluZSB2b2lkKiBTcGFuVG9NYWxsb2NSZXN1bHQoU3BhbiAqc3BhbikgeworICBB
U1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBBU1NFUlRf
U1BBTl9DT01NSVRURUQoc3Bhbik7CiAgIHBhZ2VoZWFwLT5DYWNoZVNpemVDbGFzcyhzcGFuLT5z
dGFydCwgMCk7CiAgIHZvaWQqIHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNwYW4t
PnN0YXJ0IDw8IGtQYWdlU2hpZnQpOwpAQCAtNDA3MCw2ICs0MTA2LDcgQEAgc3RhdGljIEFMV0FZ
U19JTkxJTkUgdm9pZCogZG9fbWFsbG9jKHNpegogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBk
b19mcmVlKHZvaWQqIHB0cikgewogICBpZiAocHRyID09IE5VTEwpIHJldHVybjsKICAgQVNTRVJU
KHBhZ2VoZWFwICE9IE5VTEwpOyAgLy8gU2hvdWxkIG5vdCBjYWxsIGZyZWUoKSBiZWZvcmUgbWFs
bG9jKCkKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsK
ICAgY29uc3QgUGFnZUlEIHAgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSA+PiBr
UGFnZVNoaWZ0OwogICBTcGFuKiBzcGFuID0gcGFnZWhlYXAtPkdldERlc2NyaXB0b3IocCk7CiAg
IFJFTEVBU0VfQVNTRVJUKHNwYW4tPmlzVmFsaWQoKSk7CkBAIC00MTIxLDYgKzQxNTgsNyBAQCBz
dGF0aWMgdm9pZCogZG9fbWVtYWxpZ24oc2l6ZV90IGFsaWduLCBzCiAgIEFTU0VSVCgoYWxpZ24g
JiAoYWxpZ24gLSAxKSkgPT0gMCk7CiAgIEFTU0VSVChhbGlnbiA+IDApOwogICBpZiAocGFnZWhl
YXAgPT0gTlVMTCkgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXRNb2R1bGUoKTsKKyAgQVNTRVJU
KGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKIAogICAvLyBBbGxvY2F0
ZSBhdCBsZWFzdCBvbmUgYnl0ZSB0byBhdm9pZCBib3VuZGFyeSBjb25kaXRpb25zIGJlbG93CiAg
IGlmIChzaXplID09IDApIHNpemUgPSAxOwpAQCAtNDQ0MSw2ICs0NDc5LDkgQEAgdm9pZCogcmVh
bGxvYyh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3XwogICAgIG5ld19zaXplICs9IEludGVybmFs
OjpWYWxpZGF0aW9uQnVmZmVyU2l6ZTsKICNlbmRpZgogCisgIEFTU0VSVChwYWdlaGVhcCAhPSBO
VUxMKTsgIC8vIFNob3VsZCBub3QgY2FsbCByZWFsbG9jKCkgYmVmb3JlIG1hbGxvYygpCisgIEFT
U0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CisKICAgLy8gR2V0
IHRoZSBzaXplIG9mIHRoZSBvbGQgZW50cnkKICAgY29uc3QgUGFnZUlEIHAgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4ob2xkX3B0cikgPj4ga1BhZ2VTaGlmdDsKICAgc2l6ZV90IGNsID0g
cGFnZWhlYXAtPkdldFNpemVDbGFzc0lmQ2FjaGVkKHApOwpAQCAtNDY1OSw2ICs0NzAwLDcgQEAg
dm9pZCByZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKQogCiBGYXN0TWFsbG9jU3RhdGlzdGlj
cyBmYXN0TWFsbG9jU3RhdGlzdGljcygpCiB7CisgICAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051
bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgICBGYXN0TWFsbG9jU3RhdGlzdGljcyBzdGF0aXN0
aWNzOwogCiAgICAgU3BpbkxvY2tIb2xkZXIgbG9ja0hvbGRlcigmcGFnZWhlYXBfbG9jayk7CkBA
IC00NjgwLDYgKzQ3MjIsOSBAQCBGYXN0TWFsbG9jU3RhdGlzdGljcyBmYXN0TWFsbG9jU3RhdGlz
dGljCiAKIHNpemVfdCBmYXN0TWFsbG9jU2l6ZShjb25zdCB2b2lkKiBwdHIpCiB7CisgIGlmIChw
YWdlaGVhcCA9PSBOVUxMKSBUQ01hbGxvY19UaHJlYWRDYWNoZTo6SW5pdE1vZHVsZSgpOworICBB
U1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOworCiAjaWYgRU5B
QkxFKFdURl9NQUxMT0NfVkFMSURBVElPTikKICAgICByZXR1cm4gSW50ZXJuYWw6OmZhc3RNYWxs
b2NWYWxpZGF0aW9uSGVhZGVyKGNvbnN0X2Nhc3Q8dm9pZCo+KHB0cikpLT5tX3NpemU7CiAjZWxz
ZQpAQCAtNDc5MSw2ICs0ODM2LDcgQEAgcHVibGljOgogCiAgICAgaW50IHZpc2l0KHZvaWQqIHB0
cikgY29uc3QKICAgICB7CisgICAgICAgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2Vz
ICYmIGtQYWdlU2l6ZSk7CiAgICAgICAgIGlmICghcHRyKQogICAgICAgICAgICAgcmV0dXJuIDE7
CiAKQEAgLTQ4MzgsNiArNDg4NCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVjb3JkUGVuZGlu
Z1JlZ2lvbnMoKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNz
ZXMgJiYga1BhZ2VTaXplKTsKKwogICAgICAgICBib29sIHJlY29yZFJlZ2lvbnNDb250YWluaW5n
UG9pbnRlcnMgPSBtX3R5cGVNYXNrICYgTUFMTE9DX1BUUl9SRUdJT05fUkFOR0VfVFlQRTsKICAg
ICAgICAgYm9vbCByZWNvcmRBbGxvY2F0aW9ucyA9IG1fdHlwZU1hc2sgJiBNQUxMT0NfUFRSX0lO
X1VTRV9SQU5HRV9UWVBFOwogCkBAIC00ODg2LDYgKzQ5MzQsNyBAQCBwdWJsaWM6CiAKICAgICBp
bnQgdmlzaXQodm9pZCogcHRyKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGtQYWdlU2hpZnQgJiYg
a051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgICAgICAgaWYgKCFwdHIpCiAgICAgICAgICAg
ICByZXR1cm4gMTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225259</attachid>
            <date>2014-02-26 08:45:49 -0800</date>
            <delta_ts>2014-02-26 11:30:28 -0800</delta_ts>
            <desc>Ooops, stray semi.</desc>
            <filename>129370.3.patch</filename>
            <type>text/plain</type>
            <size>21921</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjQzNTcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDE0LTAyLTI1ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBGYXN0TWFsbG9jIHNob3VsZCB1c2Ug
dm1fcGFnZV9zaGlmdCBpbnRlYWQgb2YgUEFHRV9TSElGVC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTM3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2UgdXNlZCBQQUdFX1NISUZU
IHRvIGluaXRpYWxpemUga1BhZ2VTaGlmdC4KKyAgICAgICAgU2luY2UgdGhpcyB3YXMgYSBjb25z
dGFudCwgaXQgY291bGQgYmUgdXNlZCB0byBjYWxjdWxhdGUgb3RoZXIKKyAgICAgICAgY29udGFu
dHMgdXNlZCBpbiB0aGUgY29kZS4gU29tZSBvZiB0aGVzZSB2YWx1ZXMgYXJlIHVzZWQgaW4gdGhl
CisgICAgICAgIGRlZmluaXRpb24gb2YgY2VydGFpbiBkYXRhIHN0cnVjdHVyZXMgKHNwZWNpZml5
aW5nIHRoZSBsZW5ndGggb2YKKyAgICAgICAgc29tZSBhcnJheSBtZW1iZXJzKS4KKworICAgICAg
ICBNYWtlIGtQYWdlU2hpZnQgJiBkZXBlbmRlbnQgcHJvcGVydGllcyB2YXJpYWJsZXMgc2V0dXAg
ZHVyaW5nCisgICAgICAgIGluaXRpYWxpemF0aW9uLiBBZGQgdXBwZXIgYm91bmQgdmFsdWVzIChL
X1BBR0VfU0hJRlRfTUFYLAorICAgICAgICBLX05VTV9DTEFTU0VTX01BWCkgZm9yIHVzZSBpbiBj
YXNlcyB3aGVyZSB3ZSBuZWVkIGEgY29uc3RhbnQuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxv
Yy5jcHA6CisgICAgICAgIChXVEY6OkluaXRTaXplQ2xhc3Nlcyk6CisgICAgICAgICAgICAtIGlu
aXRpYWxpemUga1BhZ2VTaGlmdCwga051bUNsYXNzZXMsIGtQYWdlU2l6ZSwga01heFZhbGlkUGFn
ZXMuCisgICAgICAgIChXVEY6OnBhZ2VzKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgor
ICAgICAgICAoV1RGOjpBbGxvY2F0aW9uU2l6ZSk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VS
VC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OkZyZWVCeXRlcyk6CisgICAgICAg
ICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6Omlu
aXQpOgorICAgICAgICAgICAgLSBDT01QSUxFX0FTU0VSVCAtPiBBU1NFUlQKKyAgICAgICAgKFdU
Rjo6VENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNT
RVJULgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6Q2FydmUpOgorICAgICAgICAg
ICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6Om1lcmdlRGVjb21taXR0ZWRTdGF0ZXMp
OgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX1Bh
Z2VIZWFwOjpJbmNyZW1lbnRhbFNjYXZlbmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJU
LgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6UmV0dXJuZWRCeXRlcyk6CisgICAg
ICAgICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6UGFnZXNUb01CKToKKyAgICAg
ICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01hbGxvY19QYWdlSGVhcDo6
R3Jvd0hlYXApOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRD
TWFsbG9jX1BhZ2VIZWFwOjpSZWxlYXNlRnJlZUxpc3QpOgorICAgICAgICAgICAgLSBrTnVtQ2xh
c3NlcyAtPiBLX05VTV9DTEFTU0VTX01BWAorICAgICAgICAoV1RGOjpUQ01hbGxvY19UaHJlYWRD
YWNoZTo6ZW51bWVyYXRlRnJlZU9iamVjdHMpOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQu
CisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OkluaXQpOgorICAgICAg
ICAgICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJl
ZUxpc3Q6OlJlbGVhc2VUb1NwYW5zKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAg
ICAgICAoV1RGOjpUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpFdmljdFJhbmRvbVNpemVDbGFz
cyk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VSVC4KKyAgICAgICAgKFdURjo6VENNYWxsb2Nf
Q2VudHJhbF9GcmVlTGlzdDo6TWFrZUNhY2hlU3BhY2UpOgorICAgICAgICAgICAgLSBhZGRlZCBB
U1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6Okluc2VydFJh
bmdlKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01hbGxv
Y19DZW50cmFsX0ZyZWVMaXN0OjpQb3B1bGF0ZSk6CisgICAgICAgICAgICAtIGFkZGVkIEFTU0VS
VC4KKyAgICAgICAgKFdURjo6VENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXQpOgorICAgICAgICAg
ICAgLSBhZGRlZCBBU1NFUlQuCisgICAgICAgIChXVEY6OlRDTWFsbG9jX1RocmVhZENhY2hlOjpD
bGVhbnVwKToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorICAgICAgICAoV1RGOjpUQ01h
bGxvY19UaHJlYWRDYWNoZTo6U2NhdmVuZ2UpOgorICAgICAgICAgICAgLSBhZGRlZCBBU1NFUlQu
CisgICAgICAgIChXVEY6OlRDTWFsbG9jX1RocmVhZENhY2hlOjpDcmVhdGVDYWNoZUlmTmVjZXNz
YXJ5KToKKyAgICAgICAgICAgIC0gYWRkZWQgQVNTRVJULgorCiAyMDE0LTAyLTE4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUExBVEZPUk0oTUFDKSBpcyB0cnVl
IHdoZW4gYnVpbGRpbmcgZm9yIGlPUwpJbmRleDogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHJldmlzaW9u
IDE2NDM1NykKKysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05MSw2ICs5MSw3IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiAjaWYg
T1MoREFSV0lOKQorI2luY2x1ZGUgPG1hY2gvbWFjaF9pbml0Lmg+CiAjaW5jbHVkZSA8bWFsbG9j
L21hbGxvYy5oPgogI2VuZGlmCiAKQEAgLTYyOSwyOCArNjMwLDIxIEBAIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIHVpbnQzMl90IGZyZWVkT2JqZWMKIC8vIENvbmZpZ3VyYXRpb24KIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCisvLyBUeXBlIHRoYXQgY2FuIGhvbGQgdGhlIGxlbmd0aCBvZiBhIHJ1biBvZiBwYWdlcwor
dHlwZWRlZiB1aW50cHRyX3QgTGVuZ3RoOworCiAvLyBOb3QgYWxsIHBvc3NpYmxlIGNvbWJpbmF0
aW9ucyBvZiB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgbWFrZQogLy8gc2Vuc2UuICBJbiBwYXJ0
aWN1bGFyLCBpZiBrTWF4U2l6ZSBpbmNyZWFzZXMsIHlvdSBtYXkgaGF2ZSB0bwogLy8gaW5jcmVh
c2Uga051bUNsYXNzZXMgYXMgd2VsbC4KLSNpZiBPUyhEQVJXSU4pCi0jICAgIGRlZmluZSBLX1BB
R0VfU0hJRlQgUEFHRV9TSElGVAotIyAgICBpZiAoS19QQUdFX1NISUZUID09IDEyKQotIyAgICAg
ICAgZGVmaW5lIEtfTlVNX0NMQVNTRVMgNjgKLSMgICAgZWxpZiAoS19QQUdFX1NISUZUID09IDE0
KQotIyAgICAgICAgZGVmaW5lIEtfTlVNX0NMQVNTRVMgNzcKLSMgICAgZWxzZQotIyAgICAgICAg
ZXJyb3IgIlVuc3VwcG9ydGVkIFBBR0VfU0hJRlQgYW1vdW50IgotIyAgICBlbmRpZgotI2Vsc2UK
LSMgICAgZGVmaW5lIEtfUEFHRV9TSElGVCAxMgotIyAgICBkZWZpbmUgS19OVU1fQ0xBU1NFUyA2
OAotI2VuZGlmCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGtQYWdlU2hpZnQgID0gS19QQUdFX1NISUZU
Owotc3RhdGljIGNvbnN0IHNpemVfdCBrUGFnZVNpemUgICA9IDEgPDwga1BhZ2VTaGlmdDsKKyNk
ZWZpbmUgS19QQUdFX1NISUZUX01BWCAxNAorI2RlZmluZSBLX05VTV9DTEFTU0VTX01BWCA3Nwor
c3RhdGljIHNpemVfdCBrUGFnZVNoaWZ0ICA9IDA7CitzdGF0aWMgc2l6ZV90IGtOdW1DbGFzc2Vz
ID0gMDsKK3N0YXRpYyBzaXplX3Qga1BhZ2VTaXplICAgPSAwOworc3RhdGljIExlbmd0aCBrTWF4
VmFsaWRQYWdlcyA9IDA7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IGtNYXhTaXplICAgID0gMzJ1ICog
MTAyNDsKIHN0YXRpYyBjb25zdCBzaXplX3Qga0FsaWduU2hpZnQgPSAzOwogc3RhdGljIGNvbnN0
IHNpemVfdCBrQWxpZ25tZW50ICA9IDEgPDwga0FsaWduU2hpZnQ7Ci1zdGF0aWMgY29uc3Qgc2l6
ZV90IGtOdW1DbGFzc2VzID0gS19OVU1fQ0xBU1NFUzsKIAogLy8gQWxsb2NhdGVzIGEgYmlnIGJs
b2NrIG9mIG1lbW9yeSBmb3IgdGhlIHBhZ2VtYXAgb25jZSB3ZSByZWFjaCBtb3JlIHRoYW4KIC8v
IDEyOE1CCkBAIC02NjIsMTQgKzY1NiwxNCBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IGtQYWdlTWFw
QmlnQWxsb2NhdGlvCiAvLyBzaG91bGQga2VlcCB0aGlzIHZhbHVlIGJpZyBiZWNhdXNlIHZhcmlv
dXMgaW5jYXJuYXRpb25zIG9mIExpbnV4CiAvLyBoYXZlIHNtYWxsIGxpbWl0cyBvbiB0aGUgbnVt
YmVyIG9mIG1tYXAoKSByZWdpb25zIHBlcgogLy8gYWRkcmVzcy1zcGFjZS4KLXN0YXRpYyBjb25z
dCBzaXplX3Qga01pblN5c3RlbUFsbG9jID0gMSA8PCAoMjAgLSBrUGFnZVNoaWZ0KTsKK3N0YXRp
YyBjb25zdCBzaXplX3Qga01pblN5c3RlbUFsbG9jID0gMSA8PCAoMjAgLSBLX1BBR0VfU0hJRlRf
TUFYKTsKIAogLy8gTnVtYmVyIG9mIG9iamVjdHMgdG8gbW92ZSBiZXR3ZWVuIGEgcGVyLXRocmVh
ZCBsaXN0IGFuZCBhIGNlbnRyYWwKIC8vIGxpc3QgaW4gb25lIHNob3QuICBXZSB3YW50IHRoaXMg
dG8gYmUgbm90IHRvbyBzbWFsbCBzbyB3ZSBjYW4KIC8vIGFtb3J0aXplIHRoZSBsb2NrIG92ZXJo
ZWFkIGZvciBhY2Nlc3NpbmcgdGhlIGNlbnRyYWwgbGlzdC4gIE1ha2luZwogLy8gaXQgdG9vIGJp
ZyBtYXkgdGVtcG9yYXJpbHkgY2F1c2UgdW5uZWNlc3NhcnkgbWVtb3J5IHdhc3RhZ2UgaW4gdGhl
CiAvLyBwZXItdGhyZWFkIGZyZWUgbGlzdCB1bnRpbCB0aGUgc2NhdmVuZ2VyIGNsZWFucyB1cCB0
aGUgbGlzdC4KLXN0YXRpYyBpbnQgbnVtX29iamVjdHNfdG9fbW92ZVtrTnVtQ2xhc3Nlc107Citz
dGF0aWMgaW50IG51bV9vYmplY3RzX3RvX21vdmVbS19OVU1fQ0xBU1NFU19NQVhdOwogCiAvLyBN
YXhpbXVtIGxlbmd0aCB3ZSBhbGxvdyBhIHBlci10aHJlYWQgZnJlZS1saXN0IHRvIGhhdmUgYmVm
b3JlIHdlCiAvLyBtb3ZlIG9iamVjdHMgZnJvbSBpdCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGNl
bnRyYWwgZnJlZS1saXN0LiAgV2UKQEAgLTc2NSwxMCArNzU5LDEwIEBAIHN0YXRpYyBpbmxpbmUg
aW50IENsYXNzSW5kZXgoc2l6ZV90IHMpIHsKIH0KIAogLy8gTWFwcGluZyBmcm9tIHNpemUgY2xh
c3MgdG8gbWF4IHNpemUgc3RvcmFibGUgaW4gdGhhdCBjbGFzcwotc3RhdGljIHNpemVfdCBjbGFz
c190b19zaXplW2tOdW1DbGFzc2VzXTsKK3N0YXRpYyBzaXplX3QgY2xhc3NfdG9fc2l6ZVtLX05V
TV9DTEFTU0VTX01BWF07CiAKIC8vIE1hcHBpbmcgZnJvbSBzaXplIGNsYXNzIHRvIG51bWJlciBv
ZiBwYWdlcyB0byBhbGxvY2F0ZSBhdCBhIHRpbWUKLXN0YXRpYyBzaXplX3QgY2xhc3NfdG9fcGFn
ZXNba051bUNsYXNzZXNdOworc3RhdGljIHNpemVfdCBjbGFzc190b19wYWdlc1tLX05VTV9DTEFT
U0VTX01BWF07CiAKIC8vIEhhcmRlbmVkIHNpbmdseSBsaW5rZWQgbGlzdC4gIFdlIG1ha2UgdGhp
cyBhIGNsYXNzIHRvIGFsbG93IGNvbXBpbGVyIHRvCiAvLyBzdGF0aWNhbGx5IHByZXZlbnQgbWlz
bWF0Y2hpbmcgaGFyZGVuZWQgYW5kIG5vbi1oYXJkZW5lZCBsaXN0CkBAIC04MTMsNyArODA3LDgg
QEAgc3RydWN0IFRDRW50cnkgewogLy8gbnVtYmVyIG9mIFRDRW50cmllcyBhY3Jvc3Mgc2l6ZSBj
bGFzc2VzIGlzIGZpeGVkLiAgQ3VycmVudGx5IGVhY2ggc2l6ZQogLy8gY2xhc3MgaXMgaW5pdGlh
bGx5IGdpdmVuIG9uZSBUQ0VudHJ5IHdoaWNoIGFsc28gbWVhbnMgdGhhdCB0aGUgbWF4aW11bSBh
bnkKIC8vIG9uZSBjbGFzcyBjYW4gaGF2ZSBpcyBrTnVtQ2xhc3Nlcy4KLXN0YXRpYyBjb25zdCBp
bnQga051bVRyYW5zZmVyRW50cmllcyA9IGtOdW1DbGFzc2VzOworI2RlZmluZSBLX05VTV9UUkFO
U0ZFUl9FTlRSSUVTX01BWCBzdGF0aWNfY2FzdDxpbnQ+KEtfTlVNX0NMQVNTRVNfTUFYKQorI2Rl
ZmluZSBrTnVtVHJhbnNmZXJFbnRyaWVzIHN0YXRpY19jYXN0PGludD4oa051bUNsYXNzZXMpCiAK
IC8vIE5vdGU6IHRoZSBmb2xsb3dpbmcgb25seSB3b3JrcyBmb3IgIm4icyB0aGF0IGZpdCBpbiAz
Mi1iaXRzLCBidXQKIC8vIHRoYXQgaXMgZmluZSBzaW5jZSB3ZSBvbmx5IHVzZSBpdCBmb3Igc21h
bGwgc2l6ZXMuCkBAIC05MTcsNiArOTEyLDI1IEBAIHN0YXRpYyBpbnQgTnVtTW92ZVNpemUoc2l6
ZV90IHNpemUpIHsKIAogLy8gSW5pdGlhbGl6ZSB0aGUgbWFwcGluZyBhcnJheXMKIHN0YXRpYyB2
b2lkIEluaXRTaXplQ2xhc3NlcygpIHsKKyNpZiBPUyhEQVJXSU4pCisgIGtQYWdlU2hpZnQgPSB2
bV9wYWdlX3NoaWZ0OworICBzd2l0Y2ggKGtQYWdlU2hpZnQpIHsKKyAgY2FzZSAxMjoKKyAgICBr
TnVtQ2xhc3NlcyA9IDY4OworICAgIGJyZWFrOworICBjYXNlIDE0OgorICAgIGtOdW1DbGFzc2Vz
ID0gNzc7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgQ1JBU0goKTsKKyAgfTsKKyNlbHNl
CisgIGtQYWdlU2hpZnQgPSAxMjsKKyAga051bUNsYXNzZXMgPSA2ODsKKyNlbmRpZgorICBrUGFn
ZVNpemUgPSAxIDw8IGtQYWdlU2hpZnQ7CisgIGtNYXhWYWxpZFBhZ2VzID0gKH5zdGF0aWNfY2Fz
dDxMZW5ndGg+KDApKSA+PiBrUGFnZVNoaWZ0OworCiAgIC8vIERvIHNvbWUgc2FuaXR5IGNoZWNr
aW5nIG9uIGFkZF9hbW91bnRbXS9zaGlmdF9hbW91bnRbXS9jbGFzc19hcnJheVtdCiAgIGlmIChD
bGFzc0luZGV4KDApIDwgMCkgewogICAgIE1FU1NBR0UoIkludmFsaWQgY2xhc3MgaW5kZXggJWQg
Zm9yIHNpemUgMFxuIiwgQ2xhc3NJbmRleCgwKSk7CkBAIC0xMTQ0LDE0ICsxMTU4LDEwIEBAIGNs
YXNzIFBhZ2VIZWFwQWxsb2NhdG9yIHsKIC8vIFR5cGUgdGhhdCBjYW4gaG9sZCBhIHBhZ2UgbnVt
YmVyCiB0eXBlZGVmIHVpbnRwdHJfdCBQYWdlSUQ7CiAKLS8vIFR5cGUgdGhhdCBjYW4gaG9sZCB0
aGUgbGVuZ3RoIG9mIGEgcnVuIG9mIHBhZ2VzCi10eXBlZGVmIHVpbnRwdHJfdCBMZW5ndGg7Ci0K
LXN0YXRpYyBjb25zdCBMZW5ndGgga01heFZhbGlkUGFnZXMgPSAofnN0YXRpY19jYXN0PExlbmd0
aD4oMCkpID4+IGtQYWdlU2hpZnQ7Ci0KIC8vIENvbnZlcnQgYnl0ZSBzaXplIGludG8gcGFnZXMu
ICBUaGlzIHdvbid0IG92ZXJmbG93LCBidXQgbWF5IHJldHVybgogLy8gYW4gdW5yZWFzb25hYmx5
IGxhcmdlIHZhbHVlIGlmIGJ5dGVzIGlzIGh1Z2UgZW5vdWdoLgogc3RhdGljIGlubGluZSBMZW5n
dGggcGFnZXMoc2l6ZV90IGJ5dGVzKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFz
c2VzICYmIGtQYWdlU2l6ZSk7CiAgIHJldHVybiAoYnl0ZXMgPj4ga1BhZ2VTaGlmdCkgKwogICAg
ICAgKChieXRlcyAmIChrUGFnZVNpemUgLSAxKSkgPiAwID8gMSA6IDApOwogfQpAQCAtMTE1OSw2
ICsxMTY5LDcgQEAgc3RhdGljIGlubGluZSBMZW5ndGggcGFnZXMoc2l6ZV90IGJ5dGVzKQogLy8g
Q29udmVydCBhIHVzZXIgc2l6ZSBpbnRvIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3aWxsIGFj
dHVhbGx5IGJlCiAvLyBhbGxvY2F0ZWQKIHN0YXRpYyBzaXplX3QgQWxsb2NhdGlvblNpemUoc2l6
ZV90IGJ5dGVzKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdl
U2l6ZSk7CiAgIGlmIChieXRlcyA+IGtNYXhTaXplKSB7CiAgICAgLy8gTGFyZ2Ugb2JqZWN0OiB3
ZSBhbGxvY2F0ZSBhbiBpbnRlZ3JhbCBudW1iZXIgb2YgcGFnZXMKICAgICBBU1NFUlQoYnl0ZXMg
PD0gKGtNYXhWYWxpZFBhZ2VzIDw8IGtQYWdlU2hpZnQpKTsKQEAgLTE0MzEsNyArMTQ0Miw3IEBA
IGNsYXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3QgewogICAvLyBIZXJlIHdlIHJlc2VydmUg
c3BhY2UgZm9yIFRDRW50cnkgY2FjaGUgc2xvdHMuICBTaW5jZSBvbmUgc2l6ZSBjbGFzcyBjYW4K
ICAgLy8gZW5kIHVwIGdldHRpbmcgYWxsIHRoZSBUQ0VudHJpZXMgcXVvdGEgaW4gdGhlIHN5c3Rl
bSB3ZSBqdXN0IHByZWFsbG9jYXRlCiAgIC8vIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGVudHJpZXMg
aGVyZS4KLSAgVENFbnRyeSB0Y19zbG90c19ba051bVRyYW5zZmVyRW50cmllc107CisgIFRDRW50
cnkgdGNfc2xvdHNfW0tfTlVNX1RSQU5TRkVSX0VOVFJJRVNfTUFYXTsKIAogICAvLyBOdW1iZXIg
b2YgY3VycmVudGx5IHVzZWQgY2FjaGVkIGVudHJpZXMgaW4gdGNfc2xvdHNfLiAgVGhpcyB2YXJp
YWJsZSBpcwogICAvLyB1cGRhdGVkIHVuZGVyIGEgbG9jayBidXQgY2FuIGJlIHJlYWQgd2l0aG91
dCBvbmUuCkBAIC0xNjUzLDcgKzE2NjQsNyBAQCBzdGF0aWMgU3BhbiBzYW1wbGVkX29iamVjdHM7
CiAvLyBTZWxlY3RvciBjbGFzcyAtLSBnZW5lcmFsIHNlbGVjdG9yIHVzZXMgMy1sZXZlbCBtYXAK
IHRlbXBsYXRlIDxpbnQgQklUUz4gY2xhc3MgTWFwU2VsZWN0b3IgewogIHB1YmxpYzoKLSAgdHlw
ZWRlZiBUQ01hbGxvY19QYWdlTWFwMzxCSVRTLWtQYWdlU2hpZnQ+IFR5cGU7CisgIHR5cGVkZWYg
VENNYWxsb2NfUGFnZU1hcDM8QklUUy1LX1BBR0VfU0hJRlRfTUFYPiBUeXBlOwogICB0eXBlZGVm
IFBhY2tlZENhY2hlPEJJVFMsIHVpbnQ2NF90PiBDYWNoZVR5cGU7CiB9OwogCkBAIC0xNjcxLDcg
KzE2ODIsNyBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IGtCaXRzVW51c2VkT242NEJpdCA9CiAvLyBB
IHRocmVlLWxldmVsIG1hcCBmb3IgNjQtYml0IG1hY2hpbmVzCiB0ZW1wbGF0ZSA8PiBjbGFzcyBN
YXBTZWxlY3Rvcjw2ND4gewogIHB1YmxpYzoKLSAgdHlwZWRlZiBUQ01hbGxvY19QYWdlTWFwMzw2
NCAtIGtQYWdlU2hpZnQgLSBrQml0c1VudXNlZE9uNjRCaXQ+IFR5cGU7CisgIHR5cGVkZWYgVENN
YWxsb2NfUGFnZU1hcDM8NjQgLSBLX1BBR0VfU0hJRlRfTUFYIC0ga0JpdHNVbnVzZWRPbjY0Qml0
PiBUeXBlOwogICB0eXBlZGVmIFBhY2tlZENhY2hlPDY0LCB1aW50NjRfdD4gQ2FjaGVUeXBlOwog
fTsKICNlbmRpZgpAQCAtMTY3OSw4ICsxNjkwLDggQEAgdGVtcGxhdGUgPD4gY2xhc3MgTWFwU2Vs
ZWN0b3I8NjQ+IHsKIC8vIEEgdHdvLWxldmVsIG1hcCBmb3IgMzItYml0IG1hY2hpbmVzCiB0ZW1w
bGF0ZSA8PiBjbGFzcyBNYXBTZWxlY3RvcjwzMj4gewogIHB1YmxpYzoKLSAgdHlwZWRlZiBUQ01h
bGxvY19QYWdlTWFwMjwzMiAtIGtQYWdlU2hpZnQ+IFR5cGU7Ci0gIHR5cGVkZWYgUGFja2VkQ2Fj
aGU8MzIgLSBrUGFnZVNoaWZ0LCB1aW50MTZfdD4gQ2FjaGVUeXBlOworICB0eXBlZGVmIFRDTWFs
bG9jX1BhZ2VNYXAyPDMyIC0gS19QQUdFX1NISUZUX01BWD4gVHlwZTsKKyAgdHlwZWRlZiBQYWNr
ZWRDYWNoZTwzMiAtIEtfUEFHRV9TSElGVF9NQVgsIHVpbnQxNl90PiBDYWNoZVR5cGU7CiB9Owog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNzc3LDYgKzE3ODgsNyBAQCBjbGFzcyBUQ01hbGxv
Y19QYWdlSGVhcCB7CiAKICAgLy8gUmV0dXJuIG51bWJlciBvZiBmcmVlIGJ5dGVzIGluIGhlYXAK
ICAgdWludDY0X3QgRnJlZUJ5dGVzKCkgY29uc3QgeworICAgIEFTU0VSVChrUGFnZVNoaWZ0ICYm
IGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDx1aW50
NjRfdD4oZnJlZV9wYWdlc18pIDw8IGtQYWdlU2hpZnQpOwogICB9CiAKQEAgLTE5MTIsNiArMTky
NCw4IEBAIGNsYXNzIFRDTWFsbG9jX1BhZ2VIZWFwIHsKIAogdm9pZCBUQ01hbGxvY19QYWdlSGVh
cDo6aW5pdCgpCiB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdl
U2l6ZSk7CisKICAgcGFnZW1hcF8uaW5pdChNZXRhRGF0YUFsbG9jKTsKICAgcGFnZW1hcF9jYWNo
ZV8gPSBQYWdlTWFwQ2FjaGUoMCk7CiAgIGZyZWVfcGFnZXNfID0gMDsKQEAgLTE5MjYsNyArMTk0
MCw3IEBAIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OmluaXQoKQogICBzY2F2ZW5nZV9jb3VudGVy
XyA9IDA7CiAgIC8vIFN0YXJ0IHNjYXZlbmdpbmcgYXQga01heFBhZ2VzIGxpc3QKICAgc2NhdmVu
Z2VfaW5kZXhfID0ga01heFBhZ2VzLTE7Ci0gIENPTVBJTEVfQVNTRVJUKGtOdW1DbGFzc2VzIDw9
ICgxIDw8IFBhZ2VNYXBDYWNoZTo6a1ZhbHVlYml0cyksIHZhbHVlYml0cyk7CisgIEFTU0VSVChr
TnVtQ2xhc3NlcyA8PSAoMSA8PCBQYWdlTWFwQ2FjaGU6OmtWYWx1ZWJpdHMpKTsKICAgRExMX0lu
aXQoJmxhcmdlXy5ub3JtYWwsIGVudHJvcHlfKTsKICAgRExMX0luaXQoJmxhcmdlXy5yZXR1cm5l
ZCwgZW50cm9weV8pOwogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtNYXhQYWdlczsgaSsrKSB7
CkBAIC0yMDY3LDYgKzIwODEsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgVENNYWxsb2NfUGFnZUhl
YXA6OnNpCiAKIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnNjYXZlbmdlKCkKIHsKKyAgICBBU1NF
UlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAgIHNpemVfdCBw
YWdlc1RvUmVsZWFzZSA9IG1pbl9mcmVlX2NvbW1pdHRlZF9wYWdlc19zaW5jZV9sYXN0X3NjYXZl
bmdlXyAqIGtTY2F2ZW5nZVBlcmNlbnRhZ2U7CiAgICAgc2l6ZV90IHRhcmdldFBhZ2VDb3VudCA9
IHN0ZDo6bWF4PHNpemVfdD4oa01pbmltdW1GcmVlQ29tbWl0dGVkUGFnZUNvdW50LCBmcmVlX2Nv
bW1pdHRlZF9wYWdlc18gLSBwYWdlc1RvUmVsZWFzZSk7CiAKQEAgLTIyMjgsNiArMjI0Myw3IEBA
IFNwYW4qIFRDTWFsbG9jX1BhZ2VIZWFwOjpTcGxpdChTcGFuKiBzcGEKIH0KIAogaW5saW5lIHZv
aWQgVENNYWxsb2NfUGFnZUhlYXA6OkNhcnZlKFNwYW4qIHNwYW4sIExlbmd0aCBuLCBib29sIHJl
bGVhc2VkKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6
ZSk7CiAgIEFTU0VSVChuID4gMCk7CiAgIERMTF9SZW1vdmUoc3BhbiwgZW50cm9weV8pOwogICBz
cGFuLT5mcmVlID0gMDsKQEAgLTIyNjQsNiArMjI4MCw3IEBAIGlubGluZSB2b2lkIFRDTWFsbG9j
X1BhZ2VIZWFwOjpDYXJ2ZShTcGEKIAogc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBtZXJnZURl
Y29tbWl0dGVkU3RhdGVzKFNwYW4qIGRlc3RpbmF0aW9uLCBTcGFuKiBvdGhlcikKIHsKKyAgICBB
U1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAgIGlmIChk
ZXN0aW5hdGlvbi0+ZGVjb21taXR0ZWQgJiYgIW90aGVyLT5kZWNvbW1pdHRlZCkgewogICAgICAg
ICBUQ01hbGxvY19TeXN0ZW1SZWxlYXNlKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG90aGVyLT5z
dGFydCA8PCBrUGFnZVNoaWZ0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxzaXplX3Q+KG90aGVyLT5sZW5ndGggPDwga1BhZ2VTaGlmdCkpOwpAQCAtMjM2Nyw2
ICsyMzg0LDcgQEAgaW5saW5lIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OkRlbGV0ZShTcAogCiAj
aWYgIVVTRV9CQUNLR1JPVU5EX1RIUkVBRF9UT19TQ0FWRU5HRV9NRU1PUlkKIHZvaWQgVENNYWxs
b2NfUGFnZUhlYXA6OkluY3JlbWVudGFsU2NhdmVuZ2UoTGVuZ3RoIG4pIHsKKyAgQVNTRVJUKGtQ
YWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gRmFzdCBwYXRoOyBu
b3QgeWV0IHRpbWUgdG8gcmVsZWFzZSBtZW1vcnkKICAgc2NhdmVuZ2VfY291bnRlcl8gLT0gbjsK
ICAgaWYgKHNjYXZlbmdlX2NvdW50ZXJfID49IDApIHJldHVybjsgIC8vIE5vdCB5ZXQgdGltZSB0
byBzY2F2ZW5nZQpAQCAtMjQyOCw2ICsyNDQ2LDcgQEAgdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6
UmVnaXN0ZXJTaXplQ2xhcwogICAgIAogI2lmZGVmIFdURl9DSEFOR0VTCiBzaXplX3QgVENNYWxs
b2NfUGFnZUhlYXA6OlJldHVybmVkQnl0ZXMoKSBjb25zdCB7CisgICAgQVNTRVJUKGtQYWdlU2hp
ZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgICBzaXplX3QgcmVzdWx0ID0gMDsK
ICAgICBmb3IgKHVuc2lnbmVkIHMgPSAwOyBzIDwga01heFBhZ2VzOyBzKyspIHsKICAgICAgICAg
Y29uc3QgaW50IHJfbGVuZ3RoID0gRExMX0xlbmd0aCgmZnJlZV9bc10ucmV0dXJuZWQsIGVudHJv
cHlfKTsKQEAgLTI0NDMsNiArMjQ2Miw3IEBAIHNpemVfdCBUQ01hbGxvY19QYWdlSGVhcDo6UmV0
dXJuZWRCeXRlcygKIAogI2lmbmRlZiBXVEZfQ0hBTkdFUwogc3RhdGljIGRvdWJsZSBQYWdlc1Rv
TUIodWludDY0X3QgcGFnZXMpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMg
JiYga1BhZ2VTaXplKTsKICAgcmV0dXJuIChwYWdlcyA8PCBrUGFnZVNoaWZ0KSAvIDEwNDg1NzYu
MDsKIH0KIApAQCAtMjUwOSw2ICsyNTI5LDcgQEAgdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6RHVt
cChUQ01hbGxvY19QcgogI2VuZGlmCiAKIGJvb2wgVENNYWxsb2NfUGFnZUhlYXA6Okdyb3dIZWFw
KExlbmd0aCBuKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdl
U2l6ZSk7CiAgIEFTU0VSVChrTWF4UGFnZXMgPj0ga01pblN5c3RlbUFsbG9jKTsKICAgaWYgKG4g
PiBrTWF4VmFsaWRQYWdlcykgcmV0dXJuIGZhbHNlOwogICBMZW5ndGggYXNrID0gKG4+a01pblN5
c3RlbUFsbG9jKSA/IG4gOiBzdGF0aWNfY2FzdDxMZW5ndGg+KGtNaW5TeXN0ZW1BbGxvYyk7CkBA
IC0yNjA1LDYgKzI2MjYsNyBAQCBzaXplX3QgVENNYWxsb2NfUGFnZUhlYXA6OkNoZWNrTGlzdChT
cGFuCiAjZW5kaWYKIAogdm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6UmVsZWFzZUZyZWVMaXN0KFNw
YW4qIGxpc3QsIFNwYW4qIHJldHVybmVkKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1D
bGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgIC8vIFdhbGsgYmFja3dhcmRzIHRocm91Z2ggbGlzdCBz
byB0aGF0IHdoZW4gd2UgcHVzaCB0aGVzZQogICAvLyBzcGFucyBvbiB0aGUgInJldHVybmVkIiBs
aXN0LCB3ZSBwcmVzZXJ2ZSB0aGUgb3JkZXIuCiAjaWYgVVNFX0JBQ0tHUk9VTkRfVEhSRUFEX1RP
X1NDQVZFTkdFX01FTU9SWQpAQCAtMjczOCw3ICsyNzYwLDcgQEAgY2xhc3MgVENNYWxsb2NfVGhy
ZWFkQ2FjaGUgewogICBzaXplX3QgICAgICAgIHNpemVfOyAgICAgICAgICAgICAgICAgIC8vIENv
bWJpbmVkIHNpemUgb2YgZGF0YQogICBUaHJlYWRJZGVudGlmaWVyIHRpZF87ICAgICAgICAgICAg
ICAgIC8vIFdoaWNoIHRocmVhZCBvd25zIGl0CiAgIGJvb2wgICAgICAgICAgaW5fc2V0c3BlY2lm
aWNfOyAgICAgICAgICAgLy8gQ2FsbGVkIHB0aHJlYWRfc2V0c3BlY2lmaWM/Ci0gIEZyZWVMaXN0
ICAgICAgbGlzdF9ba051bUNsYXNzZXNdOyAgICAgLy8gQXJyYXkgaW5kZXhlZCBieSBzaXplLWNs
YXNzCisgIEZyZWVMaXN0ICAgICAgbGlzdF9bS19OVU1fQ0xBU1NFU19NQVhdOyAgICAgLy8gQXJy
YXkgaW5kZXhlZCBieSBzaXplLWNsYXNzCiAKICAgLy8gV2Ugc2FtcGxlIGFsbG9jYXRpb25zLCBi
aWFzZWQgYnkgdGhlIHNpemUgb2YgdGhlIGFsbG9jYXRpb24KICAgdWludDMyX3QgICAgICBybmRf
OyAgICAgICAgICAgICAgICAgICAvLyBDaGVhcCByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgpAQCAt
Mjc5NCw2ICsyODE2LDcgQEAgY2xhc3MgVENNYWxsb2NfVGhyZWFkQ2FjaGUgewogICB0ZW1wbGF0
ZSA8Y2xhc3MgRmluZGVyLCBjbGFzcyBSZWFkZXI+CiAgIHZvaWQgZW51bWVyYXRlRnJlZU9iamVj
dHMoRmluZGVyJiBmaW5kZXIsIGNvbnN0IFJlYWRlciYgcmVhZGVyKQogICB7CisgICAgICBBU1NF
UlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAgICAgZm9yICh1
bnNpZ25lZCBzaXplQ2xhc3MgPSAwOyBzaXplQ2xhc3MgPCBrTnVtQ2xhc3Nlczsgc2l6ZUNsYXNz
KyspCiAgICAgICAgICAgbGlzdF9bc2l6ZUNsYXNzXS5lbnVtZXJhdGVGcmVlT2JqZWN0cyhmaW5k
ZXIsIHJlYWRlcik7CiAgIH0KQEAgLTI4MDYsNyArMjgyOSw3IEBAIGNsYXNzIFRDTWFsbG9jX1Ro
cmVhZENhY2hlIHsKIAogLy8gQ2VudHJhbCBjYWNoZSAtLSBhIGNvbGxlY3Rpb24gb2YgZnJlZS1s
aXN0cywgb25lIHBlciBzaXplLWNsYXNzLgogLy8gV2UgaGF2ZSBhIHNlcGFyYXRlIGxvY2sgcGVy
IGZyZWUtbGlzdCB0byByZWR1Y2UgY29udGVudGlvbi4KLXN0YXRpYyBUQ01hbGxvY19DZW50cmFs
X0ZyZWVMaXN0UGFkZGVkIGNlbnRyYWxfY2FjaGVba051bUNsYXNzZXNdOworc3RhdGljIFRDTWFs
bG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQgY2VudHJhbF9jYWNoZVtLX05VTV9DTEFTU0VTX01B
WF07CiAKIC8vIFBhZ2UtbGV2ZWwgYWxsb2NhdG9yCiBzdGF0aWMgQWxsb2NBbGlnbm1lbnRJbnRl
Z2VyIHBhZ2VoZWFwX21lbW9yeVsoc2l6ZW9mKFRDTWFsbG9jX1BhZ2VIZWFwKSArIHNpemVvZihB
bGxvY0FsaWdubWVudEludGVnZXIpIC0gMSkgLyBzaXplb2YoQWxsb2NBbGlnbm1lbnRJbnRlZ2Vy
KV07CkBAIC0yOTYyLDYgKzI5ODUsNyBAQCBzdGF0aWMgdm9sYXRpbGUgc2l6ZV90IHBlcl90aHJl
YWRfY2FjaGVfCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogdm9pZCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0
OjpJbml0KHNpemVfdCBjbCwgdWludHB0cl90IGVudHJvcHkpIHsKKyAgQVNTRVJUKGtQYWdlU2hp
ZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgbG9ja18uSW5pdCgpOwogICBzaXpl
X2NsYXNzXyA9IGNsOwogICBlbnRyb3B5XyA9IGVudHJvcHk7CkBAIC0yOTg2LDYgKzMwMTAsNyBA
QCB2b2lkIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OlJlbGVhc2VMCiB9CiAKIEFMV0FZU19J
TkxJTkUgdm9pZCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpSZWxlYXNlVG9TcGFucyhIYXJk
ZW5lZFNMTCBvYmplY3QpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYg
a1BhZ2VTaXplKTsKICAgY29uc3QgUGFnZUlEIHAgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4ob2JqZWN0LnZhbHVlKCkpID4+IGtQYWdlU2hpZnQ7CiAgIFNwYW4qIHNwYW4gPSBwYWdlaGVh
cC0+R2V0RGVzY3JpcHRvcihwKTsKICAgQVNTRVJUKHNwYW4gIT0gTlVMTCk7CkBAIC0zMDMyLDYg
KzMwNTcsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgVENNYWxsb2NfQ2VudHJhbF9GcmVlCiAKIEFM
V0FZU19JTkxJTkUgYm9vbCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpFdmljdFJhbmRvbVNp
emVDbGFzcygKICAgICBzaXplX3QgbG9ja2VkX3NpemVfY2xhc3MsIGJvb2wgZm9yY2UpIHsKKyAg
QVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgc3RhdGlj
IGludCByYWNlX2NvdW50ZXIgPSAwOwogICBpbnQgdCA9IHJhY2VfY291bnRlcisrOyAgLy8gVXBk
YXRlZCB3aXRob3V0IGEgbG9jaywgYnV0IHdobyBjYXJlcy4KICAgaWYgKHQgPj0gc3RhdGljX2Nh
c3Q8aW50PihrTnVtQ2xhc3NlcykpIHsKQEAgLTMwNDcsNiArMzA3Myw3IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBUQ01hbGxvY19DZW50cmFsX0ZyZWUKIH0KIAogYm9vbCBUQ01hbGxvY19DZW50cmFs
X0ZyZWVMaXN0OjpNYWtlQ2FjaGVTcGFjZSgpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051
bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gSXMgdGhlcmUgcm9vbSBpbiB0aGUgY2FjaGU/
CiAgIGlmICh1c2VkX3Nsb3RzXyA8IGNhY2hlX3NpemVfKSByZXR1cm4gdHJ1ZTsKICAgLy8gQ2hl
Y2sgaWYgd2UgY2FuIGV4cGFuZCB0aGlzIGNhY2hlPwpAQCAtMzEwMSw2ICszMTI4LDcgQEAgYm9v
bCBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0OjpTaHJpbmtDYQogfQogCiB2b2lkIFRDTWFsbG9j
X0NlbnRyYWxfRnJlZUxpc3Q6Okluc2VydFJhbmdlKEhhcmRlbmVkU0xMIHN0YXJ0LCBIYXJkZW5l
ZFNMTCBlbmQsIGludCBOKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYm
IGtQYWdlU2l6ZSk7CiAgIFNwaW5Mb2NrSG9sZGVyIGgoJmxvY2tfKTsKICAgaWYgKE4gPT0gbnVt
X29iamVjdHNfdG9fbW92ZVtzaXplX2NsYXNzX10gJiYKICAgICBNYWtlQ2FjaGVTcGFjZSgpKSB7
CkBAIC0zMTgzLDYgKzMyMTEsNyBAQCBIYXJkZW5lZFNMTCBUQ01hbGxvY19DZW50cmFsX0ZyZWVM
aXN0OjpGCiAKIC8vIEZldGNoIG1lbW9yeSBmcm9tIHRoZSBzeXN0ZW0gYW5kIGFkZCB0byB0aGUg
Y2VudHJhbCBjYWNoZSBmcmVlbGlzdC4KIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01hbGxvY19DZW50
cmFsX0ZyZWVMaXN0OjpQb3B1bGF0ZSgpIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNs
YXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gUmVsZWFzZSBjZW50cmFsIGxpc3QgbG9jayB3aGls
ZSBvcGVyYXRpbmcgb24gcGFnZWhlYXAKICAgbG9ja18uVW5sb2NrKCk7CiAgIGNvbnN0IHNpemVf
dCBucGFnZXMgPSBjbGFzc190b19wYWdlc1tzaXplX2NsYXNzX107CkBAIC0zMjY5LDYgKzMyOTgs
NyBAQCBpbmxpbmUgYm9vbCBUQ01hbGxvY19UaHJlYWRDYWNoZTo6U2FtcGxlCiB9CiAKIHZvaWQg
VENNYWxsb2NfVGhyZWFkQ2FjaGU6OkluaXQoVGhyZWFkSWRlbnRpZmllciB0aWQsIHVpbnRwdHJf
dCBlbnRyb3B5KSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdl
U2l6ZSk7CiAgIHNpemVfID0gMDsKICAgbmV4dF8gPSBOVUxMOwogICBwcmV2XyA9IE5VTEw7CkBA
IC0zMjkxLDYgKzMzMjEsNyBAQCB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpJbml0KFRocmVh
ZElkCiB9CiAKIHZvaWQgVENNYWxsb2NfVGhyZWFkQ2FjaGU6OkNsZWFudXAoKSB7CisgIEFTU0VS
VChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgIC8vIFB1dCB1bnVz
ZWQgbWVtb3J5IGJhY2sgaW50byBjZW50cmFsIGNhY2hlCiAgIGZvciAoc2l6ZV90IGNsID0gMDsg
Y2wgPCBrTnVtQ2xhc3NlczsgKytjbCkgewogICAgIGlmIChsaXN0X1tjbF0ubGVuZ3RoKCkgPiAw
KSB7CkBAIC0zMzY1LDYgKzMzOTYsNyBAQCBpbmxpbmUgdm9pZCBUQ01hbGxvY19UaHJlYWRDYWNo
ZTo6UmVsZWFzCiAKIC8vIFJlbGVhc2UgaWRsZSBtZW1vcnkgdG8gdGhlIGNlbnRyYWwgY2FjaGUK
IGlubGluZSB2b2lkIFRDTWFsbG9jX1RocmVhZENhY2hlOjpTY2F2ZW5nZSgpIHsKKyAgQVNTRVJU
KGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1BhZ2VTaXplKTsKICAgLy8gSWYgdGhlIGxv
dy13YXRlciBtYXJrIGZvciB0aGUgZnJlZSBsaXN0IGlzIEwsIGl0IG1lYW5zIHdlIHdvdWxkCiAg
IC8vIG5vdCBoYXZlIGhhZCB0byBhbGxvY2F0ZSBhbnl0aGluZyBmcm9tIHRoZSBjZW50cmFsIGNh
Y2hlIGV2ZW4gaWYKICAgLy8gd2UgaGFkIHJlZHVjZWQgdGhlIGZyZWUgbGlzdCBzaXplIGJ5IEwu
ICBXZSBhaW0gdG8gZ2V0IGNsb3NlciB0bwpAQCAtMzY1Nyw2ICszNjg5LDcgQEAgdm9pZCBUQ01h
bGxvY19UaHJlYWRDYWNoZTo6UmVjb21wdXRlVGhyZQogfQogCiB2b2lkIFRDTWFsbG9jX1RocmVh
ZENhY2hlOjpQcmludCgpIGNvbnN0IHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNz
ZXMgJiYga1BhZ2VTaXplKTsKICAgZm9yIChzaXplX3QgY2wgPSAwOyBjbCA8IGtOdW1DbGFzc2Vz
OyArK2NsKSB7CiAgICAgTUVTU0FHRSgiICAgICAgJTUiIFBSSXVTICIgOiAlNGQgbGVuOyAlNGQg
bG9cbiIsCiAgICAgICAgICAgICBCeXRlU2l6ZUZvckNsYXNzKGNsKSwKQEAgLTM2NzgsNiArMzcx
MSw3IEBAIHN0cnVjdCBUQ01hbGxvY1N0YXRzIHsKICNpZm5kZWYgV1RGX0NIQU5HRVMKIC8vIEdl
dCBzdGF0cyBpbnRvICJyIi4gIEFsc28gZ2V0IHBlci1zaXplLWNsYXNzIGNvdW50cyBpZiBjbGFz
c19jb3VudCAhPSBOVUxMCiBzdGF0aWMgdm9pZCBFeHRyYWN0U3RhdHMoVENNYWxsb2NTdGF0cyog
ciwgdWludDY0X3QqIGNsYXNzX2NvdW50KSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1D
bGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgIHItPmNlbnRyYWxfYnl0ZXMgPSAwOwogICByLT50cmFu
c2Zlcl9ieXRlcyA9IDA7CiAgIGZvciAoaW50IGNsID0gMDsgY2wgPCBrTnVtQ2xhc3NlczsgKytj
bCkgewpAQCAtMzcxNSw2ICszNzQ5LDcgQEAgc3RhdGljIHZvaWQgRXh0cmFjdFN0YXRzKFRDTWFs
bG9jU3RhdHMqIAogI2lmbmRlZiBXVEZfQ0hBTkdFUwogLy8gV1JJVEUgc3RhdHMgdG8gIm91dCIK
IHN0YXRpYyB2b2lkIER1bXBTdGF0cyhUQ01hbGxvY19QcmludGVyKiBvdXQsIGludCBsZXZlbCkg
eworICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICBU
Q01hbGxvY1N0YXRzIHN0YXRzOwogICB1aW50NjRfdCBjbGFzc19jb3VudFtrTnVtQ2xhc3Nlc107
CiAgIEV4dHJhY3RTdGF0cygmc3RhdHMsIChsZXZlbCA+PSAyID8gY2xhc3NfY291bnQgOiBOVUxM
KSk7CkBAIC00MDAzLDYgKzQwMzgsNyBAQCBzdGF0aWMgU3BhbiogRG9TYW1wbGVkQWxsb2NhdGlv
bihzaXplX3QgCiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiBzdGF0aWMgaW5saW5lIGJvb2wgQ2hl
Y2tDYWNoZWRTaXplQ2xhc3Modm9pZCAqcHRyKSB7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtO
dW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgIFBhZ2VJRCBwID0gcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHB0cikgPj4ga1BhZ2VTaGlmdDsKICAgc2l6ZV90IGNhY2hlZF92YWx1ZSA9IHBh
Z2VoZWFwLT5HZXRTaXplQ2xhc3NJZkNhY2hlZChwKTsKICAgcmV0dXJuIGNhY2hlZF92YWx1ZSA9
PSAwIHx8CkBAIC00MDE3LDYgKzQwNTMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQqIENoZWNrZWRN
YWxsb2NSZXN1bHQoCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCogU3BhblRvTWFsbG9jUmVzdWx0
KFNwYW4gKnNwYW4pIHsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKICAgQVNTRVJUX1NQQU5fQ09NTUlUVEVEKHNwYW4pOwogICBwYWdlaGVhcC0+Q2Fj
aGVTaXplQ2xhc3Moc3Bhbi0+c3RhcnQsIDApOwogICB2b2lkKiByZXN1bHQgPSByZWludGVycHJl
dF9jYXN0PHZvaWQqPihzcGFuLT5zdGFydCA8PCBrUGFnZVNoaWZ0KTsKQEAgLTQwNzAsNiArNDEw
Nyw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQqIGRvX21hbGxvYyhzaXoKIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIHZvaWQgZG9fZnJlZSh2b2lkKiBwdHIpIHsKICAgaWYgKHB0ciA9PSBOVUxM
KSByZXR1cm47CiAgIEFTU0VSVChwYWdlaGVhcCAhPSBOVUxMKTsgIC8vIFNob3VsZCBub3QgY2Fs
bCBmcmVlKCkgYmVmb3JlIG1hbGxvYygpCisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFz
c2VzICYmIGtQYWdlU2l6ZSk7CiAgIGNvbnN0IFBhZ2VJRCBwID0gcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHB0cikgPj4ga1BhZ2VTaGlmdDsKICAgU3Bhbiogc3BhbiA9IHBhZ2VoZWFwLT5H
ZXREZXNjcmlwdG9yKHApOwogICBSRUxFQVNFX0FTU0VSVChzcGFuLT5pc1ZhbGlkKCkpOwpAQCAt
NDEyMSw2ICs0MTU5LDcgQEAgc3RhdGljIHZvaWQqIGRvX21lbWFsaWduKHNpemVfdCBhbGlnbiwg
cwogICBBU1NFUlQoKGFsaWduICYgKGFsaWduIC0gMSkpID09IDApOwogICBBU1NFUlQoYWxpZ24g
PiAwKTsKICAgaWYgKHBhZ2VoZWFwID09IE5VTEwpIFRDTWFsbG9jX1RocmVhZENhY2hlOjpJbml0
TW9kdWxlKCk7CisgIEFTU0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6
ZSk7CiAKICAgLy8gQWxsb2NhdGUgYXQgbGVhc3Qgb25lIGJ5dGUgdG8gYXZvaWQgYm91bmRhcnkg
Y29uZGl0aW9ucyBiZWxvdwogICBpZiAoc2l6ZSA9PSAwKSBzaXplID0gMTsKQEAgLTQ0NDEsNiAr
NDQ4MCw5IEBAIHZvaWQqIHJlYWxsb2Modm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld18KICAgICBu
ZXdfc2l6ZSArPSBJbnRlcm5hbDo6VmFsaWRhdGlvbkJ1ZmZlclNpemU7CiAjZW5kaWYKIAorICBB
U1NFUlQocGFnZWhlYXAgIT0gTlVMTCk7ICAvLyBTaG91bGQgbm90IGNhbGwgcmVhbGxvYygpIGJl
Zm9yZSBtYWxsb2MoKQorICBBU1NFUlQoa1BhZ2VTaGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFn
ZVNpemUpOworCiAgIC8vIEdldCB0aGUgc2l6ZSBvZiB0aGUgb2xkIGVudHJ5CiAgIGNvbnN0IFBh
Z2VJRCBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9sZF9wdHIpID4+IGtQYWdlU2hp
ZnQ7CiAgIHNpemVfdCBjbCA9IHBhZ2VoZWFwLT5HZXRTaXplQ2xhc3NJZkNhY2hlZChwKTsKQEAg
LTQ2NTksNiArNDcwMSw3IEBAIHZvaWQgcmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCkKIAog
RmFzdE1hbGxvY1N0YXRpc3RpY3MgZmFzdE1hbGxvY1N0YXRpc3RpY3MoKQogeworICAgIEFTU0VS
VChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgRmFzdE1hbGxv
Y1N0YXRpc3RpY3Mgc3RhdGlzdGljczsKIAogICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tIb2xkZXIo
JnBhZ2VoZWFwX2xvY2spOwpAQCAtNDY4MCw2ICs0NzIzLDkgQEAgRmFzdE1hbGxvY1N0YXRpc3Rp
Y3MgZmFzdE1hbGxvY1N0YXRpc3RpYwogCiBzaXplX3QgZmFzdE1hbGxvY1NpemUoY29uc3Qgdm9p
ZCogcHRyKQogeworICBpZiAocGFnZWhlYXAgPT0gTlVMTCkgVENNYWxsb2NfVGhyZWFkQ2FjaGU6
OkluaXRNb2R1bGUoKTsKKyAgQVNTRVJUKGtQYWdlU2hpZnQgJiYga051bUNsYXNzZXMgJiYga1Bh
Z2VTaXplKTsKKwogI2lmIEVOQUJMRShXVEZfTUFMTE9DX1ZBTElEQVRJT04pCiAgICAgcmV0dXJu
IEludGVybmFsOjpmYXN0TWFsbG9jVmFsaWRhdGlvbkhlYWRlcihjb25zdF9jYXN0PHZvaWQqPihw
dHIpKS0+bV9zaXplOwogI2Vsc2UKQEAgLTQ3OTEsNiArNDgzNyw3IEBAIHB1YmxpYzoKIAogICAg
IGludCB2aXNpdCh2b2lkKiBwdHIpIGNvbnN0CiAgICAgeworICAgICAgICBBU1NFUlQoa1BhZ2VT
aGlmdCAmJiBrTnVtQ2xhc3NlcyAmJiBrUGFnZVNpemUpOwogICAgICAgICBpZiAoIXB0cikKICAg
ICAgICAgICAgIHJldHVybiAxOwogCkBAIC00ODM4LDYgKzQ4ODUsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHJlY29yZFBlbmRpbmdSZWdpb25zKCkKICAgICB7CisgICAgICAgIEFTU0VSVChrUGFn
ZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CisKICAgICAgICAgYm9vbCByZWNv
cmRSZWdpb25zQ29udGFpbmluZ1BvaW50ZXJzID0gbV90eXBlTWFzayAmIE1BTExPQ19QVFJfUkVH
SU9OX1JBTkdFX1RZUEU7CiAgICAgICAgIGJvb2wgcmVjb3JkQWxsb2NhdGlvbnMgPSBtX3R5cGVN
YXNrICYgTUFMTE9DX1BUUl9JTl9VU0VfUkFOR0VfVFlQRTsKIApAQCAtNDg4Niw2ICs0OTM1LDcg
QEAgcHVibGljOgogCiAgICAgaW50IHZpc2l0KHZvaWQqIHB0cikKICAgICB7CisgICAgICAgIEFT
U0VSVChrUGFnZVNoaWZ0ICYmIGtOdW1DbGFzc2VzICYmIGtQYWdlU2l6ZSk7CiAgICAgICAgIGlm
ICghcHRyKQogICAgICAgICAgICAgcmV0dXJuIDE7CiAK
</data>
<flag name="review"
          id="249384"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225283</attachid>
            <date>2014-02-26 12:48:51 -0800</date>
            <delta_ts>2014-02-26 12:51:56 -0800</delta_ts>
            <desc>Fix for Mark&apos;s comments.</desc>
            <filename>129370.4.patch</filename>
            <type>text/plain</type>
            <size>2697</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjQ3MzgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAyLTI2ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBGYXN0TWFsbG9jIHNob3VsZCB1c2Ug
dm1fcGFnZV9zaGlmdCBpbnRlYWQgb2YgUEFHRV9TSElGVC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTM3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJEb2Vzbid0IHRoaXMgbGVhZCB0byB0aGUgcGFn
ZSBtYXAgdXNpbmcgZmV3ZXIgYml0cyB0aGFuIGl0IHdhcyBiZWZvcmU/CisgICAgICAgIEl0IHNl
ZW1zIGxpa2UgdGhpcyB3aWxsIGNhdXNlIHNvbWUgcGFnZSBhZGRyZXNzZXMgdG8gbm8gbG9uZ2Vy
IGJlCisgICAgICAgIHJlcHJlc2VudGFibGUgaW4gdGhlIG1hcCB3aGVuIHVzaW5nIDRLIHBhZ2Vz
LiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nPyIKKworICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNw
cDoKKyAgICAgICAgICAgIC0gYmRhc2ggcmFpc2VzIGEgdmFsaWQgcG9pbnQuIFRoaXMgc2hvdWxk
IG1ha2UgdGhlIFRDTWFsbG9jX1BhZ2VNYXAKKyAgICAgICAgICAgICAgbGFyZ2VyIHRoYW4gYWJz
b2x1dGVseSBuZWNlc3NhcnksIHJhdGhlciB0aGF0IHBvdGVudGlhbGx5IHRvbyBzbWFsbC4KKwog
MjAxNC0wMi0yNSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgRmFzdE1hbGxvYyBzaG91bGQgdXNlIHZtX3BhZ2Vfc2hpZnQgaW50ZWFkIG9mIFBB
R0VfU0hJRlQuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAkocmV2aXNpb24gMTY0NzI4KQorKysg
U291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzNiw2ICs2
MzYsNyBAQCB0eXBlZGVmIHVpbnRwdHJfdCBMZW5ndGg7CiAvLyBOb3QgYWxsIHBvc3NpYmxlIGNv
bWJpbmF0aW9ucyBvZiB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgbWFrZQogLy8gc2Vuc2UuICBJ
biBwYXJ0aWN1bGFyLCBpZiBrTWF4U2l6ZSBpbmNyZWFzZXMsIHlvdSBtYXkgaGF2ZSB0bwogLy8g
aW5jcmVhc2Uga051bUNsYXNzZXMgYXMgd2VsbC4KKyNkZWZpbmUgS19QQUdFX1NISUZUX01JTiAx
MgogI2RlZmluZSBLX1BBR0VfU0hJRlRfTUFYIDE0CiAjZGVmaW5lIEtfTlVNX0NMQVNTRVNfTUFY
IDc3CiBzdGF0aWMgc2l6ZV90IGtQYWdlU2hpZnQgID0gMDsKQEAgLTE2NjQsNyArMTY2NSw3IEBA
IHN0YXRpYyBTcGFuIHNhbXBsZWRfb2JqZWN0czsKIC8vIFNlbGVjdG9yIGNsYXNzIC0tIGdlbmVy
YWwgc2VsZWN0b3IgdXNlcyAzLWxldmVsIG1hcAogdGVtcGxhdGUgPGludCBCSVRTPiBjbGFzcyBN
YXBTZWxlY3RvciB7CiAgcHVibGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAzPEJJVFMt
S19QQUdFX1NISUZUX01BWD4gVHlwZTsKKyAgdHlwZWRlZiBUQ01hbGxvY19QYWdlTWFwMzxCSVRT
LUtfUEFHRV9TSElGVF9NSU4+IFR5cGU7CiAgIHR5cGVkZWYgUGFja2VkQ2FjaGU8QklUUywgdWlu
dDY0X3Q+IENhY2hlVHlwZTsKIH07CiAKQEAgLTE2ODIsNyArMTY4Myw3IEBAIHN0YXRpYyBjb25z
dCBzaXplX3Qga0JpdHNVbnVzZWRPbjY0Qml0ID0KIC8vIEEgdGhyZWUtbGV2ZWwgbWFwIGZvciA2
NC1iaXQgbWFjaGluZXMKIHRlbXBsYXRlIDw+IGNsYXNzIE1hcFNlbGVjdG9yPDY0PiB7CiAgcHVi
bGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAzPDY0IC0gS19QQUdFX1NISUZUX01BWCAt
IGtCaXRzVW51c2VkT242NEJpdD4gVHlwZTsKKyAgdHlwZWRlZiBUQ01hbGxvY19QYWdlTWFwMzw2
NCAtIEtfUEFHRV9TSElGVF9NSU4gLSBrQml0c1VudXNlZE9uNjRCaXQ+IFR5cGU7CiAgIHR5cGVk
ZWYgUGFja2VkQ2FjaGU8NjQsIHVpbnQ2NF90PiBDYWNoZVR5cGU7CiB9OwogI2VuZGlmCkBAIC0x
NjkwLDggKzE2OTEsOCBAQCB0ZW1wbGF0ZSA8PiBjbGFzcyBNYXBTZWxlY3Rvcjw2ND4gewogLy8g
QSB0d28tbGV2ZWwgbWFwIGZvciAzMi1iaXQgbWFjaGluZXMKIHRlbXBsYXRlIDw+IGNsYXNzIE1h
cFNlbGVjdG9yPDMyPiB7CiAgcHVibGljOgotICB0eXBlZGVmIFRDTWFsbG9jX1BhZ2VNYXAyPDMy
IC0gS19QQUdFX1NISUZUX01BWD4gVHlwZTsKLSAgdHlwZWRlZiBQYWNrZWRDYWNoZTwzMiAtIEtf
UEFHRV9TSElGVF9NQVgsIHVpbnQxNl90PiBDYWNoZVR5cGU7CisgIHR5cGVkZWYgVENNYWxsb2Nf
UGFnZU1hcDI8MzIgLSBLX1BBR0VfU0hJRlRfTUlOPiBUeXBlOworICB0eXBlZGVmIFBhY2tlZENh
Y2hlPDMyIC0gS19QQUdFX1NISUZUX01JTiwgdWludDE2X3Q+IENhY2hlVHlwZTsKIH07CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0K
</data>
<flag name="review"
          id="249411"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>