<?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>106025</bug_id>
          
          <creation_ts>2013-01-03 11:29:01 -0800</creation_ts>
          <short_desc>[chromium] WebTransformationMatrix shouldn&apos;t alias memory for TransformationMatrix</short_desc>
          <delta_ts>2013-01-04 12:03:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>105719</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>danakj</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>peter+ews</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>799514</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-03 11:29:01 -0800</bug_when>
    <thetext>[chromium] WebTransformationMatrix should always be 16-byte aligned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799639</commentid>
    <comment_count>1</comment_count>
      <attachid>181213</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-03 13:48:08 -0800</bug_when>
    <thetext>Created attachment 181213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799642</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-03 13:51:33 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799653</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-03 13:57:56 -0800</bug_when>
    <thetext>@enne - context here: https://bugs.webkit.org/show_bug.cgi?id=105719#c15.

This adds matrix copies to many operations on WebTransformationMatrix, but the only code that uses it to actually do operations instead of just copying data around (WebTransformOperations) is being refactored not to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799670</commentid>
    <comment_count>4</comment_count>
      <attachid>181213</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2013-01-03 14:09:40 -0800</bug_when>
    <thetext>Comment on attachment 181213
Patch

R=me.  Thanks for investigating this crash.

Are there any other potential hidden behind #if WEBKIT_IMPLEMENTATION that should be converted to WebPrivateOwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799675</commentid>
    <comment_count>5</comment_count>
      <attachid>181213</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-03 14:17:11 -0800</bug_when>
    <thetext>Comment on attachment 181213
Patch

Attachment 181213 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15665213</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799680</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-01-03 14:24:19 -0800</bug_when>
    <thetext>This won&apos;t compile until https://codereview.chromium.org/11762003/ lands and is rolled into Source/WK/chromium/DEPS

I&apos;m not aware of any other instances quite like this class, although maybe I&apos;m just forgetting them at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799716</commentid>
    <comment_count>7</comment_count>
      <attachid>181213</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-03 15:04:56 -0800</bug_when>
    <thetext>Comment on attachment 181213
Patch

Attachment 181213 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15656565</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800481</commentid>
    <comment_count>8</comment_count>
      <attachid>181213</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 12:03:24 -0800</bug_when>
    <thetext>Comment on attachment 181213
Patch

Clearing flags on attachment: 181213

Committed r138825: &lt;http://trac.webkit.org/changeset/138825&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800482</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 12:03:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181213</attachid>
            <date>2013-01-03 13:48:08 -0800</date>
            <delta_ts>2013-01-04 12:03:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106025-20130103134514.patch</filename>
            <type>text/plain</type>
            <size>19963</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2YWNkYmQ1OTgxMTc0
YzgxODY3YzZmOWUxMjAyMWQ2YzlmYTAzNThjLi5iNzljMDQ1MmMyMzgyZWFjN2JhZWRjMWI3MTM3
YzJjYmVkNGM2ZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wMyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggc2hvdWxkbid0IGFsaWFzIG1lbW9yeSBmb3IgVHJh
bnNmb3JtYXRpb25NYXRyaXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNjAyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRy
aXg6On5XZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCk6CisgICAgICAgIChXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCk6CisKIDIwMTItMTItMjQgIEFsZXhlaSBGaWxpcHBvdiAgPGFscGhAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBhc3luYyBBUEkgZm9yIHBhc3Npbmcg
cmVuZGVyZXIgcHJvY2VzcyBtZW1vcnkgc3RhdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyOWEzMmUzOWE2ODdj
NmE1Nzc3ZGRmYjZlMjBkODdmMjMzMzY4MmI0Li41NmM5NmMxN2MxYTc0OWYxNDZiODJlYjQ3YTZj
ZjY4NTdjYjk1MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMTMtMDEtMDMgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHNob3VsZG4ndCBhbGlhcyBtZW1vcnkgZm9yIFRyYW5z
Zm9ybWF0aW9uTWF0cml4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDYwMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXguY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6V2ViVHJh
bnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJh
bnNmb3JtYXRpb25NYXRyaXg6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNm
b3JtYXRpb25NYXRyaXg6OmludmVyc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6dG8yZFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9y
bWF0aW9uTWF0cml4OjptdWx0aXBseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0
aW9uTWF0cml4OjptYWtlSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRp
b25NYXRyaXg6OnRyYW5zbGF0ZTNkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRp
b25NYXRyaXg6OnRyYW5zbGF0ZVJpZ2h0M2QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6c2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6c2NhbGVOb25Vbmlmb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXg6OnNjYWxlM2QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6cm90YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRy
aXg6OnJvdGF0ZTNkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6
OnNrZXdYKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNrZXdZ
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OmFwcGx5UGVyc3Bl
Y3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6YmxlbmQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aGFzUGVyc3BlY3Rp
dmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJbnZlcnRp
YmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OmlzQmFja0Zh
Y2VWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Omlz
SWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJ
ZGVudGl0eU9yVHJhbnNsYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6aXNJbnRlZ2VyVHJhbnNsYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6bTExKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRp
b25NYXRyaXg6OnNldE0xMSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0
cml4OjptMTIpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0
TTEyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om0xMyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMTMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTE0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0xNCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMjEpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6c2V0TTIxKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRp
b25NYXRyaXg6Om0yMik6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4
OjpzZXRNMjIpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTIz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0yMyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMjQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTI0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om0zMSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRy
YW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMzEpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6bTMyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25N
YXRyaXg6OnNldE0zMik6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4
OjptMzMpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTMz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om0zNCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMzQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTQxKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE00MSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRy
YW5zZm9ybWF0aW9uTWF0cml4OjptNDIpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6c2V0TTQyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25N
YXRyaXg6Om00Myk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4Ojpz
ZXRNNDMpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTQ0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE00NCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjphKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldEEpOgorICAgICAgICAoV2ViS2l0OjpXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6Yik6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0
aW9uTWF0cml4OjpzZXRCKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRy
aXg6OmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0Qyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldEQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpzZXRFKToKKyAgICAgICAgKFdlYktpdDo6V2ViVHJhbnNmb3JtYXRp
b25NYXRyaXg6OmYpOgorICAgICAgICAoV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
c2V0Rik6CisgICAgICAgIChXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4Ojp0b1dlYkNv
cmVUcmFuc2Zvcm0pOgorCiAyMDEzLTAxLTAyICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bXVs
dGlwbHkoKSBmb3IgeDg2XzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4LmgKaW5kZXggNDBjMzFmNzM1NjU2NWZm
ZmE1Y2MxM2NhZWVjZjU0NGE4ZjIzM2I2NC4uZGU4OGRlMDE3ODJkYTU3MTc3MDk5ZTA2OGNhYjZk
NmUyZTY4YTI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguaApAQCAtMzIsMTcgKzMyLDE2IEBACiAjZGVm
aW5lIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4X2gKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElP
TgotI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKLSNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKLSNp
bmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgot
I2Vsc2UKLSNpbmNsdWRlIDx1aS9nZngvdHJhbnNmb3JtLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYlByaXZhdGVPd25QdHIuaCIKIAorbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRyaXg7Cit9CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCB7CkBAIC01NCw3ICs1Myw5
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
dWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBtMzQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTQxLCBkb3VibGUgbTQyLCBk
b3VibGUgbTQzLCBkb3VibGUgbTQ0KTsKICAgICBXRUJLSVRfRVhQT1JUIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4KGNvbnN0IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7Ci0gICAgfldlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4KCkgeyB9CisgICAgfldlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCkgeyBy
ZXNldCgpOyB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKIAogICAgIC8vIE9w
ZXJhdGlvbnMgdGhhdCByZXR1cm4gYSBzZXBhcmF0ZSBtYXRyaXggYW5kIGRvIG5vdCBtb2RpZnkg
dGhpcyBvbmUuCiAgICAgV0VCS0lUX0VYUE9SVCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpbnZl
cnNlKCkgY29uc3Q7CkBAIC0xMzksNTYgKzE0MCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gQ29udmVy
c2lvbnMgYmV0d2VlbiBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGFuZCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeAogICAgIGV4cGxpY2l0IFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXggdG9XZWJDb3JlVHJhbnNmb3JtKCkgY29uc3Q7Ci0jZWxzZQot
ICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgaW1wbGljaXQgb25jZSBjb21wb3NpdG9yIGlzIG5vdCB1
c2luZyB0aGlzIGNsYXNzIGludGVybmFsbHkuCi0gICAgZXhwbGljaXQgV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXgoY29uc3QgZ2Z4OjpUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKLSAgICB7Ci0gICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKQotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7
IGogPCA0OyArK2opCi0gICAgICAgICAgICAgICAgbV9tYXRyaXhbaV1bal0gPSB0cmFuc2Zvcm0u
bWF0cml4KCkuZ2V0RG91YmxlKGosIGkpOwotICAgIH0KLQotICAgIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4JiBvcGVyYXRvcj0oY29uc3QgZ2Z4OjpUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKLSAgICB7
Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKQotICAgICAgICAgICAgZm9yIChp
bnQgaiA9IDA7IGogPCA0OyArK2opCi0gICAgICAgICAgICAgICAgbV9tYXRyaXhbaV1bal0gPSB0
cmFuc2Zvcm0ubWF0cml4KCkuZ2V0RG91YmxlKGosIGkpOwotICAgICAgICByZXR1cm4gKnRoaXM7
Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IE1ha2UgdGhpcyBhbiBvcGVyYXRvciBvbmNlIGNvbXBv
c2l0b3IgaXMgbm90IHVzaW5nIHRoaXMgY2xhc3MgaW50ZXJuYWxseS4KLSAgICBnZng6OlRyYW5z
Zm9ybSB0b1RyYW5zZm9ybSgpIGNvbnN0Ci0gICAgewotICAgICAgICBnZng6OlRyYW5zZm9ybSB0
cmFuc2Zvcm07Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKQotICAgICAgICAg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCA0OyArK2opCi0gICAgICAgICAgICAgICAgdHJhbnNmb3Jt
Lm1hdHJpeCgpLnNldERvdWJsZShpLCBqLCBtX21hdHJpeFtqXVtpXSk7Ci0gICAgICAgIHJldHVy
biB0cmFuc2Zvcm07Ci0gICAgfQogI2VuZGlmCiAKIHByb3RlY3RlZDoKIAotICAgIC8vIFdoaWxl
IG1pZ3JhdGluZyB0aGlzIGNvZGU6IENvZGUgdGhhdCBpcyBleHRlcm5hbCB0byBXZWJLaXQgc2hv
dWxkIGhhdmUgbm8ga25vd2xlZGdlCi0gICAgLy8gb2YgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXguIEJ1dCBpbiB0aG9zZSBjYXNlcywgdGhpcyBjbGFzcyBzdGlsbCBuZWVkcyB0bwotICAg
IC8vIGJlIHRoZSBzYW1lIHNpemUgc28gdGhhdCB0aGUgY2xhc3MgY2FuIGJlIHBhc3NlZCBiYWNr
IGFuZCBmb3J0aCBiZXR3ZWVuIFdlYktpdCBhbmQKLSAgICAvLyBub24tV2ViS2l0IGNvZGUuCi0g
ICAgLy8KLSAgICAvLyBUaGUgZW5kIGdvYWwgaXMgZXZlbnR1YWxseSBmb3IgdGhpcyBjbGFzcyB0
byBvbmx5IGV4aXN0IGF0IHRoZSBBUEkgYm91bmRhcnksIGFzIGEKLSAgICAvLyBjb252ZXJzaW9u
IGJldHdlZW4gV2ViQ29yZSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBhbmQgdGhlIGNvbXBvc2l0b3In
cyBpbnRlcm5hbAotICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIG1hdHJpeCB0cmFuc2Zvcm1zLgot
ICAgIC8vCi0jaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgV2ViQ29yZTo6VHJhbnNmb3Jt
YXRpb25NYXRyaXggbV9wcml2YXRlOwotI2Vsc2UKLSAgICBkb3VibGUgbV9tYXRyaXhbNF1bNF07
Ci0jZW5kaWYKKyAgICBXZWJQcml2YXRlT3duUHRyPFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4PiBtX3ByaXZhdGU7CiB9OwogCi0jaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi1DT01QSUxF
X0FTU0VSVChzaXplb2YoV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgpID09IHNpemVvZihk
b3VibGVbNF1bNF0pLCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeF9oYXNfdW5leHBlY3RlZF9zaXpl
KTsKLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlRyYW5zZm9ybWF0
aW9uTWF0cml4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCmluZGV4IDAxYTk2YTQ1NTk4NzZkYTFkMmU0Y2Jk
NzA1NGMwYjQ3Y2EyNDJiZmYuLjVlN2FjNGYwOTFmMzIzYzE5YTZhNDc3MTNlOGQ2Mjc2NTVmYjZj
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwCkBAIC0zMywxMiAr
MzMsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4KCkKLSAgICA6
IG1fcHJpdmF0ZSgpCisgICAgOiBtX3ByaXZhdGUobmV3IFRyYW5zZm9ybWF0aW9uTWF0cml4KQog
ewogfQogCiBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6V2ViVHJhbnNmb3JtYXRpb25NYXRyaXgo
ZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYywgZG91YmxlIGQsIGRvdWJsZSBlLCBkb3VibGUg
ZikKLSAgICA6IG1fcHJpdmF0ZShhLCBiLCBjLCBkLCBlLCBmKQorICAgIDogbV9wcml2YXRlKG5l
dyBUcmFuc2Zvcm1hdGlvbk1hdHJpeChhLCBiLCBjLCBkLCBlLCBmKSkKIHsKIH0KIApAQCAtNDYs
MjkgKzQ2LDM0IEBAIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeChkb3VibGUgbTExLCBkb3VibGUgbTEyLCBkb3VibGUKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbTIxLCBkb3VibGUgbTIyLCBkb3Vi
bGUgbTIzLCBkb3VibGUgbTI0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRvdWJsZSBtMzEsIGRvdWJsZSBtMzIsIGRvdWJsZSBtMzMsIGRvdWJsZSBt
MzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91
YmxlIG00MSwgZG91YmxlIG00MiwgZG91YmxlIG00MywgZG91YmxlIG00NCkKLSAgICA6IG1fcHJp
dmF0ZShtMTEsIG0xMiwgbTEzLCBtMTQsIG0yMSwgbTIyLCBtMjMsIG0yNCwgbTMxLCBtMzIsIG0z
MywgbTM0LCBtNDEsIG00MiwgbTQzLCBtNDQpCisgICAgOiBtX3ByaXZhdGUobmV3IFRyYW5zZm9y
bWF0aW9uTWF0cml4KG0xMSwgbTEyLCBtMTMsIG0xNCwgbTIxLCBtMjIsIG0yMywgbTI0LCBtMzEs
IG0zMiwgbTMzLCBtMzQsIG00MSwgbTQyLCBtNDMsIG00NCkpCiB7CiB9CiAKIFdlYlRyYW5zZm9y
bWF0aW9uTWF0cml4OjpXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeChjb25zdCBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdCkKLSAgICA6IG1fcHJpdmF0ZSh0Lm1fcHJpdmF0ZSkKKyAgICA6IG1fcHJp
dmF0ZShuZXcgVHJhbnNmb3JtYXRpb25NYXRyaXgoKnQubV9wcml2YXRlLmdldCgpKSkKIHsKIH0K
IAogV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4KGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0KQotICAgIDogbV9wcml2YXRlKHQpCisgICAgOiBtX3By
aXZhdGUobmV3IFRyYW5zZm9ybWF0aW9uTWF0cml4KHQpKQogewogfQogCit2b2lkIFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KDApOworfQor
CiBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om9wZXJh
dG9yPShjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkKIHsKLSAgICBtX3ByaXZhdGUg
PSB0Lm1fcHJpdmF0ZTsKKyAgICBtX3ByaXZhdGUucmVzZXQobmV3IFRyYW5zZm9ybWF0aW9uTWF0
cml4KCp0Lm1fcHJpdmF0ZS5nZXQoKSkpOwogICAgIHJldHVybiAqdGhpczsKIH0KIAogYm9vbCBX
ZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6b3BlcmF0b3I9PShjb25zdCBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgdCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlID09IHQubV9wcml2YXRl
OworICAgIHJldHVybiAqbV9wcml2YXRlLmdldCgpID09ICp0Lm1fcHJpdmF0ZS5nZXQoKTsKIH0K
IAogV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om9wZXJh
dG9yKihjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCkgY29uc3QKQEAgLTgwLDM1MCAr
ODUsMzQ4IEBAIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
OjpvcGVyYXRvciooY29uc3QgV2ViVHJhbnNmb3JtYXRpCiAKIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjppbnZlcnNlKCkgY29uc3QKIHsKLSAgICBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeCByZXN1bHQ7Ci0gICAgcmVzdWx0Lm1fcHJpdmF0ZSA9IG1fcHJp
dmF0ZS5pbnZlcnNlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXgobV9wcml2YXRlLT5pbnZlcnNlKCkpOwogfQogCiBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6dG8yZFRyYW5zZm9ybSgpIGNvbnN0
CiB7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggcmVzdWx0OwotICAgIHJlc3VsdC5tX3By
aXZhdGUgPSBtX3ByaXZhdGUudG8yZFRyYW5zZm9ybSgpOworICAgIHJlc3VsdC5tX3ByaXZhdGUu
cmVzZXQobmV3IFRyYW5zZm9ybWF0aW9uTWF0cml4KG1fcHJpdmF0ZS0+dG8yZFRyYW5zZm9ybSgp
KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eDo6bXVsdGlwbHkoY29uc3QgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpCiB7Ci0gICAgbV9w
cml2YXRlLm11bHRpcGx5KHQubV9wcml2YXRlKTsKKyAgICBtX3ByaXZhdGUtPm11bHRpcGx5KCp0
Lm1fcHJpdmF0ZS5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om1h
a2VJZGVudGl0eSgpCiB7Ci0gICAgbV9wcml2YXRlLm1ha2VJZGVudGl0eSgpOworICAgIG1fcHJp
dmF0ZS0+bWFrZUlkZW50aXR5KCk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6
OnRyYW5zbGF0ZShkb3VibGUgdHgsIGRvdWJsZSB0eSkKIHsKLSAgICBtX3ByaXZhdGUudHJhbnNs
YXRlKHR4LCB0eSk7CisgICAgbV9wcml2YXRlLT50cmFuc2xhdGUodHgsIHR5KTsKIH0KIAogdm9p
ZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6dHJhbnNsYXRlM2QoZG91YmxlIHR4LCBkb3VibGUg
dHksIGRvdWJsZSB0eikKIHsKLSAgICBtX3ByaXZhdGUudHJhbnNsYXRlM2QodHgsIHR5LCB0eik7
CisgICAgbV9wcml2YXRlLT50cmFuc2xhdGUzZCh0eCwgdHksIHR6KTsKIH0KIAogdm9pZCBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6dHJhbnNsYXRlUmlnaHQzZChkb3VibGUgdHgsIGRvdWJsZSB0
eSwgZG91YmxlIHR6KQogewotICAgIG1fcHJpdmF0ZS50cmFuc2xhdGVSaWdodDNkKHR4LCB0eSwg
dHopOworICAgIG1fcHJpdmF0ZS0+dHJhbnNsYXRlUmlnaHQzZCh0eCwgdHksIHR6KTsKIH0KIAog
dm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2NhbGUoZG91YmxlIHMpCiB7Ci0gICAgbV9w
cml2YXRlLnNjYWxlKHMpOworICAgIG1fcHJpdmF0ZS0+c2NhbGUocyk7CiB9CiAKIHZvaWQgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXg6OnNjYWxlTm9uVW5pZm9ybShkb3VibGUgc3gsIGRvdWJsZSBz
eSkKIHsKLSAgICBtX3ByaXZhdGUuc2NhbGVOb25Vbmlmb3JtKHN4LCBzeSk7CisgICAgbV9wcml2
YXRlLT5zY2FsZU5vblVuaWZvcm0oc3gsIHN5KTsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6c2NhbGUzZChkb3VibGUgc3gsIGRvdWJsZSBzeSwgZG91YmxlIHN6KQogewotICAg
IG1fcHJpdmF0ZS5zY2FsZTNkKHN4LCBzeSwgc3opOworICAgIG1fcHJpdmF0ZS0+c2NhbGUzZChz
eCwgc3ksIHN6KTsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlKGRv
dWJsZSBhbmdsZSkKIHsKLSAgICBtX3ByaXZhdGUucm90YXRlKGFuZ2xlKTsKKyAgICBtX3ByaXZh
dGUtPnJvdGF0ZShhbmdsZSk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnJv
dGF0ZTNkKGRvdWJsZSByeCwgZG91YmxlIHJ5LCBkb3VibGUgcnopCiB7Ci0gICAgbV9wcml2YXRl
LnJvdGF0ZTNkKHJ4LCByeSwgcnopOworICAgIG1fcHJpdmF0ZS0+cm90YXRlM2QocngsIHJ5LCBy
eik7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnJvdGF0ZTNkKGRvdWJsZSB4
LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSBhbmdsZSkKIHsKLSAgICBtX3ByaXZhdGUucm90
YXRlM2QoeCwgeSwgeiwgYW5nbGUpOworICAgIG1fcHJpdmF0ZS0+cm90YXRlM2QoeCwgeSwgeiwg
YW5nbGUpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4Ojpza2V3WChkb3VibGUg
YW5nbGUpCiB7Ci0gICAgbV9wcml2YXRlLnNrZXdYKGFuZ2xlKTsKKyAgICBtX3ByaXZhdGUtPnNr
ZXdYKGFuZ2xlKTsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2tld1koZG91
YmxlIGFuZ2xlKQogewotICAgIG1fcHJpdmF0ZS5za2V3WShhbmdsZSk7CisgICAgbV9wcml2YXRl
LT5za2V3WShhbmdsZSk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OmFwcGx5
UGVyc3BlY3RpdmUoZG91YmxlIHApCiB7Ci0gICAgbV9wcml2YXRlLmFwcGx5UGVyc3BlY3RpdmUo
cCk7CisgICAgbV9wcml2YXRlLT5hcHBseVBlcnNwZWN0aXZlKHApOwogfQogCiBib29sIFdlYlRy
YW5zZm9ybWF0aW9uTWF0cml4OjpibGVuZChjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
ZnJvbSwgZG91YmxlIHByb2dyZXNzKQogewogICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0
cml4OjpEZWNvbXBvc2VkVHlwZSBkdW1teTsKLSAgICBpZiAoIW1fcHJpdmF0ZS5kZWNvbXBvc2Uo
ZHVtbXkpIHx8ICFmcm9tLm1fcHJpdmF0ZS5kZWNvbXBvc2UoZHVtbXkpKQorICAgIGlmICghbV9w
cml2YXRlLT5kZWNvbXBvc2UoZHVtbXkpIHx8ICFmcm9tLm1fcHJpdmF0ZS0+ZGVjb21wb3NlKGR1
bW15KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fcHJpdmF0ZS5ibGVuZChmcm9tLm1f
cHJpdmF0ZSwgcHJvZ3Jlc3MpOworICAgIG1fcHJpdmF0ZS0+YmxlbmQoKmZyb20ubV9wcml2YXRl
LmdldCgpLCBwcm9ncmVzcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXg6Omhhc1BlcnNwZWN0aXZlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9w
cml2YXRlLmhhc1BlcnNwZWN0aXZlKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aGFzUGVyc3Bl
Y3RpdmUoKTsKIH0KIAogYm9vbCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6aXNJbnZlcnRpYmxl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLmlzSW52ZXJ0aWJsZSgpOworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmlzSW52ZXJ0aWJsZSgpOwogfQogCiBib29sIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4Ojppc0JhY2tGYWNlVmlzaWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJp
dmF0ZS5pc0JhY2tGYWNlVmlzaWJsZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmlzQmFja0Zh
Y2VWaXNpYmxlKCk7CiB9CiAKIGJvb2wgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OmlzSWRlbnRp
dHkoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUuaXNJZGVudGl0eSgpOworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmlzSWRlbnRpdHkoKTsKIH0KIAogYm9vbCBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6aXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKSBjb25zdAogewotICAgIHJldHVybiBt
X3ByaXZhdGUuaXNJZGVudGl0eU9yVHJhbnNsYXRpb24oKTsKKyAgICByZXR1cm4gbV9wcml2YXRl
LT5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbigpOwogfQogCiBib29sIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4Ojppc0ludGVnZXJUcmFuc2xhdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJp
dmF0ZS5pc0ludGVnZXJUcmFuc2xhdGlvbigpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmlzSW50
ZWdlclRyYW5zbGF0aW9uKCk7CiB9CiAKIGRvdWJsZSBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6
bTExKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLm0xMSgpOworICAgIHJldHVybiBt
X3ByaXZhdGUtPm0xMSgpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRN
MTEoZG91YmxlIGYpCiB7Ci0gICAgbV9wcml2YXRlLnNldE0xMShmKTsKKyAgICBtX3ByaXZhdGUt
PnNldE0xMShmKTsKIH0KIAogZG91YmxlIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMTIoKSBj
b25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUubTEyKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+bTEyKCk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0xMihkb3Vi
bGUgZikKIHsKLSAgICBtX3ByaXZhdGUuc2V0TTEyKGYpOworICAgIG1fcHJpdmF0ZS0+c2V0TTEy
KGYpOwogfQogCiBkb3VibGUgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om0xMygpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5tMTMoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tMTMo
KTsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTEzKGRvdWJsZSBmKQog
ewotICAgIG1fcHJpdmF0ZS5zZXRNMTMoZik7CisgICAgbV9wcml2YXRlLT5zZXRNMTMoZik7CiB9
CiAKIGRvdWJsZSBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTE0KCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9wcml2YXRlLm0xNCgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPm0xNCgpOwogfQog
CiB2b2lkIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMTQoZG91YmxlIGYpCiB7Ci0gICAg
bV9wcml2YXRlLnNldE0xNChmKTsKKyAgICBtX3ByaXZhdGUtPnNldE0xNChmKTsKIH0KIAogZG91
YmxlIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMjEoKSBjb25zdAogewotICAgIHJldHVybiBt
X3ByaXZhdGUubTIxKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bTIxKCk7CiB9CiAKIHZvaWQg
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0yMShkb3VibGUgZikKIHsKLSAgICBtX3ByaXZh
dGUuc2V0TTIxKGYpOworICAgIG1fcHJpdmF0ZS0+c2V0TTIxKGYpOwogfQogCiBkb3VibGUgV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXg6Om0yMigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0
ZS5tMjIoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tMjIoKTsKIH0KIAogdm9pZCBXZWJUcmFu
c2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTIyKGRvdWJsZSBmKQogewotICAgIG1fcHJpdmF0ZS5zZXRN
MjIoZik7CisgICAgbV9wcml2YXRlLT5zZXRNMjIoZik7CiB9CiAKIGRvdWJsZSBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeDo6bTIzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLm0yMygp
OworICAgIHJldHVybiBtX3ByaXZhdGUtPm0yMygpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4OjpzZXRNMjMoZG91YmxlIGYpCiB7Ci0gICAgbV9wcml2YXRlLnNldE0yMyhmKTsK
KyAgICBtX3ByaXZhdGUtPnNldE0yMyhmKTsKIH0KIAogZG91YmxlIFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4OjptMjQoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUubTI0KCk7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bTI0KCk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRy
aXg6OnNldE0yNChkb3VibGUgZikKIHsKLSAgICBtX3ByaXZhdGUuc2V0TTI0KGYpOworICAgIG1f
cHJpdmF0ZS0+c2V0TTI0KGYpOwogfQogCiBkb3VibGUgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6
Om0zMSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5tMzEoKTsKKyAgICByZXR1cm4g
bV9wcml2YXRlLT5tMzEoKTsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0
TTMxKGRvdWJsZSBmKQogewotICAgIG1fcHJpdmF0ZS5zZXRNMzEoZik7CisgICAgbV9wcml2YXRl
LT5zZXRNMzEoZik7CiB9CiAKIGRvdWJsZSBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTMyKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLm0zMigpOworICAgIHJldHVybiBtX3ByaXZh
dGUtPm0zMigpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNMzIoZG91
YmxlIGYpCiB7Ci0gICAgbV9wcml2YXRlLnNldE0zMihmKTsKKyAgICBtX3ByaXZhdGUtPnNldE0z
MihmKTsKIH0KIAogZG91YmxlIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjptMzMoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3ByaXZhdGUubTMzKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bTMz
KCk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldE0zMyhkb3VibGUgZikK
IHsKLSAgICBtX3ByaXZhdGUuc2V0TTMzKGYpOworICAgIG1fcHJpdmF0ZS0+c2V0TTMzKGYpOwog
fQogCiBkb3VibGUgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6Om0zNCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fcHJpdmF0ZS5tMzQoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tMzQoKTsKIH0K
IAogdm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0TTM0KGRvdWJsZSBmKQogewotICAg
IG1fcHJpdmF0ZS5zZXRNMzQoZik7CisgICAgbV9wcml2YXRlLT5zZXRNMzQoZik7CiB9CiAKIGRv
dWJsZSBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6bTQxKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9wcml2YXRlLm00MSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPm00MSgpOwogfQogCiB2b2lk
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4OjpzZXRNNDEoZG91YmxlIGYpCiB7Ci0gICAgbV9wcml2
YXRlLnNldE00MShmKTsKKyAgICBtX3ByaXZhdGUtPnNldE00MShmKTsKIH0KIAogZG91YmxlIFdl
YlRyYW5zZm9ybWF0aW9uTWF0cml4OjptNDIoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZh
dGUubTQyKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bTQyKCk7CiB9CiAKIHZvaWQgV2ViVHJh
bnNmb3JtYXRpb25NYXRyaXg6OnNldE00Mihkb3VibGUgZikKIHsKLSAgICBtX3ByaXZhdGUuc2V0
TTQyKGYpOworICAgIG1fcHJpdmF0ZS0+c2V0TTQyKGYpOwogfQogCiBkb3VibGUgV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXg6Om00MygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5tNDMo
KTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tNDMoKTsKIH0KIAogdm9pZCBXZWJUcmFuc2Zvcm1h
dGlvbk1hdHJpeDo6c2V0TTQzKGRvdWJsZSBmKQogewotICAgIG1fcHJpdmF0ZS5zZXRNNDMoZik7
CisgICAgbV9wcml2YXRlLT5zZXRNNDMoZik7CiB9CiAKIGRvdWJsZSBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6bTQ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLm00NCgpOworICAg
IHJldHVybiBtX3ByaXZhdGUtPm00NCgpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0aW9uTWF0
cml4OjpzZXRNNDQoZG91YmxlIGYpCiB7Ci0gICAgbV9wcml2YXRlLnNldE00NChmKTsKKyAgICBt
X3ByaXZhdGUtPnNldE00NChmKTsKIH0KIAogZG91YmxlIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
OjphKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLmEoKTsKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5hKCk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldEEoZG91
YmxlIGEpCiB7Ci0gICAgbV9wcml2YXRlLnNldEEoYSk7CisgICAgbV9wcml2YXRlLT5zZXRBKGEp
OwogfQogCiBkb3VibGUgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OmIoKSBjb25zdAogewotICAg
IHJldHVybiBtX3ByaXZhdGUuYigpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmIoKTsKIH0KIAog
dm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0Qihkb3VibGUgYikKIHsKLSAgICBtX3By
aXZhdGUuc2V0QihiKTsKKyAgICBtX3ByaXZhdGUtPnNldEIoYik7CiB9CiAKIGRvdWJsZSBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6YygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5j
KCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YygpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4OjpzZXRDKGRvdWJsZSBjKQogewotICAgIG1fcHJpdmF0ZS5zZXRDKGMpOworICAg
IG1fcHJpdmF0ZS0+c2V0QyhjKTsKIH0KIAogZG91YmxlIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4
OjpkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLmQoKTsKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5kKCk7CiB9CiAKIHZvaWQgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OnNldEQoZG91
YmxlIGQpCiB7Ci0gICAgbV9wcml2YXRlLnNldEQoZCk7CisgICAgbV9wcml2YXRlLT5zZXREKGQp
OwogfQogCiBkb3VibGUgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXg6OmUoKSBjb25zdAogewotICAg
IHJldHVybiBtX3ByaXZhdGUuZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmUoKTsKIH0KIAog
dm9pZCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6c2V0RShkb3VibGUgZSkKIHsKLSAgICBtX3By
aXZhdGUuc2V0RShlKTsKKyAgICBtX3ByaXZhdGUtPnNldEUoZSk7CiB9CiAKIGRvdWJsZSBXZWJU
cmFuc2Zvcm1hdGlvbk1hdHJpeDo6ZigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5m
KCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZigpOwogfQogCiB2b2lkIFdlYlRyYW5zZm9ybWF0
aW9uTWF0cml4OjpzZXRGKGRvdWJsZSBmKQogewotICAgIG1fcHJpdmF0ZS5zZXRGKGYpOworICAg
IG1fcHJpdmF0ZS0+c2V0RihmKTsKIH0KIAogVHJhbnNmb3JtYXRpb25NYXRyaXggV2ViVHJhbnNm
b3JtYXRpb25NYXRyaXg6OnRvV2ViQ29yZVRyYW5zZm9ybSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fcHJpdmF0ZTsKKyAgICByZXR1cm4gKm1fcHJpdmF0ZS5nZXQoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>