[Libreoffice-commits] .: sw/qa writerfilter/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Oct 11 12:25:26 PDT 2012


 sw/qa/extras/rtfimport/data/fdo55493.rtf       |  142 +++++++++++++++++++++++++
 sw/qa/extras/rtfimport/rtfimport.cxx           |   12 ++
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |    5 
 3 files changed, 158 insertions(+), 1 deletion(-)

New commits:
commit 5ef0f1dc9a70c20fe6879832b782a0c34724353f
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Thu Oct 11 16:48:55 2012 +0200

    fdo#55493 fix RTF import of specific PNG image
    
    The image was special in that the resulting Graphic's
    GetPrefMapMode().GetMapUnit() wasn't MAP_PIXEL.
    
    Change-Id: I681e344a042721b99f6cb2e599f9c65156d219a4

diff --git a/sw/qa/extras/rtfimport/data/fdo55493.rtf b/sw/qa/extras/rtfimport/data/fdo55493.rtf
new file mode 100644
index 0000000..22d8ca9
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/fdo55493.rtf
@@ -0,0 +1,142 @@
+{\rtf1\ansi\deff0 
+{\pict\pngblip
+89504e470d0a1a0a0000000d49484452000000960000009708040000012a535a5a000000097048597300000ec400000ec401952b0e1b000003186943435050686f746f73686f70204943432070726f66696c65000078da6360609ee0e8e2e4ca24c0c050505452e41ee418191119a5c07e9e818d819981818181812131b9b8c0
+3120c087818181212f3f2f9501153032307cbbc6c0c8c0c0c07059d7d1c5c9958134c09a5c5054c2c0c070808181c12825b538998181e10b0303437a794941090303630c03038348527641090303630103038348764890330303630b0303134f496a450903030383737e416551667a468982a1a5a5a582634a7e52aa42706571
+496a6eb182675e727e51417e5162496a0a030303d40e060606065e97fc1205f7c4cc3c05230355062a8388c82805080b113e083104482e2d2a83072503830083028301830343004322433dc30286a30c6f18c5195d184b195730de6312630a629ac07481599839927921f31b164b960e965bac7aacadacf7d82cd9a6b17d630f
+67dfcda1c4d1c5f1853391f3029723d7166e4dee053c523c5379857827f109f34de397e15f2ca023b043d055f08a50aad00fe15e111591bda2e1a25fc426891b895f91a89094933c26952f2d2d7d42a64c565df6965c9fbc8bfc1f85ad8a854a7a4a6f95d7aa14a89aa8fe543ba8dea511aaa9a4f941eb80f6249d545d2b3d41
+bd57fa470c1618d61ac518db9ac89b329bbe34bb60bed36289e504ab3aeb5c9b38db403b577b6b0763471d2735672517055779370577650f754f5d2f136f1b1f77df60bf04fffc80fac089414b8377855c0c7d19ce142117691515115d113333764fdc8304b644dda4b0e4869435a937d339322c3233b3e6665fcc65cfb3cfaf
+28d854f8ae58bb24ab7455d99b0afdca92aa5d358cb55e7553eb1f36ea35d5349f6d956b2b6c3fda29dd55d47dba57b5afb1ffee449b49b327ff9d1a3fedf00c8d99fdb3becf49987b7abef982a58b4416b72ef9b62c73f9bd9521ab4eaf7159bb6fbde5866d9b4c366fd96ab26dfb0eab9dfb77bbee39bb2f6cff838339877e
+1e693f267e7cc549eb53e7ce249ffd757ed245ed4b47af245efd777dce4d9b5b77efd4df53be7fe261de63b127fb9f65be107979f075fe5bf977173e347d32fdfceaeb82efe13f057e9dfad3facff1ff7f000d000f34fa96f15d000000206348524d00007a25000080830000f9ff000080e9000075300000ea6000003a980000
+176f925fc546000041b24944415478da8cd2414b95511006e0b11fe032c84dfe87e8579428d4c648855a14da5d048286186108610bb3281785b8507f418aab50244883d0854282a00821264a99b4f0fa3d2deeb9dffdae6e7a3733e79d77e6cc99330dc47fe052f1b011f72242447c8b88c16248c25b4738c386773294bc514e
+d124db71cb34e89739d687bf7868b6269bd76b2de50d39495e37b85d93ed8265e771045e5764a3ce12fdec82f091956ab5bd9c6c4bf6a79b3957b6a954b974d1533092073ffa52a8f955fc52c63e584874a5cb2930e1b31191e1bb63302bf32049d7937d8e75c10f0ce44368554a2d14d1c04e5ccdff643b86e3725c89c6e8cc
+b98ec822c8dc75ea45caeba9abd2e5c0cbea7827eb4237cc256f065dde5765e3fe38f0c4e33a798b558c17bfbedd165e61c97d772c60d94cde4abe487bfafc069f4ce210dbc597d676ef4374c65a8cc5f5688ae6b856d8d97f000000ffff7c93c14b545114c67f3309b56ed15668114410f817b80e0adbb46a252e2643679828
+66d12c0251666328b808a396030503038222ba5144220a8316b568a50505ea625ad86b66decfc5bb3e9fcfe8aecebde73bf7dcfb9def2b9c17b914fe27f25dba6c84b84a33579baeb2da73d9d859557ffb23cda1fadd47ea07b5e4a1b1adf0fcf259d85b75d9c9a0afd3356fd94f27b0758fd491902ab9901b7ba41661901ad0
+0660871b1ce57ef91360d5927f32b5f7fc9ad93db1695de56518b1be52d7d48a1da314b8a9f6e5576a8d4567825a5e5bb31bce9f5a775bf6322df6d35ba63535cd9cdf24cac03a69b4e45ce0ad9210d2f6b3ef5d09e946cef1a3fef579c2dbd839834c65e2777613deaef10c38c8305507c601d8e20d0327427ac8552e311140
+111733255fb87eaa909e77d4967ad707563510520bad07929a0b0cb1434c87592ef302784ccc308d7fa9b74f91fb5ce1161fb9c9ed4ceb633ecb2624ca280ac3af3a23ed2a88689149514144ab7e162d83c24d2594200ed2229d8c20442c8d48c34091a232a210c1d414a1c2c08230c2c8d2fea09c129b45914a36884df8db38
+e3cc3c2de6cee7fce9dddd7bcef7de73cf77def79cb4e595bc5599ead31ebd9753a3ea528d025aaf11ed5e5ef09372c629f22963869fd42758c25c641c3fb54c26d99258baa0760de8b66ccad439add6766dd02eadb5ec41fd52483d3aa0adca50a1f66a870ea58ecc459111cae7040087396f8bbbbd8361a017801caa98231c
+4f3ee8a30e1f1855cb4f08bf33e9410b809720e06396bc58b037cc500af4338b13882dbf47dc6192693e25015e352de81847a98c82b979c69471288871fe0b4031904751ca5e8645ad31ce47c042dc22889fa73cb6ccbdc0a8958dcbc0777aac6896d66b8b322551b088f68778112384d0c249eb37d43300b88079236cd1350f
+d4e0e20ac328cc07824083496b94cbd584806b56baa30c7f888fdc983e5fcb2c8b94e0e12be9699a5086194daa4db95448daa8741dd1a024872ae59354a190a421add236ed5399d515db94a11b6ad54e099e7097265ed26f8d0dd17a8772a00b1806f3bc76c2d400cd3413a6cb7ce362225a1a11611aa33c4545412e2700f86c
+943cfe3ae82680074f14cc6b8c8d7852804572554a210043d6f905a09b49e6f963ae8ba1d34d7281ebb8f11348003c1db70bd10a38794500f0d394d8b5a181308b9c01bc0c023fa84b11e77116f9c75bb373331d63b32d51feaca47b0acaa9462d48daa23905d5a97165c9617c5a745036d9f44e767d538feec7c9594a71bc24
+bbecda24877eab4ad9cad63a7d945b8755a00eedd7664d694d0a6d4c5b79661ed103f9f445c5f22a4bd3ca917d05efff9c985b6c94551446570101354134313e98a88924a8c883114d8c0fc6075f3406e42282520a82500169255c846ae59220a4a6dc2c04620d89892022ad8a4041010d41c12b0a024505a4944b415a6bc169
+67960f7366facf4c45713ffc3367fe335f4ecede67efb54fde7f01f0389daf14d233ed475a69e234d09936b6718ec5cc267165abda4713abe941374ab806b84437f288f106bde8c15a1ecda847ffb8aa56a037ab5945238f710d00ddc903baf2389b7908b88d61c473a4ba640e27732d17a8e07aa0820427f88eeb68e030d339
+c1264a812edc4d5f3a3320105187056ebca5fe657ff5b0fa67208c945d08a7a1c50b169af050561047a4ea2c0e096ebdba46ad7594ebc2813e66916bd52697d9a236aa5f65e496b4d46c2fa699ea9c3a27648f6c7b2e7cee08297c6eb6548df33212cafbe96f4b2cc891db605cad34a1eeb024fc1a3cd8871e2c0cee3c063c91
+decb46de626d96af06301ce84b35ebb985b66830ece11c57338d15d410e3569a3398eb28e488ad219f7e54d1872aae635cbb0727d8a6aeb6d5646b14cd9aeb2cb3308321535663752497295aed79df33d59c44136ff2f974a07473d827d91fe67bc067925209cbad7749d6c44dc19beb8c5be6ee0eda361de632f787c050b434
+74c70b1c989e54af61b4d94b812f5e74710788b2c05f8d99b0598ef899fb03e1b4178c19013bda4723d4a539ebdae9e7ce35df6acb6591c5ceb021a37d58e9e010b0c9e78b6e0fd57b6a56b11be6797589c3dc22057ee0028fbbd6e3e17549f0c9c27427a2154e569fd150b25256e9493f5237ab1cb5c86d6acc9d597570a1ba
+2790f71ab5d893bea0696c4b55d379eaefbe2a032d71b773acb22232a5d4d1ea2bfea41685333727b0cf89487d4c84983ae5593bf507f6d3875a7a47a2b91b6f329404bdd94a398f000f510f1491c7cd54a4dbcd56600b7290ee50e20467dbe296acda3cc6b8076c316e9986eb94bd4e0c7dd2cf61d627267cd93ae79b2f5bfc
+c2f23490446dacbad598b174eba6a7c27dc36ee37eab0e525fb1c032474bc2a101cb924814b5291afad5f1112c48854dbebadb8bbe6ca5f5be2dbacfbd36ab23dd9525b5c8af7d562df41dcbc2255022abf56d8775f4532759e8592bd51f3a38b4df8435d5e6ac7ab075ea46c7b92129d5182e615e77a60d3952a5611f17a871
+f3236f2eaac5263ce3294b530939ee409ff2375b8d392a4b6aa34bd58b1606446f07f543165a63b9f3835b426e5fad36bbca93914290b2494e8a6c7b6ab7c6a8336c51b707460c527b5c1128735fda73513b9125355ead5427fa703ac62275f0256bd37e792d124bd9f6ae31136acc414ef37cda8f9da2d715bf500b5c4503d3
+e9c228cee670c1419633846fc8239f020af8955d74cdc58f37e9c97212b4d209d8ca5bdc481bb3184a11cf339c57913bd84b1b1f027db98b8f7920ca34d9297672b8894c9ec8664fab8b2cf194fa65685216a9dfbbdc2319ffcd82a26ef4630a57012389032ba903ee612e3701f7733f052481ac8af1dcfe6fa816e70c4ba967
+0c0f52cc1f3c494f7ee607e2cca63b6319ce411a322f6e2fc7a2b2898d0ce15ece700353e9c5713a338b6a4650c380ff83b5bb68e23e62f460267732909b2e33f76f52cd3528caf38ae37f8d31939a4e9bd6699dced499344967329974265f3a6dbe659a34f950ab066b740043bca024e205d72b68aaa8a88860ac7703a97829
+4622516b448554638237c60bf1c2864b45032aa02077f6ddfdf5c33efbba3716b0e7d33befeebbefd9e739cf39ffffff1cf1d8d6cef71c653d8dc491c6012cea594e175371b391ab0135acbf3650fdb253baac696a9674490ed5e8772ad76afd5a777444194ad37d1d91a53a591aa662b984ceab4b897ad8bfd76840df04fd1b
+7a466ee56b949cfa463fd242b935402775489dfab186eb05bda8a1baa06edd54b3ce285a2d8ad51392b255a6e11aaae3faa70ee8350deb9b5fbd2de72eba7000f506952c66ba9f10df0e9ca60ec8e43eb09b33b8a9b52535e8249995809b19a4b38d541c463e78cc4d44e395ab73fa5abf9554a81649d2328dd22fd5a012c31f
+6b7454c394a7597a562eddd0cb1aa0c1baa9419aaf0ad5a84a7fd00c4903857eaf297a43edfaa350b5eef67f1373f59ab234584f6bb9d6ea29251ae61b272953b355a5dfd82ada1d95cba987baade7d4aa57f4bc5e323cd4a52755a83fab4b695aaa2f3452d25e0dd59b9aa4ed2a55895ed1eb7dddc44e6ed34d3673fce0d976
+c0c2cd46532e5218cf810855c05b29e63093bb01c034d728796381642cf228e57c9867152a5516e1221a88c102761b10eac103e431d1d6d5b0c5afc45e22259b195880138b3546fa86bf00d3580de44576ab8d95dca38b66765265ee557281ad400363c3d2bb56ba1911446bc2db7126029009b8590e34b0c680ac265b2b0a71
+ab9c157cc92c3028ee24185e5215824e0852803e6419252cecd5352f426ca3947dc00d03329792cf74d3340972ab821c3a996bfa510fd801146001a30c579ed9c3ab1a59649c9bc3c53eacda25e603f38043b881af68e52037292337d8ad366e504c12301ba8013248038e9950f599ffaa5d6433ef91cc250ac934002dddfe13
+91ed43e35011d0453d75e450008671d86ea590ca1cc34edb80efd80ca4f9297e8f58637ed09d854c013c2431cfdcd912d4b70b679f506cb892078ba35864b1883a0302e5cddcf56ca68905361d5c0d7c6ecb7c0469d9297e2bf200a8600c370107298c35746e8951bd7bb6ad38cdce5c346c710dd5e6dc0bdc3871126d9a53fb
+cd2b3b82b6cfa729d78691dd3d06b18e3057d3d8008c6674af5bf988ab7858cf1912b9e9eb4d9590c822dc86e837718a8d216aabf7410770922924520fdce582fd59bd517d96b1ca20d104d313581fc1ad6ed6023bf9866af347138172af5b29c4931440dceed0114087017298ccb77e7c6701cd786ce7db19c9972ca016a823
+9a66c0492cedc4303342565b88871672384806f768652ef03dadc84311957c04e4006771f200b888d3efe1496cb5af37309edb4cf1d37f1c013dce023c401973d868c2c0055801c4f291d570c2461b1ef2b9c63dc6f35fe42681c56ca29d73c07676710ed81212b057882293bf534c89cdd616938a05dc35f9ff6f3402097627
+7ea779f27d6a8218efa3bab9d310701790cc431270708c0110ab9f097dac6d8ab70bf8577a59bf085bda472b5bcfcaadf9fa899ab556d26cadd6604529df0f7f34eb294d91344f4fe8e73aabe7b54a157a21e4d73a95a5054ad0300dd4626dd7abfa955a542ec14ada4830c1e9952bee71df9e8d082c32938053bc0d64b28526
+461af16a6448b2b5780f07106b52ce1744914e7a0023874a8a81af39cf0edc9c650b1fb1950e0415eca33384fbf6840aca4c564a37c7ff016fd1c23f98462b70d96f0c002e995f8961852d972d0ed8ce242c8e1b657215f03eb1bed10bef50ca0e1a6902d6b18746e0d31ee460ef11f0ea94696648060afdcef1f480effe1094
+f1ddc4708e43fc007898085c338301b1c05a2a29f165f9642c36014901624c5cc454186f077e96012c798c238eb941a7d3c512e6f10185f69ded26547ce2ec6160232770e1a096fbd4fadcea001e12677257b5993a21400b09b553cc20c1881cb138cc319f608acf713f2212de96731f6fbf7037104d079f506630887c52c77e
+ca58410b278165b84d091ad56bc9ed249652bcc33a93ed55b81b205587b3641af1d0c118ae1ad9ee2d5aa80ec65bb9b859c741ae526e6693aa8c56541fd12d8bb94608f5c54e3c1d388823dea0fe70363aa06df157208aa374daf1ec874e17914a1dd9784c76de03d460e122aa9715bb0078d8cd7816104b7bd0a747024e2714
+f0817da253cd8e4ce000969fea1580e5bf2593937c0ebc0e78580794e3066a18db2b1c86ebf6a4426803c0178fe30c40f7756d6e51411331b802785410f3e92009a8a0922a132919808be5402793391dc13167d0f857b0dbd16499eb4da470ca7086682e713d442f0cc313a370e1e26d603f19403345fccb102b68238aec7ea9
+2fb77987d540171ea0d24c4d8d00f651c65e6accdc542f6e790fc035b228a59d6ab3319d149b8ce63428751be398cd9590beb897a69d268e583362e2054b6e53943dbc017c462a5369321a6b1fddf2a6c9784ed0450eb0ce7efc340e560057f88c061a68f5dba6408c708b5d86157ad9e177c0245a81452c219e991ceef1ddbd
+28361f6351cb161c1400b58cb133cb1d96015954b307a8279f6eae03053611cda681cbb4e101d611870b18c901e02ceff680bffae896d736b394897461f1a6e925fc877748b7f57b0b68a11b28f25bbb72a2184b39e0662a1b580a447335ace61071c629b2352857b7f453a52849c3f5aa8ee945bdab21618713519536698846
+69888eea399568b6f62a517d161f1f47d96ce5df3898054ca08b0ebaf9139fe2e130f5c039da89c14d3a1631aceca54afcdfab15c95c1aa41a3da96734484f8719e8ecaffd8f98f38eb3b23af3f89722608d6e568d46dd9435bababaae6b4ccc276653d468fcc4024140040491224540aa285d18a50ca82010080a4a13512921
+088a807404a923458ac0286d98deeffdee1ff7cce5de616640349f3d7fcd67e6de779ef77d9f73cef3fccaf98ec2aa4c5f7ab6a3e6d97f359bf7a9c9dd7c4529e7b38e6b788b511c62318fb08fcbb8f25b8455fd9b7f258ff534a580fddccb4cbe4f848b29269d5bb880cd5c4943603c57d286beecac80e8f9ce5f62218bf835
+abf837f6723719f4e51aae6101b7b1916bc9a7909fb19b965c400dae60186d49a50fabc8e6de7f5658b9bc4a6b46d296313ccb7a4673134df961c827892035e3d975902564508b5a5c443d5e663bff4983aae9946f1e96bc48276a508dddac641b8f7313709ca11451c865dccad55c8a1c641997b08e1f701ecdb90248e7358e
+f20b7673357f607a059cd35987b5885b58ce03bcca175cc6f3c86ba4713fbfac50b375f2e9becb667ec033c0023e228562da702e8ff3cb6fbf9c96bacd12d798e5e3ee56b7db2a8869cafa9a1d6a7b330392f7b16f7a441396d035f674bffaae29f6f40d3bf9c96991afd3ec895b4cf11537f9ba2fa86b6d122f6b3706ade734
+333cee2ef51547a92fb8d74fddef54f5ef46c20d1cf001f7a87d1dee0eb7599c00b57ce3b006dacf764ef529a3165a2fd8370a5da16e71ba3bdde344f5d950bd7f6cbed996f8ac3ad7357ee444f5cda0b2490f1d4137a739c1a395b41ea70dab9f836d6367fbaadd839279a3bad78d6a7737b8d2bc4a39c33c53d5514e0bbcf7
+3e87aab31daff635cfcdbe147c2ddf20ac5237d8db8e76f3847a5f28fe970479a749054c869b9deccbb6b397131de7c204e03fea527588f946fd3a5ca59ebadfee663bcf07be59583d9ce02c1f37cb0d810258eee8d06e44833ea3d0377cc8f6fecd251687fabcd402f35ced609f7454686133d4275d1fd822d516e65b62ba03
+ccf3bd330feb133739da778cba206e0bc85087c711c0fdb6f789242d43c5dd6303df0c011fb1442df6030fa8bd3d6ac4c92e70600245506558af3bd6632eb5c4edf1a0629cc35fc33f6b5eaef3292a27ff4d6638fa24c8bd276810b22d75a3dac81297c521822ac2da6fae3b1de61ef7d927a8d2f243126bd4f60e3e0583e81c
+b2ae723cb971c8c5a1465dae7ea0bee9510b6ce3d77e9d80e65412d63aa7fb992bcc0f50504c8ebf2260a08d4f214ef26d68c48981bcaa7c2cb5838501bc3d68b18703e4b6caeeeac824d5f12961f537ea42bb04b0c280fb6d305f4d8d5327e55bfc0e719347d52c5a73f7a83966aa6fb93f006def99e18972b45d5258696a07
+5f08649a7e98b02a35890b724e55436c55bf7268856d6cf2e819a4fdfdfd2434b64fa8cd5de6d37153da2961b5b6a3f96e76ae3b837e293f58dfea9f86c69c6d6747fa6215a97f921e58a6f676b75a6cd41cb7ab77fbf7048b5e52581f981d944f8d03c99215e8dbbe2e2da7032c2fc86a1f90d4e7cee089750ab0d2a7eef0d9
+30c7c7b9da1171335f5258dd9d6f9659f6b4441d6a891127ab930289194d02d792f7ce8f02a2d8fe8c9aad069618f53367aac70204d7cc12b3128c7494e105252e77803a26d0c16beda99e4898634793149665e4c86c4739c0a8f3025837fa0c027b305efa2c553798e95cd3cd4890c686b0669862bebb4c31a2469ce36ef7ab
+7593b082f949acfe14bbdad11ee6dacb214e0fe0f6b433082bc7fe6ad414a36e0f38d79f2d322b9e9d41ca97ed105b05b5c227f155e4ed5398d62e093f7f1042ceb79d2bd443360eb6cfd3d3c283c2ce1a71bebacd5c87b9d554fb2786b5c2675de352175b1400c4be468d54883397072b77799f85ea1c9f0c097fd8e6a7c163
+ca40dda81f8569d552fd8b91f84684ea26d33c1ef88722d3c245c79a56e1051b27014d4d0294d9db763eaeaeb06d924bb2b2f19269464d0f22bca1ea188b3c14ca01b4c035ceb4ad3133eeb438e2f7508559a1d104a4331208bce6ea567bfa7480b6a3a7dd8e629ac1024bd56916bbd60d66b935e83dabc332fe879ff07356f0
+10f06b56339f7f671bcd2b68485ee643aad183c5094d797d8af81b702399d46236708c3fd39189a7696ecea1983a6ca51bc7388711dcc21a2833d2e8588fd8cf429b9aa807ed58417ea4077647e727809379f16cf96ba8d7ea5b6aaadd2bc1454f5e6d7202c3f48c7aaf3dc2a441a739d9cda1f69c674690e234ae30ab62cb47
+bee5bdce393e18b262ac8f1a55736c5581dab7bccc488b7dd5391e74b7479de55c27995946a1f7f1d9b055474df70523e638e594a7b5d031e63bd6fac176f758c2df3a1b35e2119bbb3c3cb146e6aa2bab4cffc116bb435de9744b7ccf2d665bea7495a83d1ce854733ca28e758f7bcd7271c24b2a2be65ef5195b2749365a24
+55545d7d2d7c6b5908f96f4e09d548c5639efb827224c600e5bac7f9ae56ab177184283f663ddf035af3638e70118b92305138cef39ce045c686567d15ed89328197e22691dd647294f381762c630ad08a03dccf39b4ac34e9ffc034e03a524805cee57cdee72e360135f73194ef93c174fe1798493572b9bd9c2073377d488d
+e32ddb9947845ba90ed4e32baea080082d68c06076329107f823d097ffa21d7031191ce4aa0ac3aac35ee02b7ec56f28a416b08c96dc0a54cfe47c3690cd5754a3942b79989bcba1712b19cc5b21a83d3cc51cee60172d00f829339073690c9c4f5bdee16afe88b4e3420e721c7881915cc5a14a9ed701e0517e03d4210adcc4
+10c602ac316a8784dd2e728ae4a26c121ff33953cdb4d4bbe3bfcf4b228f63674114fb8007d5277d2ab0fae3127c30a7cec5d4a0fbeaa9f672b8cfa835f3e9cd954001b09c3bd9431a7f8e99e04fa24d14319ecfb88e4d7c8f7b98034001e3a9464726d19a71c0623e26850f98c6042e05c6338d3a40170a123412c9e322a013
+f9d4067e07e412212ff6b68e93019c0714b3830bc800ae280f83710713e9ca55b4e32eea00ab799d8d7404601c0f01773108b887ea0c0f96b946c813dcc46b3ccfc334ac04518e509352e04ba03a83680d54bf948b29229b3ce00f5cc70f68061497fb7a2d6e03aa732bd21d789bcf58472a90cf13c02c862588eeb382fe249f
+2e5cc32a1ea60db39956415899c8874ca51fa5ec023239871140cd6c3a720907c3a11613b88d5adc90e41b3b39f299c26ce0258ef238512ee15d663305a8c92fd8c5b5e1732f9206eca3075369c6c460e3cfe76d7e15ff4cd9ed56e31ec430c92ee4183f02aaff92fe6453cc7f00b9b4e416964039797ed918c554e0112e6728
+a93c45b7e0515dc71aee6476dced7811bf60166d98c6587e446d204a673af139eff379d2150f0179ac647c38b6a03633c9046ae6d39e11dcc06d44b98051d4a01d904bb402c8be1759b46700d733900769c2750c055e673db9dc4e0f9a241869d3f907457ccc0ce000ed7889eb81366ce6fa842b9e07cc042e098b526dbee006
+80885bdcea5a4be24c616c2bf9b292299da516d8c9a783d6f6699f32e2ab41d293dcb63575a3fa8e0f872526622f8b12aa86123b07f5e931b59db936b59f6fa8d5ab0397b1809ac177f565303b6ea8624a0f24939edc0934e65f194d75be0cb939337e3044ac1abb850266f34ec0ebab7115b5981cb74e6ee46e60232fb30079
+884d8ca40bb7c5eaad7916991614a719be150e8c6956e9069b17faa188f5e206f966a14ed28272546fa70405a1ea081bc5affebc0571806ab5a53e65ae87cd8c55a79fd39f5d6472337009bfe65aa2c0cf29ace4799dc73b54e3300ff21ab703d28adf7001d08105d4e12764247dfa103036b85de4474ca501f501d8441d26d1
+92834419450d6a92455bbe177b5a87ccb3c8ae9604ce3e1a90aeb7ab44fafa0698a3d07a019e7bc066760d96ae932dd973be616f9f4b105fd40d5bd27e4705a1deb1d0deb4f058289cd0a82b9de1737105528e5dccb1ece8a2ca2bcb216ef34debbb592df4f7ae575bd9c04880884e82bef9155ea17df87dd4a859ae748ec75c
+161417c4e2d6be16d8c7a8c72d0ea29f25e5b2a2fce868abe00f5d67ab600cccb74978daa713bf44eca2163ac6230eb58bfa84f9ae3959cbeb2a75902996b8561de25e1f31a267d054c56ad0faaeb38fe3cbb5b855cbd206bacf9863f61f0195d8608ef72463101fb9caadc6acb799ce0a70e2864a70e0641dd633e1df340c3d
+d0b270284846158440d487d47116d95a5d6ab6034cb5345e9287b0faaa231c6fa69bd5a8238db8ca8a0ebd491e631d1c7fd565191453369f506757aa2fec6089313344d922fc7757db27bed05256c0159a6643f54f1a90df37d49c2a156bb11b1a183748c4389d05be6e5beb995ba98c6f8383d5823083b7b9df0f6d6e71421a
+c461b731ea7a6706ebf06827a89faabbab144bc7eef5a4c7f25307f9177b25488b7f570156ff88bac4c50e3345bd5f7ddd016e4ac09b3909cd7675a4dd3c79b8d7a8503c77ad006e4b6688226aba3d6c68af72e774a9de7bca6d141a334617aa4f5ae2309b1a4d22f31220ddb9cef155538c595d6259b12acca99c2a03cbf73e
+ebbbc60315cedd4428256add70ad4cdfb5b7a58e306a2323ee4832ef27e1f2dddce7114f78d8d1ea4af769b887ae6eae32b0a200ca6dab4407f75e5cb276dcb2a3dbcac4650d5cebf272479990dccee7986d3d7578b8a7412ef21fa1315f789a1c5b54c5f4f85a2df641b3d4a3be1594bbad8c3ac1fe1e0e8edb4ac9957ee6ba
+de916a5d8bd552f3d454a7a833938c0e15c912ab12f92cf4ee381ef1988b2c75b85966badcc3363f05f73f85219b6cb60ded6699aa3be26aa78713c14a7dccb955a47e65a3c466c1fc3724bef5cc75a71167d9d6820ae63aa7e27d9f9be74487a97f34a2f60f7bfc4aa3ea749b5678f44ee5ebf92bdee7f1b0f3961dedb0da85
+e18d6454d8da564073ae7593038d3a4c7dd892b07e0f886b94a34eb2a5f3ce00b62d70928ffa797c298841c025be6faa7abf471c56c159559592c24b2c32ea7c7baa754d3776acc290202933085a5bd8d077cdac20bc128fdacfbfd82f6161e915e028eded68b5a5bd4d776525607925aa9119147335ff4d37c6338d2d0c060e
+721545a4f14942bdfe050bf98c139c476da00e59885ccecdd4e75c209fda346732c3799a235c49091d48e1423a7139196433b632a556652f60855fd9df745b1a35ea9fe2cfa48dc34c57fbdb4b9356b368b995ecb0abe34be404df55e799a2aeb4a343025c7e16f28c2c33cc738c8f3a5f9dedf3099542a95b028e976e1fc719
+f5258bfcd48f03e5ab39ee708d53e282d8521b99af76b0c817ec1e08aeb312b394dac1bd6aff40019c34afedf284391eb687bad15437aba52e729b6536931c4739c998a5e298f59cad7e648afb1dee11277c1b8d4daca2ea6c1fc75b3fa4fc485bc6ad49137dcb5275b4efabf94e70bf310bc5c9173bc1c7dcac66d8d935a6db
+d62cb77f174aca6c9ee15a5ab0931914319a1a94d0831c1af1fb00799c077ccc6f29222bee0eca640cebf931c3810fd9cc1a5248e3087be8ffdda9dde6f12fdc41236ee418577382fed444a6b0881a5cc4cdc00fb9941d64718cfdd4e62aea732d5040072ee23e72f8293731933bf9e177ad0d9cc31c7e462eb75097594ce77a
+3af1fd045d2e0902cfe32c63135b788406d463169f90c9b9dcf5cfd29deee5454630874780555cce0c9a3092baa4b19d8b394e1117f2057fa2319db89ec7b88cf54ce55c3a9ca957ffecc5c3a57eea68379aea092779c0e75c6cc481ea2c7739ca5d1ef680832c70a5bd120ea3fa26e32ce4b035b8955b811bd9ca513248e746
+06508f3c16f321bfa28457b89dfa94720777fc7f8a874ba9460969dc402d0ac3a968df6efc1f77f71d676579f48fffbd8de6d2410495800dd1d835e6d1682c796289c1821a2c608915410514450d0a28208a4814c516d1d81bd648402c21a858419022bd4a59da2edb77cf7cffd83bc7a51735cfebf79bbff6b5e79cfbdc67ee
+eb9a996be6339ff90931cddb8f814ec950ae549922cb65c892af54a9561a98a5915ccdf09d96ea4ac996f513a2a6ff4b90e61d974a85c69a6e9ace9e4c72c49f0a63b4344b03351caba1b0bfcf1c63b45cabf4729091e6cb5066990efe6ea91bdde02bebac11ffff52d632d3ddeb033dbd23cb75f6d7c4ed5afa4c57eb2c3549
+7db92e35412b35dc22d35c2b8dd5ce27e6dbdd10332db6a7056a99ed77ce54d3f19a38d457c22ce77bc95ce3acfd2f28eb67da86619625328dd3cb47ee76843ed699e6979ed6510d5f1aa9584a0dcdac71923d3591a79e6c651a0a84c042b564face7205e64949f94e7b8bfd41a169ce30c01d06ca7693a78c52cfaf9df4a37a
+07feabcaaa344399ddfc4b1b7b1aef9f6ae9e3791fdb57b1d5563adf616aa6693a4bad966fa9e9e62951acc44eeaa990af421d656a0b8dfd5a2dad34af16f3afb1cc5453d4b787936519e91b4dd59063a5c9ce94658d0e3fa69be3e755d63a138d325f57fba954a4b71bede373cf2977bea340ca52a37c6995fa9a68e418add5
+92a9d656ac41a850a450ca68efd9598e94bdfc41cba48f67b1c9c65baaae5235f4d2dc68c77bd118c7b9703d86edff6365559aabdcb3a6bb47030d4cb446ae471dadadfdd4c50a8f9baf4473a73a58dd2da83b57a9428d2c35c751586ba11cb99a6f5299f9a69860a60aad5dae098a4df6b6a6fea48977bdadb9a696696085d3
+1db64d8cb13fa3b2cadda3a5d32dd1c66c4576718b321d9d2843ca784f2a72a80e76dfc0e59729d018e3d4f42bd38c7799778c73b306babb518e975d2de56edd9375315e737b4879cc256a986f9dfd37e8f179c2071abbc1de2832d644f3eca1d84a3b39cb51f2bdef20adff2f9455e443e3ac535fa5631d2ebc67b24eda62a5
+07cc73b4b3abd1a35749815b1ce35c3c6717b57caed8cd52deb2d419ea79235df57f467b358c73ac940c595eb5ccc93e57e97c15ee72bdfa9618ed62e42bd022791cdf7bc06c87eb6c272cf39969ae15566869acbada7a44a7cd5049fc2cca2a3742813ad6aaadd85a2b55eae2608c37541d173b36bd6dcabca6b103bd693f47
+9b6ab5a35ca79bddfd433bbc678db38dd1c8614281bae9e6aa0ce12319566be9201f39468eb156e8a09babede37b4fbac512afeb8ccf7d9d601b4ad4c278cf68a1935f6096bb6468a38762b3f08625baaf5728ff999435d5cb4ae42a96a54cbe4c27fb03def798ba6eb04fda92fddb441768e23b5f3ac6286768629117f49061
+b9390e516313f1784a2843a51cd932c4262c4d55f7e30b0eb6afbb5c27178bbdafa367d4d3ce784d1246d49506a8a9bbc6c2e3a6eb67b4f73ca0dc6a63ecb9dda7b1ed50d6228b1d69b51156285028d7e08465b286bfa4a39bd5b2d453ea61d72401c20ce3123c59f52c4081e50a7d214f9ea9ea6ba450530d64a8a3a156e62a
+b046895215ca54aaafa5ddedaf89dc6ae63ebc64b6da7e6f7fa3ed2a65a50fb5a8c6e0c23403fd4a67195618ea5a15c65ba3a6f3fd4385b37e7a651579db01de32cb9d4a5def703dd430c9eddaeb987ed7274a1c2ff475aa230c71a656eb29a9529e093eb04cb646f676a8d61a6e72856dce002cb5c04c33853d1cae95fae9cf
+ce335a27b5bc244bfbb42a97a9af36526e37c363eacbf7a0591e50a4bdbfd9cd9fdde8e09f321bd225de8e8a783aca6261748821511a115fc439d5b85cff837af90f5fdcfb313f223d94a23266c4f0e81297c5233131cd01fee3a422be8e7e714d5c1c77c6ac74ca71791afd5f190fc6c488a88cfbd3bd86c3e3dc24797947bc
+1b65d13d2e8b8a8878601bef69ab2beb63df6baf424fadfdc630033435cd5fede1061928f7b15c0727b6a5c8703babebb7496fe71aaf1b2bc7a1cede424eabc86bc6d93f41cb6dafa48cf386350e7251b58ed267d5771a2a0d709dba56689aa40b871aea972a5da3935f7a52a570b4c92effb12bebf1e814afc6e2181579d123
+a644c4dae81a37a49fe4847485a06883925851dc17ede29a0db86737b5420644a7b8321646c45f1326a21d93b5d13b3ac6f034f9c6c478331e4f37becd898bd228a4bbe2fc288e88f9d12e46464471cc89a2e8be1133e376e4e117c7c7b13ae6442af2a2630c8d2a1e87aeeb3515e545f7a418f551fab6d6c5a37146745a8f48
+6c733233ce8ff71340d99fa2db265846b65756c55fe28f71739afbb20a3bf09f5e8fd5f165a2d84b92416a63e3c4b8247ac7f711b128cd6fb49dca7a3b0ae299e81663a332de880f23624e9c55ad97f40759168362680211591203a2cf16596436967571655c106fa61f42ea27b06833a35b5c9c1447d625366b555c1b7323e2
+c3a4be3a218e4b7880ee8a9531393e8eb93122866ce1fb3763b39e7598d775b5dc837672874cbdccf1b8baa8f08483d5f72fbf4b53afc27c4314eae0c41d4eebbc6982a50e91a9d4753ffa2c57a9af29ba3b1adc665f172af2b87d9c98ce7af457a22f5ef191461ad8cb58597a69b2ada143b9bebadad9479e50db5e6e9472a5
+83d205d6971d94049fdf9997cc74ca77b365066b65b582241bb07d467a844f71b9c3bdeb4d17fb54b15e3f41caa8a7a52e702ad6196195ae1a5ae321f37576102a0c728dfaf25ce328fb98628502d756cdffda9a814fc58df15c14c5df6375cc8fbb23626d9c96069e54417a56c48df15cbc10f7242dc8b7c7e9f164fa0a83e3
+d2ed0c0f0aa37f5cb55e45f1dee81a43a2c756ddc3b6c88cb82cae4d6c582afac427b130fa462a56253cf3c571518c8e88e5d13d7ac595312252317793ae662365bd1edf47c4bae817e7c4d88898191724a892543c1af9313bbac5f3d528da3e8e6ba2d70674c31571639abf6a5be4fbe81577c4adc9f7ac8ac17151ba2128b5
+4d0cae5b937f46c71818a988288f9b624eba61e2c3782f22527175dc1f1125f1e7782186c775911f4b368135dc601bbe67a43e6acb57e033175aa8a74176072bbcee7b6d9da3d8cb2e9429e56effd2639385ca6f0c4b12269b8bad961967a942f3ed265391e6723433459e0e8e9581f0ba0f2c73c97693a56c6aa3df66853e5a
+90e0d84b0cf53f6afbc4b5b85e53b72a76b34e66fb5467cbac75eae6b7e1b49817eb2215af44fb783e225646a7248e5a1b8392382a152393f1870571599cbe45268e817175bac3adba8c8c33e38ab8339e8d49695ccb9a181ad7c6d5e9cd58102fc73971e6563aecb74f3e8f4b12f04e710cda08ce794d3c18118ba35794c6ca
+f82c26c7871b6cc66acaca8feb62429446417c1d37464469744918864ba27f7c12cfc5b06aadc4cbe3b2b87dab6ebe24aedc88642036d157dc2bce8eabd240ab397145f48821ebc54aabe381c4e5ff18591b97c6ed69a39117b7c483f165bc16df47442abac5ab11b1281e8af1d12b5e89d5f1e27a3d737e30b263626c7c17c5
+f1d738335644c48d9b187c964a18e2e6c5456972b6adc937092bf2a6b1651f47f7382f9e48c7ff2fc7157159748fae49f81811312b8647c7b87103f6c31d55d71571535444c4da3472a6246e897511511a9d626c447c1f9da37bac8a59f1f27a2b3badac17e3aa58142fc4a298162323e2bde896fc80f7e3d928888825d5883c
+2e8a1edb6578876d10f9ff80373c2b3d50b82806c569715ecc8f8ab83ebac475716d2c89f1d1233ac573d59a47f27ea4ba16c6b549eb677ef48a8792e6eaa551101193e392288f88bfc694f83cae8b0be2b458b8a1b2a6c7bb511ed3a2389e8a4b23a224ce4ba86153d5a07f2f24f3cbfe1c376ce3688b37d3e3754ba3639a9f
+7663991edde3cce85ecdc27d11d7c4b5d121aea84637511abde20fd13dfa6dd2126e8fed3a7d033efdf21815fd2215117746e7885819e7c5f4842a6570fab766dd71471533d453eaf82546bb4e7d7fd146fb843beb78353d61b4c93a6886a72c765b550fc956e4ef5e92eb3419c872a6067a3b54bd8dde37cb5df6745fb5b17f
+1f7854be03dde58c24933f476f4fd8cd81963ac8bbfee9f81d463eb450c307da6884091e534b136ded65bcbd1d6c943db5b446be4c2f9a294fddff60a5aa0e9acba322de8ffc783f7a45c4ba383f81de7e1193a3aa717e4d42c4b2382eda26c44e710c8bcee9616a3fc880e8bcc50d5c164fc50dd1b11ae0b7323e88cbe2f418
+9a7c2e15774697e81a7fda6ccfd8b6e07087c6edeb85cea9581edf4665443c10172727c6efa234f2a33c3e4c4c487655c2f81ebd1dafd25c9df0843f3812ac32d72bda2835c2d908c3ecb499c938d525cf4b66e8a22dca4df7be717673af6c375be38ffea0f3263e35cd7d4aeded966435a57ce4df8a95ba2d3df67b9a97ccd4
+4a9fe4ecb8637c84192e70bbd775c027de778d975cae96514e75b96f7ce170addc620f3535335b53fb25dda56669ea798d94cab1af4acbd389d9ff4d5ffebae43498ef3a195b197239cb5738c83c7fb5443d4d1ce5b17461ac81774c72b9411b95cada1a26478689063ac272e3d5d0cd81e933eb682fa8e104bd93b4e347f2cc
+d47c0b1de39b9746f6f6b553d477847fc857d3a51ab81a35d532c6e18ef4a59bd5b0caf264fa66464499413234b448a9df39c57c4fb84d0de4fb44864532cc76b876323ca824c9906e4e4a8db4c40cabede938bfdec8b6e5cb4a1aeb6fb2dce31b29fd6913eca4b1797e931eae4a91818ab4706ed2afbeca0be6aaaf81354acd
+d367bdfcc7b6c97cfd9ce3a4f5ea9af3b496eb13cff8ab4c17d95b2d4bec639d6bd594cd2acbed6f2febccd61233d3eb66b93a9a3a4aae7f3b40a63516d8630baa9ae5592b64ba3c3dffb7faf9ff5d5f28d0c4d73a3b0e772bd249e72485c232bdad71b261b84b0b9f1ae561b9a6b84781d35c927cf304cfa9adbedeea62b47b
+1c61a479fa6eb452b72cbb6bed7d27ca36c513067bc531f6d7471f877ac6322d1cef1b7de47ade3732901d562877a82c17fb4c3d7c6cd744597b25a4fde532d5c712659bc95685f77c6a8526065703625475434ff7b619eaf9953265967b4aed741fe7b3be748bbeb2d1ccf0f483b8d5026f5aed7dcbcc719fc6c9ff5f37d241
+5a98ab73829af8bddf1be26b0f6ec2cb6e0d9a768cfbcdd6461bb938d15ccd1da75c4d7cab855f9aafae02472af0ad436453a858be1395f9d449c29a044710a69b66adfd4d4ee622cdb636fd43d79762e31d5dcdc255adcb672cb0dc5e7eeb06957a2b72894337f8e4610e75955c83d74316d35217b33d22db991aa3ccbdbe93
+728f26fe22d343eab82199a2db2dc1903eee1d7fde06f7f31fd9576b8bb591e36a1334b0b337349483b6e6a1b1655eb4d662e57e8becb5161baabe520bd59623a522a9c32cc759be3754cd24cea8a372339bb08e3baaada7cfbda0405bf5ec63a05a426f73b43050ad6af0d8974cd4504f591eb1da79ba26c0a4aa6b2c34c222
+b7fa05a6784491dfbb2959f1fd7d63a05c6f393bf9cf328f5b28dfed551dd7db2875ac4c7ac45b6861b5b1ce4e5ec9361b8d659aaf403e5621bbae5ddca08efabe75302a1425d5e559b230c7406bbcad3da6da6d2b20edb11e52db5eba6aed6d63b4d25f2b9ffbcecdd5d6dd34a3d4b5c8eeae4a7e6c43cf1beb3c8f269b6b8d
+91bacb05930d51cfeea63825bdd50e4c8f21e5334f99e7000fca1666f8d01aedecbb0d21456d7b58296498e23d3996fbd64eae9323533e72d453ac862cb3ad4576a6ba32d4b69f95be51aa865ae6698d434c33c92e3e36db71a089792ab688a73bb19a4d3bcd4986ab6d9cbd3c94bef511bed4545393123c4d5535b9be864e74
+82ee5618215bc324548103fccdbb5eb59fc7d4744d3525547acab7d6dadf8356b9c757ca9daf81af4db7f736e0fe322cd640067675a15c356524715bb67a28354b733ded66913c6467a8619d02dfabab8d0a35e524cc26751c66b1afad764492fedb45657a0af3b639e7c5f2f44cf2d9a51e36dea97a7ad254ed930730d11bf2
+edaaab1c198658aebd6ec96b3fc8294e7687a56a784bbbc4cddf6b92e39c6e962f9c6b1797a673f67fdac6fb2bb353929e6c28547ad509899abe7620fe6d0fbdd4c43ac55541693d173949ca371eb6481b4d130691420fe9ee3484e79ca5963d64f96e2313bdb91be9639136ee4a36f3fd56dbdbf3b8c93a3ded69ad978c9661
+68c2ef1216dbd5cedef09ab38cd8c0bb65e8a34c8e0c7cee096b35f78a4cd75be2dcf41aad52e3281fcb93a3be1207ba72b320cc7c6b92d3e802efcaf28555f64e9c591d14d9470d9526794ee72a6535d156899a0e769ef9da382921c4d84973931caccc6b32d44233b57cbb8dcaaae1564bed81919e57ec0a7fc432bdecea1e
+f9aeb0c4be1e4f07adfff40f056aba4b23673953173ba5f99e7eb82613f557d7413acb36cd60295dfd36ada6474c53ee243dec66adbbb1d02beba9b2baac52997cb6a54badd421b192058a1c85d5de3355a1862a34af525686f72d72b032bf3613ad8d94af1e2e44b91ace4f2e5e531d1fe890ce0d6ccdd7ec6181eb35f36882
+4118ef690d94bbc43aed744aac4fb9013ef72b7bfa5a53b7e8e038198659e61cb7396883ab1eecc5e473834c95ebf604c3f085fb6439d0d0e40753dfadfafb7e0bdd55a365d805934c76a15d30ccfe8e3341a95f08dfd94f4a038b1cae4695b2b2d573995cb9f840b146324c4dd36fe76c70fc7cd60cbfdc66abd5d26be9bfc7
+7bd5be96287063fa0ad30c35cf019e511f6bfcdd222f38580334f3b227dce2850d40bb19287687d5f672ab0cccd75bb9ffd1653d0f38ce7deae89afc92a7e4e9bedeebcb4d74845a68ea3bc56a63373be36bbf93699142d91a5aa022d94d1911bce363c77b536bab1ca19dcfbce50e59491de4758db5b1c8a148f98b251eda4c
+68baa56af35fcd50a9999ec9930f6f1a63a513aaa1574adc6ab9d3d3d14e95f4d44c8f4d546ba6692b138ffbc83e6e4a8f63def8bbff668c9ace748a8c6aef7ad6eb06a70bc261a562bbc9b05c17f76ae93617a8a3affbcd95fd43d6e158131cef38ebbc650e7ee515131c854c2b65fad642bb0919325d6d80f1dbd1a5f79fd5
+f04b257a264f769da13e535f9ff5d0c3133cada0da9178aacf5da48a92ea523754d121553bac549d33de35c7c12e4c2ba1743ddc7bb8cd97da18aa99675c61b58e092dce2a1ff91f2df1a9517e638a39ae9781e734d452a155ee77a23bfccd6277572fdf7fa6b75ddd6a0f03ede32c53fcdd00992896ed019daa55ff5ff26f37
+6d639fe5a6c2894196dacfadd5a2f9f0ac51c231ae4afe33c62b1aabeb5bdd932df0a677dcbf8915fd8517eda340a54c6b2c92e9c18dde151e345d4da7a403e372d75be101cd947ace4589bf7c5c0759ce778fbd0c53df1f5ce5762dcc4bb08189b20a7ce368f97231c0959a18ac68838906298bb4902ddc6eaec777a87361b5
+9beda48942d7278679b17bcc53c7b5896d2971b7390a9dad891734b350aec16a23f4d070135316f23d2ecb2ab51ce084e4b4b8e1039ae9c4f5ecd50bfee9aa24c19952a28e6f3caabb3d74b59b9b94b8521bcb1caba1f7dd9104b8e98af4228fcab28f73bce233f72977b576da61ad8735b3d6bfdc9f6e00b94389019bb5125b
+96d906ab2bc36a85f2d5f6bf2e490e3d730db0d69e6e4a0714fdadc6323d12afb8c8e56e4b27757654bed3d7513ae36befe8a2014a2dd1da07861ba14c1f3dcc94e9581fa9ed571ba368267acde56ab9d93a3d1de60bf77924f14483b4768642eba4ec2e43913e52fa6f6310b1a9e2fd0aa14e1abe1f5ef3aa9426ea5a664fb7
+a4d7c144058e4199bce4cc3ac2fb866da1ad656b32cb8d8eaf06c90c33bd6595bb143bd7954ef39c892eb1d4eb5a38bb1a9b5e3565adf39835eadacd815e769e7d3c6d8c279325586c8ce5f673641a3d7aaf95fa6f4027ba23526290f9325de43778c9dbea29b2bf6ed522ef94878df6db24a99872b156faeed0b77deb36ffab
+331618a2a913fd4a86b79da8962bfc513bd3f437cc5b2638d3645755df3fd56b1e9fc69c5814aba36a42dcaa8818121da33222ca9292f7d3312c86c5c84845d540bb33d6e360da7ef9347a47d7e8540d1610511e97c78deb11a9af8debe2b40d6a4adf2423b8b64f26c61f1364e9ca181411cbe36fb120fa4569a4e2a2e81311
+2be2cf312ba6c51d313cae5eefbe36821c8d8fe1716d3c13112be2b2288d889ee9a9b693d25370d72693572346c61949d16c474b520fc7f53124ee4c687e374d4b747e5c13051151195363709c93706d44f48fabb7325b7d439e8af609d4637ecc888899d5a0539de3ce88288dcbe2b3581b17c5c2f82ae12eda024c72b2bd4c
+f337772bd3dd2372f4b4d6c3b2141aa59d0c934cd221ed75e6bb5b2d77efb0f5aa6a1aa9abd4327d371190fcd33b1ac8556cb24c4dedef377ea15e62d34a5cea379b2cab6d28cbf59369803ac218ebecea9f2adcaa264a5de948572b719d4b1d6cb431ca9d9044645b84497e2a3430d72835a5f491eb1f462685ab4a2939525e
+b34643f39c6b77e1296fe9ba515a657be40daf39db4969fb5066aecfcc92a7584aa6df38c2ded522b3eaf2a141fa396c8be787013e76b22e58ed313d64e14167a8af425d7f72b6f3ccd3d3292ef0ae6207f960138f609300dc3c7f432bb52d364f47fb9be3463d92b46f81a7759681320fbb46364af4f79dbee946a71d839be5
+99e9230be4c970843dfc4b9906499267cbd2cd42cf6d269479ceab9a1a902edcdeee7f1d8b020feae50bd71bec48b3dde60173dc673f854e4cb0b2dbd4bbb3c2dd1a0875b43351ae53ac75bd26ee49900875ecaa4172ca9ba0b59d31dd60196e49fa75762cfeb947236757d5510c3255eba4a0ba7559e3cf8ed375a34dfc9866
+fa6f50bd2cf78a792ed3547f333ca68661de73b025ae70984facde10f1b7b50e8bfcf8772c8f89313396c7d2b83b5211f1ef387d03733e3eae8ac9f17d4c4c4c6551748f33b74ae6b675298abed12bfa6fd33083ea1ef2e26a80a47fc439d1296943a888ca9819c3627e352cdfa2383971549de2e9c88b9e511893e2da2d40e6
+b6d0bb53e62e57996e8a16de51a68b5f2bd2596d43d540a9075de535ed1363ffbda50e41b1478cb3bb9b3662b8de5699e10985720ddc419ccc22bde5f9859bab398c7f19a896231ce46499c20d0a3c24db5bde74857faa27434b197eb7c903d336f5eecc89de51126f444544bc11b74441442c8cf6e9096525717f8230e917e3
+22e2a9340fe3b4e81267c7ed3b88a47a2e998cb6bd521003a37dfc3981dda5aaadcc85b12686251d226fc61f635a441447e7b82aa6442a5e8cbc78bddae0961de4d04ac5d0f8244644bb783e22ee4c38e93e8e93130ae82afebbab23a23cee4ed4fa037ce8f3b83a7e173d7f345a6feb32397ac6e9f18778763d9cebdce8be01
+267f4c9c9480a7ee8bfb6376cc8905d13d8645af6db8c76d6ace9ce949fde5b9d0192ef2945c17628c3b1de61e59a8f4aa850ef0fbe49c374e5b57a63fbfd0339628f40b9d7e64fffba63cf7233e51a9adf31d9600c2ef34de3d0e4887259fea2f03aff8bbf374c0d33e97a3bedb2d53e92b251b241c6d6b3bcaa6659c870d31
+cb40cfc871b1e6ee9365a16e1aba3f7d429ced494d74344bcb4d58ac52af7a4b8e4c8d9cec487577880a27e49be8433315ca75acf3ab9d4f0bf5d75d63e5e920f939dfea27d360e35ce9148cf0aa5d9ce02cb76869aa13b6b974b65d0de54fc871befbe569a9a3b5ba1b6257f9ba5ba063b5f6df55deaff6a4667bdd553ef6bb
+6ae6bac40cef5a6ab922f5b550c3be1adb573dd9b264a99429432847b93cb34c542adf2a799afaa5431d9936c4e5eed63a8127951be51fce5e0fbeb2d82d52fa698597bde8082dcc91e36a591e4c43027e726555754e2c72987aca5ded5e8d74d7de0958a49f75fa6e341e6086b74cf50bc73b22c9607eabdc41ebf9b94a254a
+adb6d412e5f22dd050a11c35656960273b394033e46cb412dfd5c891662ab33f9618ae2ffa38d099aa7824f25de357c837d0027b69e47b05f2ac75721250fbf9945505c318e878fb98ee54f96e93a7bebf68852f3c2ed3b9d58e3e2bd4f6a49d93a55ee6afbac972af3faa6da05f58a69f9d2c31359dcbdc32f031e523737530
+daf38ed1c5284756c3655558a4a54c2bf4b5ce658ec622c3652ad7505e0229e6d4edae226c43e8b079c98f115114efc60711b1242a62719c187726acd2653124ce8dc7369a6958156cbc1837c58288e81db3135ad5e1b124221e8bfcf8201e8f8801f155a4e2ae58130fc59488f82e0657bbc2a49810f3a34f8c8c886971697a
+f25855e2a56fb48b3f273cc485d12f4e8fd5b1286e8e61f1f7e81f17c79debf56d6c9ffc48e29ea9de7591c64698685ff5ccb05003a72427abe51ef5adc6ae49635a8a7dee6367db4bbe123b7b583bbb2af7a99437dc23a59b4b1c864fa51ce57b635da8dc9bceacb6050b15dad967d6254c9b292bbde05feaebec101958e201
+a59abb5eb92b0dd5c8127fd736c149eca8fc049450e12d1fcbd3ca6a4bd57285237de12379da3b44164a7c608c62b5ece134add2dbac48969a78dd577677813a9678d37ebed245b6a1f6b2c4a976c5130e74c47adf5aa0c8542fcb57c3298ed704291f7adb52a5ae729c6e4e71a8c69e37caaf5dbea5c8fcbfa7ac1f50572fc9
+d3c61566dbd764833456c74a39f67198431207bfc62cef9aafd06e4ed04c53a1e15633ea950aadb1dc6c5f592e537dc739d02e6a2555a7d72cd04a4739725dababe61668ab87b98ed265bb4bc2ff0565fde7f43fc2e1d67ac68156ab544724a8fa79ee54e16887689b564e582b4f99c9f2ac54a00265b255aa50578e4af534d3
+d4eeeadbad5af1adc457a659e34b87f98db18a7551e44e473b4573779bed10eb7e4235fd4ccafa612d7c6eaa99e669ee5ec314eaaeb75ea69be348df28f78203956ae500d31ca9999029479db43b5fab426d0bd592afc4d796c9574f9e653afbb51a3e9072a23c4d7ce23503641bae508e96dafd5cbc8f3ffba12d8ae3cd7833
+1e8ddfc72b911faf47c4c078369644697c1bd7c5ba9811953124be8af2981715d12fce8cc151142fc47bf14d3c1a110fc4f9f17c444c897363754c8a93a35b748fbf4579dc18f9312e2e88d1d12f9ef991cd4fff056fb8bdaea054bee95658e2773ef29a4b9ca544b66b0d52d342fb18e22a53b531df700f9924d7226d1568a4
+d07bce5166aee1f6b6b7058eb7e756f902ff3fb10db7557d258a65aa304f9e426bec6e9d9af22cd34a4d3956aa2d571dbbabafaeecff530edcff3700a657f3c44a855f710000000049454e44ae426082}
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 997e33d..28517ee 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -109,6 +109,7 @@ public:
     void testFdo52389();
     void testFdo49655();
     void testFdo52475();
+    void testFdo55493();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -161,6 +162,7 @@ public:
     CPPUNIT_TEST(testFdo52389);
     CPPUNIT_TEST(testFdo49655);
     CPPUNIT_TEST(testFdo52475);
+    CPPUNIT_TEST(testFdo55493);
 #endif
     CPPUNIT_TEST_SUITE_END();
 
@@ -852,6 +854,16 @@ void Test::testFdo52475()
     CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), getProperty<sal_Int32>(getRun(getParagraph(1), 3), "CharBackColor"));
 }
 
+void Test::testFdo55493()
+{
+    // The problem was that the width of the PNG was detected as 15,24cm, instead of 3.97cm
+    load("fdo55493.rtf");
+    uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+    uno::Reference<drawing::XShape> xShape(xDraws->getByIndex(0), uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(3969), xShape->getSize().Width);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index d56307f..d0d0b7f 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -653,7 +653,10 @@ int RTFDocumentImpl::resolvePict(bool bInline)
             Graphic aGraphic = GraphicObject(aURLBS.copy(RTL_CONSTASCII_LENGTH(aURLBegin))).GetTransformedGraphic();
             Size aSize(aGraphic.GetPrefSize());
             MapMode aMap(MAP_100TH_MM);
-            aSize = Application::GetDefaultDevice()->PixelToLogic( aSize, aMap );
+            if (aGraphic.GetPrefMapMode().GetMapUnit() == MAP_PIXEL)
+                aSize = Application::GetDefaultDevice()->PixelToLogic(aSize, aMap);
+            else
+                aSize = OutputDevice::LogicToLogic(aSize, aGraphic.GetPrefMapMode(), aMap);
             m_aStates.top().aPicture.nWidth = aSize.Width();
             m_aStates.top().aPicture.nHeight = aSize.Height();
         }


More information about the Libreoffice-commits mailing list