From: Kalpak Shah Subject: [PATCH] e2fsprogs: Offsets of EAs in inode need not be sorted Date: Thu, 19 Apr 2007 17:35:36 +0530 Message-ID: <1176984336.3812.10.camel@garfield> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-AzwpBCe90uWGQa4sZcUD" Cc: linux-ext4 To: TheodoreTso Return-path: Received: from mail.clusterfs.com ([206.168.112.78]:37067 "EHLO mail.clusterfs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2993238AbXDSMDD (ORCPT ); Thu, 19 Apr 2007 08:03:03 -0400 Sender: linux-ext4-owner@vger.kernel.org List-Id: linux-ext4.vger.kernel.org --=-AzwpBCe90uWGQa4sZcUD Content-Type: text/plain Content-Transfer-Encoding: 7bit Hi, This patch removes a code snippet from check_ea_in_inode() in pass1 which checks if the EA values in the inode are sorted or not. The comments in fs/ext*/xattr.c state that the EA values in the external EA block are sorted but those in the inode need not be sorted. I have also attached a test image which has unsorted EAs in the inodes. The current e2fsck wrongly clears the EAs in the inode. Signed-off-by: Kalpak Shah Index: e2fsprogs-1.40/e2fsck/pass1.c =================================================================== --- e2fsprogs-1.40.orig/e2fsck/pass1.c +++ e2fsprogs-1.40/e2fsck/pass1.c @@ -246,7 +246,7 @@ static void check_ea_in_inode(e2fsck_t c struct ext2_inode_large *inode; struct ext2_ext_attr_entry *entry; char *start, *end; - unsigned int storage_size, remain, offs; + unsigned int storage_size, remain; int problem = 0; inode = (struct ext2_inode_large *) pctx->inode; @@ -261,7 +261,6 @@ static void check_ea_in_inode(e2fsck_t c /* take finish entry 0UL into account */ remain = storage_size - sizeof(__u32); - offs = end - start; while (!EXT2_EXT_IS_LAST_ENTRY(entry)) { @@ -285,15 +284,6 @@ static void check_ea_in_inode(e2fsck_t c goto fix; } - /* check value placement */ - if (entry->e_value_offs + - EXT2_XATTR_SIZE(entry->e_value_size) != offs) { - printf("(entry->e_value_offs + entry->e_value_size: %d, offs: %d)\n", entry->e_value_offs + entry->e_value_size, offs); - pctx->num = entry->e_value_offs; - problem = PR_1_ATTR_VALUE_OFFSET; - goto fix; - } - /* e_value_block must be 0 in inode's ea */ if (entry->e_value_block != 0) { pctx->num = entry->e_value_block; @@ -309,7 +299,6 @@ static void check_ea_in_inode(e2fsck_t c } remain -= entry->e_value_size; - offs -= EXT2_XATTR_SIZE(entry->e_value_size); entry = EXT2_EXT_ATTR_NEXT(entry); } Thanks, Kalpak Shah. --=-AzwpBCe90uWGQa4sZcUD Content-Disposition: attachment; filename=foo.img.gz Content-Type: application/x-gzip; name=foo.img.gz Content-Transfer-Encoding: base64 H4sICJHnFEYCA2Zvby5pbWcA7N153GUFQf/x5xlABmYYQBFRiQhNFJLOds8CLqgopoiiJIIgoIAL y7iLVIq7CSZZbrmnpbgkbmmKSq6ouAKKG2jihAiCigpJ+fuec5/nAdH6o/wZyfv9en3mmTnn3nv2 c8+5zFwWFoAbrNXzjsqPH65aWLhi0/ngVUstnLhUHnP6d7a5x9jiwk4LD7hscWFxYT5sYd9Lp+cs Lr3kmqUXuMPSa2yUTrrq+Yft/sJ9tzmxf8ptjj/54AN+k4u37KJn7bDdLsXe937jkx9zwrm7PvXI VYvXjBuXY/P8eU1am7ZI69KWaau0dbpxuknaJt00bbt43antaX8CAOB6bfn6fOPp+v+KTVdZJQAA APBb5+fXd3e+gS8/AAAA/Dps6fMPAAAA+G23fB+8/G97p3/Pyw3GpXfJL1v9qu2/0S/82+mNF/// TH9jmwAA4DfqxKfllzP2/BXXf4u/cP3337HZda4ZF63u6+f2X/reoutu/612vOZx//PvRgLg+uSM u8xP/7/8/r9q4Vqn/4VNcj6/Udo0rf41ntt9/vO/6/VPm2+DX3X9t9W1Hrd2k//+NB7ztdXP3GKT /2r7r7p49eIR01619dLw4w4/9shqVvSrF/eZhm97reFtO2R4/0uPr4t22GzxyunPd77W8LIph2G6 Hj1r4bqvVTXdrJ7GXT4N2/TazyvbrprGXThfB9d+XlUW3X+yvEetX18Os7rq6qGry77tq2Eo+2l4 Xc2auu3aPr8fuqIch1Vt3VVl19d1WdRDWdVFXzR13zb9rG7aKpoMLYYivxTdbJZHFk0eVjV9Nz1/ mM3KDMlSdnU7n37bZOplm2Fdnlg1RVdOw/Oqs6ofuqacNeMsAQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAD8xq1KaxcWV+228vtVq3bLH9bk99ssbL7qmPWPe/yuR61/wnFH jOMWFs7ZcqPFo9avt+IAAADg/5A117n/v2LL+f0/AAAA8FtmK6sAAAAA3P8DAAAA7v8BAAAAAAAA gP9NZ+wxvDQ/Np7/aavl3y5eM+wXnXTV8w/b/YX7bnNi/5TbHH/ywQcsPRYAAAC4/t//j/fw49f/ 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 Vtw108x2y3rMJURf1+P3kmYeyuxrWelVXjwL0tZZE3WbDdDmyW01buHMe1ZdZqJqczFQ5Sp4vDMY V0I9bou2yUbK7p0ZK3IYFNlVl+Yl2yI/s9xttuGszjoc/1w2TTUs7dPZ64Y2a7+ZZRdoh2FcUdlk XfahdlZnE+fWpK6Lvsu1TWYos5iH5Zq5HKfX9eP2zjbKcZR9O48dv+01S515HLL9M7uZvXJcmX3T 1d14GGZByq6djXt7FiMPy9rss5bqrs1myNrKEoxLV+USOnteP14YTdugyW8zn3n+dGE6baehHr8/ dvym2Fk1DO18WxWZ3WkfHo+J2TD/vtd6PPTyktlf66ylLEgxnTByizKMc5yy72TDN804JBuinA1V kf03KzobdWhzUV/n7JJtkNnNMo27Wb+yXaf5KbJzZNazh7Tt0v6QC8IsXD90OQzGfWY6JsazQg6E 7NbZY3PYjEdRl+OiHA/v7CDZZbqcfHJ85GgfJzkb12TVzcb9IwdSTg7ZScocQ00WMC+XS/yc1cbv w82a7cf9KmexZvzi2z7j6mlHygP6PtshUx7nNeth+pmt1o0/m/H4GjdHznCzPCr7dZtVMht30SJL O/TtbNz441lovF/NCawcD7Hxsj3bLCeqcc8dz7mZ41leKztRO83deA7NqaMbD4ScsXIv2o/HTDPu 47kmzuDpDJEtP1TDeHU9rKzP2biD9eNX/44n3ZxAivHFy/F4znzmUMgMNuNd4Xis5PyWa+Usb05i Vc6gWebx8eOfxpP90vHZZ6WNqyLni7ruMmK+fy2cscfw0oVr/ec+AAAAAAAAAOD/npstLixsl26e bpFumbZPv5N2SL+bdky/l3ZKt0q3Tr+fbpN2TrdNt0u7pF3TH6Tbp93SH6YilalKdWrSLLWpS+P/ yXlIu6c90h3SHdOd0p3Tnuku6a7pbmmvdPd0j7R3umf6o3SvdO80/h+j75P2TfdN90v7pfunB6T9 0x+nB6YD0oPSgemg9OB0cDokPSQdmg5Lh6eHpoel8f9UfWQ6Kj08PSI9Mj0qHZ2OScem49L69Oj0 mPTY9Lj0+PSE9MT0pHR8enI6If1J+tP0Z+kp6anpxPS09PT0jPTM9Kz07PSc9Nz05+l56aR0cnp+ +ov0gnRK+sv0wvRX6a/Ti9KL00vSS9PL0t+kl6dXpFemV6VXp9ek16a/Ta9Lr09/l/4+vSG9MZ2a 3pTenN6S3pr+Ib0tnZbent6R3pneld6d/jG9J703/VN6X3p/Oj19IH0wfSidkf45fTh9JH00fSx9 PH0inZk+mT6VPp3OSp9Jn02fS59PX0hfTGenc9K56Uvpy+m89JX01fS19PX0jXR+uiB9M30r/Uv6 drowfSdtSP+aLkrfTeM/pPleuiRdmr6fLkuXpx+kH6YfpSvSj9NP0k/Tlemq9G/pZ+nq9O/pP9LP x3+Ys2phYTGtShuljdMm6UZp07Q6bZY2T2vS2rRFWpe2TFulrdON003SNummadt0s7Rdunm6Rbpl 2j79Ttoh/W7aMf1e2indKt06/X66Tdo53TbdLu2Sdk1/kG6fdkt/mIpUpirVqUmz1KYu9WlIu6c9 xu8NSHdMd0p3Tnumu6S7prulvdLd0z3S3ume6Y/SvdK90z7pPmnfdN90v7Rfun96QNo//XF6YDog PSgdmA5KD04Hp0PSQ9Kh6bB0eHpoelg6Ih2ZjkoPT49Ij0yPSkenY9Kx6bi0Pj06PSY9Nj0uPT49 IT0xPSkdn56cTkh/kv40/Vl6SnpqOjE9LT09PSM9Mz0rPTs9Jz03/Xl6XjopnZyen/4ivSCdkv4y vTD9Vfrr9KL04vSS9NL0svQ36eXpFemV6VXp1ek16bXpb9Pr0uvT36W/T29Ib0ynpjelN6e3pLem f0hvS6elt6d3pHemd6V3p39M70nvTf+U3pfen05PH0gfTB9KZ6R/Th9OH0kfTR9LH0+fSGemT6ZP pU+ns9Jn0mfT59Ln0xfSF9PZ6Zx0bvpS+nI6L30lfTV9LX09fSOdny5I30zfSv+Svp0uTN9JG9K/ povSd9PF6XvpknRp+n66LF2efpB+mH60aul7NtJP0k/Tlemq9G/pZ+nq9O/pP9LPx7+Vt1GO/7Qq bZQ2TpukG6VN0+q0Wdo8rUlr0xZpXdoybZW2TjdON0nbpJumbdPN0nbp5ukW6ZZp+/Q7aYf0u2nH 9Htpp3SrdOv0++k2aed023S7tEvaNf1Bun3aLf1hKlKZqlSnJs1Sm7rUpyHtnvZId0h3THdKd057 pruku6a7pb3S3dM90t7pnumP0r3SvdM+6T5p33TfdL+0X7p/ekDaP/1xemA6ID0oHZgOSg9OB6dD 0kPSoemwdHh6aHpYOiIdmY5KD0+PSI9Mj0pHp2PSsem4tD49Oj0mPTY9Lj0+PSE9MT0pHZ+enE5I f5L+NP1Zekp6ajoxPS09PT0jPTM9Kz07PSc9N/15el46KZ2cnp/+Ir0gnZL+Mr0w/VX66/Si9OL0 kvTS9LL0N+nl6RXplelV6dXpNem16W/T69Lr09+lv09vSG9Mp6Y3pTent6S3pn9Ib0unpbend6R3 pneld6d/TO9J703/lN6X3p9OTx9IH0wfSmekf04fTh9JH00fSx9Pn0hnpk+mT6VPp7PSZ9Jn0+fS 59MX0hfT2emcdG76UvpyOi99JX01fS19PX0jnZ8uSN9M30r/kr6dLkzfSRvSv6aL0nfTxel76ZJ0 afp+uixdnn6Qfph+lK5IP04/ST9NV6ar0r+ln6Wr07+n/0g/H/+h3cY5/tOqtFHaOG2SbpQ2TavT ZmnztCatTVukdWnLtFXaOt043SRtk26atk03S9ulm6dbpFum7dPvpB3S76Yd0++lndKt0q3T76fb pJ3TbdPt0i5p1/QH6fZpt/SHqUhlqlKdmjRLbepSn4a0e9oj3SHdMd0p3Tntme6S7prulvZKd0/3 SHune6Y/SvdK9077pPukfdN90/3Sfun+6QFp//TH6YHpgPSgdGA6KD04HZwOSQ9Jh6bD0uHpoelh 6Yh0ZDoqPTw9Ij0yPSodnY5Jx6bj0vr06PSY9Nj0uPT49IT0xPSkdHx6cjoh/Un60/Rn6SnpqenE 9LT09PSM9Mz0rPTs9Jz03PTn6XnppHRyen76i/SCdEr6y/TC9Ffpr9OL0ovTS9JL08vS36SXp1ek V6ZXpVen16TXpr9Nr0uvT3+X/j69Ib0xnZrelN6c3pLemv4hvS2dlt6e3pHemd6V3p3+Mb0nvTf9 U3pfen86PX0gfTB9KJ2R/jl9OH0kfTR9LH08fSKdmT6ZPpU+nc5Kn0mfTZ9Ln09fSF9MZ6dz0rnp S+nL6bz0lfTV9LX09fSNdH66IH0zfSv9S/p2ujB9J21I/5ouSt9NF6fvpUvSpen76bJ0efpB+mH6 Uboi/Tj9JP00XZmuSv+WfpauTv+e/iP9fPwfpG+S4z+tShuljdMm6UZp07Q6bZY2T2s28ZkGAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/L/24JAAAAAAQND/194wAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwGSvHKEAACA AA== --=-AzwpBCe90uWGQa4sZcUD--