You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ad...@apache.org on 2017/01/27 12:27:47 UTC

svn commit: r1780547 [1/2] - in /jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment: oaktar.png oaktar.svg tar.md tar.png tar.svg

Author: adulceanu
Date: Fri Jan 27 12:27:47 2017
New Revision: 1780547

URL: http://svn.apache.org/viewvc?rev=1780547&view=rev
Log:
OAK-4648 - Improve documentation about structure of TAR files

Added:
    jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.png
    jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.svg
    jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.png
    jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.svg
Modified:
    jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.md

Added: jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.png
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.png?rev=1780547&view=auto
==============================================================================
Binary files jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.png (added) and jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.png Fri Jan 27 12:27:47 2017 differ

Added: jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.svg
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.svg?rev=1780547&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.svg (added)
+++ jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/oaktar.svg Fri Jan 27 12:27:47 2017
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="951" height="980"><g transform="translate(-107.99999999999994 -40)"><path d="M128 940h400v-60H128z" stroke="#000" stroke-width="2" fill="#ccc"/><use xlink:href="#a" transform="matrix(1,0,0,1,133,885) translate(164.05 28.6)"/><path d="M128 1000h400v-60H128z" stroke="#000" stroke-width="2" fill="#ccc"/><use xlink:href="#a" transform="matrix(1,0,0,1,133,945) translate(164.05 28.6)"/><path d="M128 131h400V71H128z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#b" transform="matrix(1,0,0,1,132.99999999999994,76) translate(157.1 28.6)"/><path d="M128 191h400v-60H128z" stroke="#000" stroke-width="2" fill="#f4cccc"/><use xlink:href="#c" transform="matrix(1,0,0,1,132.99999999999994,136) translate(104.69999999999999 28.6)"/><use xlink:href="#d" transform="matrix(1,0,0,1,132.99999999999994,136) translate(198.55 28.6)"/><path d="M128 379h400v-60H128z" stroke="#000" stroke-width="2" fill="
 #cfe2f3"/><use xlink:href="#b" transform="matrix(1,0,0,1,133,324) translate(157.1 28.6)"/><path d="M128 439h400v-60H128z" stroke="#000" stroke-width="2" fill="#f4cccc"/><use xlink:href="#e" transform="matrix(1,0,0,1,133,384) translate(51.349999999999994 28.6)"/><use xlink:href="#f" transform="matrix(1,0,0,1,133,384) translate(124.15 28.6)"/><use xlink:href="#g" transform="matrix(1,0,0,1,133,384) translate(251.9 28.6)"/><path d="M587 870h452V750H587z" stroke="#000" stroke-width="2" fill="#f4cccc"/><path d="M128 259h400v-60H128z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#h" transform="matrix(1,0,0,1,133,204) translate(187.5 28.6)"/><path d="M128 319h400v-60H128z" stroke="#000" stroke-width="2" fill="#fff"/><use xlink:href="#h" transform="matrix(1,0,0,1,133,264) translate(187.5 28.6)"/><path d="M587 750h452v-60H587z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#i" transform="matrix(1,0,0,1,592,695) translate(33.125 28.6)"/><use xlink:href="#j" tr
 ansform="matrix(1,0,0,1,592,695) translate(192.925 28.6)"/><use xlink:href="#k" transform="matrix(1,0,0,1,592,695) translate(202.925 28.6)"/><use xlink:href="#l" transform="matrix(1,0,0,1,592,695) translate(257.925 28.6)"/><use xlink:href="#m" transform="matrix(1,0,0,1,592,695) translate(267.925 28.6)"/><use xlink:href="#n" transform="matrix(1,0,0,1,592,695) translate(362.925 28.6)"/><path d="M491 690v180h80V690z" fill="none"/><path d="M571 870c-6.2 0-11.25-5.04-11.25-11.25v-67.5c0-6.2-5.04-11.25-11.25-11.25 6.2 0 11.25-5.04 11.25-11.25v-67.5c0-6.2 5.04-11.25 11.25-11.25" stroke="#000" stroke-width="2" fill="none"/><path d="M959 870.1h80V843h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#o" transform="matrix(1,0,0,1,964,848) translate(5.092592592592595 11.222222222222221)"/><use xlink:href="#p" transform="matrix(1,0,0,1,964,848) translate(35.339506172839506 11.222222222222221)"/><path d="M880 870.1h80V843h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><
 use xlink:href="#o" transform="matrix(1,0,0,1,885,848) translate(9.089506172839506 11.222222222222221)"/><use xlink:href="#q" transform="matrix(1,0,0,1,885,848) translate(39.33641975308642 11.222222222222221)"/><path d="M800 870.1h80V843h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#r" transform="matrix(1,0,0,1,805,848) translate(7.577160493827165 11.222222222222221)"/><use xlink:href="#s" transform="matrix(1,0,0,1,805,848) translate(45.16975308641975 11.222222222222221)"/><path d="M720 870h80v-27.1h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#t" transform="matrix(1,0,0,1,725,847.9) translate(8.796296296296294 11.222222222222221)"/><path d="M588 870.1h132V843H588z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#u" transform="matrix(1,0,0,1,593,848) translate(47.46604938271605 11.222222222222221)"/><path d="M960 843.1h79V816h-79z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#v" transform="matrix(
 1,0,0,1,965,821) translate(19.79320987654321 11.222222222222221)"/><path d="M878.5 843H960v-27h-81.5z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#w" transform="matrix(1,0,0,1,883.5,821) translate(25.212962962962962 10.722222222222221)"/><path d="M800 843.1h80V816h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#x" transform="matrix(1,0,0,1,805,821) translate(7.561728395061728 11.222222222222221)"/><path d="M668 843.1h132V816H668z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#u" transform="matrix(1,0,0,1,673,821) translate(47.46604938271605 11.222222222222221)"/><path d="M588 843.1h80V816h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,593,821) translate(30.37037037037037 11.222222222222221)"/><path d="M959 816h79.5v-30H959z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,964,791) translate(30.37037037037037 12.222222222222
 221)"/><path d="M880 816h80v-30h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,885,791) translate(30.37037037037037 12.222222222222221)"/><path d="M128 840h400v-60H128z" stroke="#000" stroke-width="2" fill="#f4cccc"/><use xlink:href="#z" transform="matrix(1,0,0,1,133,785) translate(121.67499999999998 28.6)"/><use xlink:href="#d" transform="matrix(1,0,0,1,133,785) translate(181.575 28.6)"/><path d="M128 780h400v-60H128z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#b" transform="matrix(1,0,0,1,133,725) translate(157.1 28.6)"/><path d="M128 579h400v-60H128z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#b" transform="matrix(1,0,0,1,133,524) translate(157.1 28.6)"/><path d="M128 640h400v-60H128z" stroke="#000" stroke-width="2" fill="#f4cccc"/><use xlink:href="#A" transform="matrix(1,0,0,1,133,585) translate(116.69999999999999 28.6)"/><use xlink:href="#d" transform="matrix(1,0,0,1,133,585) transl
 ate(186.55 28.6)"/><path d="M587 669h452V549H587z" stroke="#000" stroke-width="2" fill="#f4cccc"/><path d="M587 549h452v-60H587z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#B" transform="matrix(1,0,0,1,592,494) translate(29.67500000000001 28.6)"/><use xlink:href="#j" transform="matrix(1,0,0,1,592,494) translate(196.375 28.6)"/><use xlink:href="#C" transform="matrix(1,0,0,1,592,494) translate(206.375 28.6)"/><use xlink:href="#l" transform="matrix(1,0,0,1,592,494) translate(261.375 28.6)"/><use xlink:href="#m" transform="matrix(1,0,0,1,592,494) translate(271.375 28.6)"/><use xlink:href="#n" transform="matrix(1,0,0,1,592,494) translate(366.375 28.6)"/><path d="M491 489v180h80V489z" fill="none"/><path d="M571 669c-6.2 0-11.25-5.04-11.25-11.25v-67.5c0-6.2-5.04-11.25-11.25-11.25 6.2 0 11.25-5.04 11.25-11.25v-67.5c0-6.2 5.04-11.25 11.25-11.25" stroke="#000" stroke-width="2" fill="none"/><path d="M959 668.55h80v-27.1h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/
 ><use xlink:href="#D" transform="matrix(1,0,0,1,964,646.45) translate(3.2561728395061778 11.222222222222221)"/><use xlink:href="#p" transform="matrix(1,0,0,1,964,646.45) translate(37.175925925925924 11.222222222222221)"/><path d="M879 668.55h80v-27.1h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#D" transform="matrix(1,0,0,1,884,646.45) translate(7.253086419753089 11.222222222222221)"/><use xlink:href="#q" transform="matrix(1,0,0,1,884,646.45) translate(41.172839506172835 11.222222222222221)"/><path d="M799 668.55h80v-27.1h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#r" transform="matrix(1,0,0,1,804,646.45) translate(7.577160493827165 11.222222222222221)"/><use xlink:href="#s" transform="matrix(1,0,0,1,804,646.45) translate(45.16975308641975 11.222222222222221)"/><path d="M719 668.55h80v-27.1h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#t" transform="matrix(1,0,0,1,724,646.45) translate(8.796296296296294 11.
 222222222222221)"/><path d="M587 668.1h133V641H587z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#E" transform="matrix(1,0,0,1,592,646) translate(43.043209876543216 11.222222222222221)"/><path d="M986 641h53v-27.1h-53z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#F" transform="matrix(1,0,0,1,991,618.9) translate(0.5432098765432087 11.222222222222221)"/><use xlink:href="#q" transform="matrix(1,0,0,1,991,618.9) translate(20.882716049382715 11.222222222222221)"/><path d="M854 641h132v-27H854z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#G" transform="matrix(1,0,0,1,859,619) translate(42.543209876543216 10.722222222222221)"/><path d="M959 614h80v-27.55h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,964,591.4499999999999) translate(30.37037037037037 11.222222222222221)"/><path d="M879 614h80v-27.55h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" tra
 nsform="matrix(1,0,0,1,884,591.45) translate(30.37037037037037 11.222222222222221)"/><path d="M720 641.55h134V614H720z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#H" transform="matrix(1,0,0,1,725,619) translate(43.543209876543216 11.222222222222221)"/><path d="M581 468h457V348H581z" stroke="#000" stroke-width="2" fill="#f4cccc"/><path d="M581 348h458v-60H581z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#I" transform="matrix(1,0,0,1,586,293) translate(47.150000000000006 28.6)"/><use xlink:href="#j" transform="matrix(1,0,0,1,586,293) translate(204.9 28.6)"/><use xlink:href="#J" transform="matrix(1,0,0,1,586,293) translate(214.9 28.6)"/><use xlink:href="#l" transform="matrix(1,0,0,1,586,293) translate(249.9 28.6)"/><use xlink:href="#m" transform="matrix(1,0,0,1,586,293) translate(259.9 28.6)"/><use xlink:href="#n" transform="matrix(1,0,0,1,586,293) translate(354.9 28.6)"/><path d="M485 288v180h80V288z" fill="none"/><path d="M565 468c-6.2 0-11.
 25-5.04-11.25-11.25v-67.5c0-6.2-5.04-11.25-11.25-11.25 6.2 0 11.25-5.04 11.25-11.25v-67.5c0-6.2 5.04-11.25 11.25-11.25" stroke="#000" stroke-width="2" fill="none"/><path d="M953 468h85v-28h-85z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#K" transform="matrix(1,0,0,1,958,445) translate(10.092592592592595 11.222222222222221)"/><use xlink:href="#p" transform="matrix(1,0,0,1,958,445) translate(35.339506172839506 11.222222222222221)"/><path d="M874 468h79v-28h-79z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#K" transform="matrix(1,0,0,1,879,445) translate(11.089506172839506 11.222222222222221)"/><use xlink:href="#q" transform="matrix(1,0,0,1,879,445) translate(36.33641975308642 11.222222222222221)"/><path d="M800 468.1h74V440h-74z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#L" transform="matrix(1,0,0,1,805,445) translate(1.7839506172839492 11.722222222222221)"/><path d="M724 468h76v-28h-76z" stroke="#000" stroke-width="2" f
 ill="#ea9999"/><use xlink:href="#t" transform="matrix(1,0,0,1,729,445) translate(6.796296296296294 11.222222222222221)"/><path d="M653 468h71v-28h-71z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#M" transform="matrix(1,0,0,1,658,445) translate(15.083333333333336 11.222222222222221)"/><path d="M581 468h72v-28h-72z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#N" transform="matrix(1,0,0,1,586,445) translate(4.811728395061728 11.222222222222221)"/><use xlink:href="#O" transform="matrix(1,0,0,1,586,445) translate(31.29320987654321 11.222222222222221)"/><path d="M901 440h137v-28H901z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#E" transform="matrix(1,0,0,1,906,417) translate(45.043209876543216 11.222222222222221)"/><path d="M672 412h80v-28h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,677,389) translate(30.37037037037037 11.222222222222221)"/><path d="M832 412.1h80V384h-80z
 " stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,837,389) translate(30.37037037037037 11.722222222222221)"/><path d="M752 412.1h80V384h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#y" transform="matrix(1,0,0,1,757,389) translate(30.37037037037037 11.722222222222221)"/><path d="M700 440h120v-28H700z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#P" transform="matrix(1,0,0,1,705,417) translate(28.179012345679016 11.222222222222221)"/><use xlink:href="#Q" transform="matrix(1,0,0,1,705,417) translate(60.89506172839506 11.222222222222221)"/><path d="M820 440h81v-28h-81z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#R" transform="matrix(1,0,0,1,825,417) translate(1.904320987654323 11.222222222222221)"/><use xlink:href="#S" transform="matrix(1,0,0,1,825,417) translate(27.182098765432098 11.222222222222221)"/><use xlink:href="#s" transform="matrix(1,0,0,1,825,417) translate(51.8425
 9259259259 11.222222222222221)"/><path d="M581 440h119v-28H581z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#P" transform="matrix(1,0,0,1,586,417) translate(27.679012345679016 11.222222222222221)"/><use xlink:href="#T" transform="matrix(1,0,0,1,586,417) translate(60.39506172839506 11.222222222222221)"/><path d="M912 412h126v-28H912z" stroke="#000" stroke-width="2" fill="#ea9999"/><use xlink:href="#P" transform="matrix(1,0,0,1,917,389) translate(31.179012345679016 11.222222222222221)"/><use xlink:href="#U" transform="matrix(1,0,0,1,917,389) translate(63.89506172839506 11.222222222222221)"/><path d="M587 259h452V100.9H587z" stroke="#000" stroke-width="2" fill="#f4cccc"/><path d="M587 122.65h452V60H587z" stroke="#000" stroke-width="2" fill="#cfe2f3"/><use xlink:href="#V" transform="matrix(1,0,0,1,592,65) translate(8.275000000000034 19.299999999999997)"/><use xlink:href="#j" transform="matrix(1,0,0,1,592,65) translate(108.025 40.9)"/><use xlink:href="#W" transform="
 matrix(1,0,0,1,592,65) translate(118.025 40.9)"/><use xlink:href="#l" transform="matrix(1,0,0,1,592,65) translate(183.025 40.9)"/><use xlink:href="#m" transform="matrix(1,0,0,1,592,65) translate(193.025 40.9)"/><use xlink:href="#n" transform="matrix(1,0,0,1,592,65) translate(288.025 40.9)"/><path d="M491 60v198h80V60z" fill="none"/><path d="M571 258c-6.83 0-12.38-5.54-12.38-12.38v-74.25c0-6.83-5.54-12.37-12.37-12.37 6.83 0 12.38-5.54 12.38-12.38V72.38c0-6.83 5.54-12.37 12.37-12.37" stroke="#000" stroke-width="2" fill="none"/><path d="M940 259h99v-28h-99z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#X" transform="matrix(1,0,0,1,945,236) translate(5.966049382716051 11.222222222222221)"/><use xlink:href="#Y" transform="matrix(1,0,0,1,945,236) translate(53.46604938271605 11.222222222222221)"/></g><path d="M821 259h119v-28H821z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#X" transform="matrix(1,0,0,1,826,236) translate(12.262345679012348 11
 .222222222222221)"/><use xlink:href="#Z" transform="matrix(1,0,0,1,826,236) translate(59.76234567901235 11.222222222222221)"/></g><path d="M668 259h154v-28H668z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#aa" transform="matrix(1,0,0,1,673,236) translate(52.89506172839506 11.222222222222221)"/></g><path d="M587 259h81v-28h-81z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ab" transform="matrix(1,0,0,1,592,236) translate(8.061728395061728 11.222222222222221)"/></g><path d="M931 231h108v-27H931z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#X" transform="matrix(1,0,0,1,936,209) translate(2.132716049382715 10.722222222222221)"/><use xlink:href="#ac" transform="matrix(1,0,0,1,936,209) translate(49.632716049382715 10.722222222222221)"/><use xlink:href="#s" transform="matrix(1,0,0,1,936,209) translate(78.6141975308642 10.722222222222221)"/></g><path d="M674 204.1h86V177h-86z" stroke="#000" stroke-width="2" fill="#ea9999
 "/><g><use xlink:href="#ad" transform="matrix(1,0,0,1,679,182) translate(1.9506172839506135 11.222222222222221)"/><use xlink:href="#ae" transform="matrix(1,0,0,1,679,182) translate(27.845679012345677 11.222222222222221)"/></g><path d="M840 204.45h80v-27.1h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#af" transform="matrix(1,0,0,1,845,182.35000000000008) translate(30.37037037037037 11.222222222222221)"/></g><path d="M760 204.9h80v-28.14h-80z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#af" transform="matrix(1,0,0,1,765,181.75624999999997) translate(30.37037037037037 11.722222222222221)"/></g><path d="M849.25 231H931v-27h-81.75z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ag" transform="matrix(1,0,0,1,854.25,209) translate(5.182098765432102 10.722222222222221)"/><use xlink:href="#s" transform="matrix(1,0,0,1,854.25,209) translate(49.56481481481482 10.722222222222221)"/></g><path d="M918 204h121v-26.65H918z" s
 troke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ah" transform="matrix(1,0,0,1,923,182.35000000000002) translate(37.043209876543216 10.722222222222221)"/></g><path d="M719 231h130v-27H719z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#aa" transform="matrix(1,0,0,1,724,209) translate(40.89506172839506 10.722222222222221)"/></g><path d="M587 231h133v-27.1H587z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ai" transform="matrix(1,0,0,1,592,208.89999999999998) translate(43.043209876543216 11.222222222222221)"/></g><path d="M587 204h88v-27.1h-88z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ad" transform="matrix(1,0,0,1,592,181.89999999999998) translate(2.9506172839506135 11.222222222222221)"/><use xlink:href="#aj" transform="matrix(1,0,0,1,592,181.89999999999998) translate(28.845679012345677 11.222222222222221)"/></g><path d="M953 177h86v-27.1h-86z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><
 use xlink:href="#af" transform="matrix(1,0,0,1,958,154.9) translate(33.37037037037037 11.222222222222221)"/></g><path d="M867 177h86v-27.1h-86z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#af" transform="matrix(1,0,0,1,872,154.9) translate(33.37037037037037 11.222222222222221)"/></g><path d="M587 177.1h280V150H587z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ak" transform="matrix(1,0,0,1,592,155) translate(99.58333333333333 11.222222222222221)"/><use xlink:href="#al" transform="matrix(1,0,0,1,592,155) translate(124.83024691358024 11.222222222222221)"/></g><path d="M879 151.1h160V123H879z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#ak" transform="matrix(1,0,0,1,884,128) translate(39.58333333333333 11.722222222222221)"/><use xlink:href="#am" transform="matrix(1,0,0,1,884,128) translate(64.83024691358024 11.722222222222221)"/></g><path d="M700 151.1h179V123H700z" stroke="#000" stroke-width="2" fill="#ea9999"/><g>
 <use xlink:href="#ak" transform="matrix(1,0,0,1,705,128) translate(49.08333333333333 11.722222222222221)"/><use xlink:href="#an" transform="matrix(1,0,0,1,705,128) translate(74.33024691358024 11.722222222222221)"/></g><path d="M587 151.1h113V123H587z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#af" transform="matrix(1,0,0,1,592,128) translate(46.87037037037037 11.722222222222221)"/></g><path d="M587 641.1h133V614H587z" stroke="#000" stroke-width="2" fill="#ea9999"/><g><use xlink:href="#af" transform="matrix(1,0,0,1,592,619) translate(56.87037037037037 11.222222222222221)"/></g><defs><path d="M24 0v-248h195v40H76v63h132v40H76v65h150V0H24" id="ao"/><path d="M230 0l2-204L168 0h-37L68-204 70 0H24v-248h70l56 185 57-185h69V0h-46" id="ap"/><path d="M24-248c93 1 206-16 204 79-1 75-69 88-152 82V0H24v-248zm52 121c47 0 100 7 100-41 0-47-54-39-100-39v80" id="aq"/><path d="M136-208V0H84v-208H4v-40h212v40h-80" id="ar"/><path d="M146-102V0H94v-102L6-248h54l60 105 60-105h54"
  id="as"/><g id="a"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,12,0)" xlink:href="#ap"/><use transform="matrix(0.05,0,0,0.05,26.950000000000003,0)" xlink:href="#aq"/><use transform="matrix(0.05,0,0,0.05,38.95,0)" xlink:href="#ar"/><use transform="matrix(0.05,0,0,0.05,49.900000000000006,0)" xlink:href="#as"/></g><path d="M186 0v-106H76V0H24v-248h52v99h110v-99h50V0h-50" id="at"/><path d="M199 0l-22-63H83L61 0H9l90-248h61L250 0h-51zm-33-102l-36-108c-10 38-24 72-36 108h72" id="au"/><path d="M24-248c120-7 223 5 221 122C244-46 201 0 124 0H24v-248zM76-40c74 7 117-18 117-86 0-67-45-88-117-82v168" id="av"/><path d="M240-174c0 40-23 61-54 70L253 0h-59l-57-94H76V0H24v-248c93 4 217-23 216 74zM76-134c48-2 112 12 112-38 0-48-66-32-112-35v73" id="aw"/><g id="b"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#at"/><use transform="matrix(0.05,0,0,0.05,12.950000000000001,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,24.950000
 000000003,0)" xlink:href="#au"/><use transform="matrix(0.05,0,0,0.05,37.900000000000006,0)" xlink:href="#av"/><use transform="matrix(0.05,0,0,0.05,50.85000000000001,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,62.85,0)" xlink:href="#aw"/></g><path d="M169-182c-1-43-94-46-97-3 18 66 151 10 154 114 3 95-165 93-204 36-6-8-10-19-12-30l50-8c3 46 112 56 116 5-17-69-150-10-154-114-4-87 153-88 188-35 5 8 8 18 10 28" id="ax"/><path d="M67-125c0 54 23 88 75 88 28 0 53-7 68-21v-34h-60v-39h108v91C232-14 192 4 140 4 58 4 20-42 15-125 8-236 126-280 215-234c19 10 29 26 37 47l-47 15c-11-23-29-39-63-39-53 1-75 33-75 86" id="ay"/><path d="M175 0L67-191c6 58 2 128 3 191H24v-248h59L193-55c-6-58-2-129-3-193h46V0h-61" id="az"/><g id="c"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#ax"/><use transform="matrix(0.05,0,0,0.05,12,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,24,0)" xlink:href="#ay"/><use transform="matrix(0.05,0,0,0.05,38,0)" xlink:href="#ap"/><use transf
 orm="matrix(0.05,0,0,0.05,52.95,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,64.95,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,77.9,0)" xlink:href="#ar"/></g><path d="M67-125c0 53 21 87 73 88 37 1 54-22 65-47l45 17C233-25 199 4 140 4 58 4 20-42 15-125 8-235 124-281 211-232c18 10 29 29 36 50l-46 12c-8-25-30-41-62-41-52 0-71 34-72 86" id="aA"/><path d="M140-251c80 0 125 45 125 126S219 4 139 4C58 4 15-44 15-125s44-126 125-126zm-1 214c52 0 73-35 73-88 0-50-21-86-72-86-52 0-73 35-73 86s22 88 72 88" id="aB"/><g id="d"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aA"/><use transform="matrix(0.05,0,0,0.05,12.950000000000001,0)" xlink:href="#aB"/><use transform="matrix(0.05,0,0,0.05,26.950000000000003,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#ar"/><use transform="matrix(0.05,0,0,0.05,50.85000000000001,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,62.85,0)" xlink:href="#az"/><use transfor
 m="matrix(0.05,0,0,0.05,75.80000000000001,0)" xlink:href="#ar"/></g><path d="M182-130c37 4 62 22 62 59C244 23 116-4 24 0v-248c84 5 203-23 205 63 0 31-19 50-47 55zM76-148c40-3 101 13 101-30 0-44-60-28-101-31v61zm0 110c48-3 116 14 116-37 0-48-69-32-116-35v72" id="aC"/><path d="M24 0v-248h52V0H24" id="aD"/><g id="e"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aC"/><use transform="matrix(0.05,0,0,0.05,12.950000000000001,0)" xlink:href="#aD"/><use transform="matrix(0.05,0,0,0.05,17.950000000000003,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,30.900000000000006,0)" xlink:href="#au"/><use transform="matrix(0.05,0,0,0.05,43.85000000000001,0)" xlink:href="#aw"/><use transform="matrix(0.05,0,0,0.05,56.15000000000001,0)" xlink:href="#as"/></g><path d="M76-208v77h127v40H76V0H24v-248h183v40H76" id="aE"/><g id="f"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aw"/><use transform="matrix(0.05,0,0,0.05,12.950000000000001,0)" xlink:href="#ao"/><use transform="matr
 ix(0.05,0,0,0.05,24.950000000000003,0)" xlink:href="#aE"/><use transform="matrix(0.05,0,0,0.05,35.900000000000006,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,47.900000000000006,0)" xlink:href="#aw"/><use transform="matrix(0.05,0,0,0.05,60.85,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,72.85000000000001,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,85.80000000000001,0)" xlink:href="#aA"/><use transform="matrix(0.05,0,0,0.05,98.75000000000001,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,110.75,0)" xlink:href="#ax"/></g><g id="g"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aA"/><use transform="matrix(0.05,0,0,0.05,12.950000000000001,0)" xlink:href="#aB"/><use transform="matrix(0.05,0,0,0.05,26.950000000000003,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#ar"/><use transform="matrix(0.05,0,0,0.05,50.85000000000001,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.0
 5,62.85,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,75.80000000000001,0)" xlink:href="#ar"/></g><path d="M24 0v-54h51V0H24" id="aF"/><g id="h"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,5,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#aF"/></g><path d="M88-194c31-1 46 15 58 34l-1-101h50l1 261h-48c-2-10 0-23-3-31C134-8 116 4 84 4 32 4 16-41 15-95c0-56 19-97 73-99zm17 164c33 0 40-30 41-66 1-37-9-64-41-64s-38 30-39 65c0 43 13 65 39 65" id="aG"/><path d="M133-34C117-15 103 5 69 4 32 3 11-16 11-54c-1-60 55-63 116-61 1-26-3-47-28-47-18 1-26 9-28 27l-52-2c7-38 36-58 82-57s74 22 75 68l1 82c-1 14 12 18 25 15v27c-30 8-71 5-69-32zm-48 3c29 0 43-24 42-57-32 0-66-3-65 30 0 17 8 27 23 27" id="aH"/><path d="M115-3C79 11 28 4 28-45v-112H4v-33h27l15-45h31v45h36v33H77v99c-1 23 16 31 38 25v30" id="aI"/><path d="M101-251c68 0 84 54 84 127C185-50 166 4 99 4S15-52 14-124c-1-75 17-127 87-127zm-1 216c37-5 
 36-46 36-89s4-89-36-89c-39 0-36 45-36 89 0 43-3 85 36 89" id="aJ"/><path d="M135-150c-39-12-60 13-60 57V0H25l-1-190h47c2 13-1 29 3 40 6-28 27-53 61-41v41" id="aK"/><path d="M25-224v-37h50v37H25zM25 0v-190h50V0H25" id="aL"/><path d="M144 0l-44-69L55 0H2l70-98-66-92h53l41 62 40-62h54l-67 91 71 99h-54" id="aM"/><g id="i"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,10.950000000000001,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,20.950000000000003,0)" xlink:href="#aI"/><use transform="matrix(0.05,0,0,0.05,26.900000000000002,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,36.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,46.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,56.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,66.9,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,76.9,0)" xlink:href="#aJ"/><use transform="matr
 ix(0.05,0,0,0.05,86.9,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,96.9,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,101.9,0)" xlink:href="#aI"/><use transform="matrix(0.05,0,0,0.05,107.85000000000001,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,117.85000000000001,0)" xlink:href="#aK"/><use transform="matrix(0.05,0,0,0.05,123.85000000000001,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,128.85000000000002,0)" xlink:href="#aL"/><use transform="matrix(0.05,0,0,0.05,133.85000000000002,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,144.8,0)" xlink:href="#aM"/></g><path d="M27 80v-341h46V80H27" id="aN"/><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aN" id="j"/><path d="M128-127c34 4 56 21 59 58 7 91-148 94-172 28-4-9-6-17-7-26l51-5c1 24 16 35 40 36 23 0 39-12 38-36-1-31-31-36-65-34v-40c32 2 59-3 59-33 0-20-13-33-34-33s-33 13-35 32l-50-3c6-44 37-68 86-68 50 0 83 20 83 66 0 35-22 52-53 58" id="aO"/><path d="M52 0c1
 -96 47-148 87-207H15v-41h169v40c-36 62-79 113-81 208H52" id="aP"/><path d="M182-182c0 78-84 86-111 141h115V0H12c-6-101 99-100 120-180 1-22-12-31-33-32-23 0-32 14-35 34l-49-3c5-45 32-70 84-70 51 0 83 22 83 69" id="aQ"/><g id="k"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aO"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#aP"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#aJ"/></g><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aN" id="l"/><path d="M23 0v-37h61v-169l-59 37v-38l62-41h46v211h57V0H23" id="aR"/><path d="M165-50V0h-47v-50H5v-38l105-160h55v161h33v37h-33zm-47-37l2-116L46-87h72" id="aS"/><path d="M4 7l51-268h42L46 7H4" id="aT"/><g id="m"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#aS"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href
 ="#aT"/><use transform="matrix(0.05,0,0,0.05,25,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,35,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,45,0)" xlink:href="#aT"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,60,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,70,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,80,0)" xlink:href="#aP"/></g><path d="M35-132v-50h50v50H35zM35 0v-49h50V0H35" id="aU"/><g id="n"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#aO"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#aU"/><use transform="matrix(0.05,0,0,0.05,25.950000000000003,0)" xlink:href="#aO"/><use transform="matrix(0.05,0,0,0.05,35.95,0)" xlink:href="#aQ"/></g><path d="M33 0v-248h34V0H33" id="aV"/><path d="M117-194c89-4 53 116 60 194h-32v-121c0-31-8-49-39-48C34-167 62-67 57 0H25l-1-190h30c1 10-1 24 2 32 11-22
  29-35 61-36" id="aW"/><path d="M85-194c31 0 48 13 60 33l-1-100h32l1 261h-30c-2-10 0-23-3-31C134-8 116 4 85 4 32 4 16-35 15-94c0-66 23-100 70-100zm9 24c-40 0-46 34-46 75 0 40 6 74 45 74 42 0 51-32 51-76 0-42-9-74-50-73" id="aX"/><path d="M100-194c63 0 86 42 84 106H49c0 40 14 67 53 68 26 1 43-12 49-29l28 8c-11 28-37 45-77 45C44 4 14-33 15-96c1-61 26-98 85-98zm52 81c6-60-76-77-97-28-3 7-6 17-6 28h103" id="aY"/><path d="M141 0L90-78 38 0H4l68-98-65-92h35l48 74 47-74h35l-64 92 68 98h-35" id="aZ"/><g id="o"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,3.0864197530864197,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.25925925925926,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.432098765432098,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196
 ,21.604938271604937,0)" xlink:href="#aZ"/></g><path d="M240 0l2-218c-23 76-54 145-80 218h-23L58-218 59 0H30v-248h44l77 211c21-75 51-140 76-211h43V0h-30" id="ba"/><path d="M141-36C126-15 110 5 73 4 37 3 15-17 15-53c-1-64 63-63 125-63 3-35-9-54-41-54-24 1-41 7-42 31l-33-3c5-37 33-52 76-52 45 0 72 20 72 64v82c-1 20 7 32 28 27v20c-31 9-61-2-59-35zM48-53c0 20 12 33 32 33 41-3 63-29 60-74-43 2-92-5-92 41" id="bb"/><path d="M177-190C167-65 218 103 67 71c-23-6-38-20-44-43l32-5c15 47 100 32 89-28v-30C133-14 115 1 83 1 29 1 15-40 15-95c0-56 16-97 71-98 29-1 48 16 59 35 1-10 0-23 2-32h30zM94-22c36 0 50-32 50-73 0-42-14-75-50-75-39 0-46 34-46 75s6 73 46 73" id="bc"/><path d="M24-231v-30h32v30H24zM24 0v-190h32V0H24" id="bd"/><path d="M96-169c-40 0-48 33-48 73s9 75 48 75c24 0 41-14 43-38l32 2c-6 37-31 61-74 61-59 0-76-41-82-99-10-93 101-131 147-64 4 7 5 14 7 22l-32 3c-4-21-16-35-41-35" id="be"/><g id="p"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#ba"/>
 <use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.228395061728394,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.401234567901234,0)" xlink:href="#bc"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,21.574074074074073,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,24.012345679012345,0)" xlink:href="#be"/></g><path d="M185-189c-5-48-123-54-124 2 14 75 158 14 163 119 3 78-121 87-175 55-17-10-28-26-33-46l33-7c5 56 141 63 141-1 0-78-155-14-162-118-5-82 145-84 179-34 5 7 8 16 11 25" id="bf"/><path d="M9 0v-24l116-142H16v-24h144v24L44-24h123V0H9" id="bg"/><g id="q"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bf"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.845679012345677,0)" xlin
 k:href="#bg"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.401234567901232,0)" xlink:href="#aY"/></g><path d="M30 0v-248h187v28H63v79h144v27H63v87h162V0H30" id="bh"/><path d="M59-47c-2 24 18 29 38 22v24C64 9 27 4 27-40v-127H5v-23h24l9-43h21v43h35v23H59v120" id="bi"/><path d="M114-163C36-179 61-72 57 0H25l-1-190h30c1 12-1 29 2 39 6-27 23-49 58-41v29" id="bj"/><path d="M135-143c-3-34-86-38-87 0 15 53 115 12 119 90S17 21 10-45l28-5c4 36 97 45 98 0-10-56-113-15-118-90-4-57 82-63 122-42 12 7 21 19 24 35" id="bk"/><g id="r"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bh"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,13.580246913580247,0)" xlink:href="#bi"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,16.666666666666668,0)" xlink:href="#bj"/><use transform="matrix(
 0.030864197530864196,0,0,0.030864197530864196,20.339506172839506,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,22.77777777777778,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,28.950617283950617,0)" xlink:href="#bk"/></g><path d="M190 0L58-211 59 0H30v-248h39L202-35l-2-213h31V0h-41" id="bl"/><path d="M100-194c62-1 85 37 85 99 1 63-27 99-86 99S16-35 15-95c0-66 28-99 85-99zM99-20c44 1 53-31 53-75 0-43-8-75-51-75s-53 32-53 75 10 74 51 75" id="bm"/><path d="M33 0v-38h34V0H33" id="bn"/><g id="s"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bl"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#bn"/></g><path d="M212-179c-10-28-35-45-73-45-59 0-87 40-87 99 0 60 29 101 89 101 43 0 62-24 78-52l27 14C
 228-24 195 4 139 4 59 4 22-46 18-125c-6-104 99-153 187-111 19 9 31 26 39 46" id="bo"/><path d="M106-169C34-169 62-67 57 0H25v-261h32l-1 103c12-21 28-36 61-36 89 0 53 116 60 194h-32v-121c2-32-8-49-39-48" id="bp"/><path d="M143 0L79-87 56-68V0H24v-261h32v163l83-92h37l-77 82L181 0h-38" id="bq"/><path d="M84 4C-5 8 30-112 23-190h32v120c0 31 7 50 39 49 72-2 45-101 50-169h31l1 190h-30c-1-10 1-25-2-33-11 22-28 36-60 37" id="br"/><path d="M210-169c-67 3-38 105-44 169h-31v-121c0-29-5-50-35-48C34-165 62-65 56 0H25l-1-190h30c1 10-1 24 2 32 10-44 99-50 107 0 11-21 27-35 58-36 85-2 47 119 55 194h-31v-121c0-29-5-49-35-48" id="bs"/><g id="t"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bo"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bp"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.
 030864197530864196,20.339506172839506,0)" xlink:href="#be"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,25.895061728395063,0)" xlink:href="#bq"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,31.45061728395062,0)" xlink:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,37.00617283950618,0)" xlink:href="#br"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,43.17901234567902,0)" xlink:href="#bs"/></g><path d="M232-93c-1 65-40 97-104 97C67 4 28-28 28-90v-158h33c8 89-33 224 67 224 102 0 64-133 71-224h33v155" id="bt"/><path d="M30-248c118-7 216 8 213 122C240-48 200 0 122 0H30v-248zM63-27c89 8 146-16 146-99s-60-101-146-95v194" id="bu"/><g id="u"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,
 0.030864197530864196,15.987654320987653,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.074074074074073,0)" xlink:href="#bu"/></g><path d="M140-251c81 0 123 46 123 126C263-46 219 4 140 4 59 4 17-45 17-125s42-126 123-126zm0 227c63 0 89-41 89-101s-29-99-89-99c-61 0-89 39-89 99S79-25 140-24" id="bv"/><path d="M101-234c-31-9-42 10-38 44h38v23H63V0H32v-167H5v-23h27c-7-52 17-82 69-68v24" id="bw"/><g id="v"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bv"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.641975308641975,0)" xlink:href="#bw"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,11.512345679012345,0)" xlink:href="#bw"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.598765432098764,0)" xlink:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.15432098765432,0)" xlink:href="#aY"/><use transform="
 matrix(0.030864197530864196,0,0,0.030864197530864196,26.327160493827158,0)" xlink:href="#bi"/></g><g id="w"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bf"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.845679012345677,0)" xlink:href="#bg"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.401234567901232,0)" xlink:href="#aY"/></g><path d="M143 4C61 4 22-44 18-125c-5-107 100-154 193-111 17 8 29 25 37 43l-32 9c-13-25-37-40-76-40-61 0-88 39-88 99 0 61 29 100 91 101 35 0 62-11 79-27v-45h-74v-28h105v86C228-13 192 4 143 4" id="bx"/><g id="x"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bx"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.641975308641975,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.0
 30864197530864196,14.814814814814813,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.98765432098765,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.16049382716049,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.83333333333333,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,37.00617283950617,0)" xlink:href="#bi"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,40.09259259259259,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,42.53086419753086,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,48.7037037037037,0)" xlink:href="#aW"/></g><g id="y"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bn"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,
 3.0864197530864197,0)" xlink:href="#bn"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,6.172839506172839,0)" xlink:href="#bn"/></g><path d="M182 0l-62-99L58 0H3l86-130-79-118h55l55 88 55-88h55l-75 118L237 0h-55" id="by"/><g id="z"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aD"/><use transform="matrix(0.05,0,0,0.05,5,0)" xlink:href="#az"/><use transform="matrix(0.05,0,0,0.05,17.950000000000003,0)" xlink:href="#av"/><use transform="matrix(0.05,0,0,0.05,30.900000000000006,0)" xlink:href="#ao"/><use transform="matrix(0.05,0,0,0.05,42.900000000000006,0)" xlink:href="#by"/></g><g id="A"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#ay"/><use transform="matrix(0.05,0,0,0.05,14,0)" xlink:href="#aw"/><use transform="matrix(0.05,0,0,0.05,26.950000000000003,0)" xlink:href="#au"/><use transform="matrix(0.05,0,0,0.05,39.900000000000006,0)" xlink:href="#aq"/><use transform="matrix(0.05,0,0,0.05,51.900000000000006,0)" xlink:href="#at"/></g><path d="M19
 5-6C206 82 75 100 31 46c-4-6-6-13-8-21l49-6c3 16 16 24 34 25 40 0 42-37 40-79-11 22-30 35-61 35-53 0-70-43-70-97 0-56 18-96 73-97 30 0 46 14 59 34l2-30h47zm-90-29c32 0 41-27 41-63 0-35-9-62-40-62-32 0-39 29-40 63 0 36 9 62 39 62" id="bz"/><path d="M135-194c53 0 70 44 70 98 0 56-19 98-73 100-31 1-45-17-59-34 3 33 2 69 2 105H25l-1-265h48c2 10 0 23 3 31 11-24 29-35 60-35zM114-30c33 0 39-31 40-66 0-38-9-64-40-64-56 0-55 130 0 130" id="bA"/><path d="M114-157C55-157 80-60 75 0H25v-261h50l-1 109c12-26 28-41 61-42 86-1 58 113 63 194h-50c-7-57 23-157-34-157" id="bB"/><g id="B"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,10.950000000000001,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,20.950000000000003,0)" xlink:href="#aI"/><use transform="matrix(0.05,0,0,0.05,26.900000000000002,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,36.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,46.900000000
 000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,56.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,66.9,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,76.9,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,86.9,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,96.9,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,101.9,0)" xlink:href="#aI"/><use transform="matrix(0.05,0,0,0.05,107.85000000000001,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,117.85000000000001,0)" xlink:href="#aK"/><use transform="matrix(0.05,0,0,0.05,123.85000000000001,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,128.85000000000002,0)" xlink:href="#bz"/><use transform="matrix(0.05,0,0,0.05,139.8,0)" xlink:href="#bA"/><use transform="matrix(0.05,0,0,0.05,150.75,0)" xlink:href="#bB"/></g><path d="M99-251c69 0 84 53 88 123 5 99-61 162-144 118-15-8-21-25-26-45l46-6c4 31 50 33 63 7 7-15 12-36 12-60-9 18-29 28-5
 4 28-48 0-72-32-72-82 0-55 31-83 87-83zm-1 128c24 0 37-16 37-39 0-27-10-51-37-51-25 0-35 19-35 45 0 25 10 45 35 45" id="bC"/><g id="C"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#aP"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#bC"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#aJ"/></g><path d="M115-194c55 1 70 41 70 98S169 2 115 4C84 4 66-9 55-30l1 105H24l-1-265h31l2 30c10-21 28-34 59-34zm-8 174c40 0 45-34 45-75s-6-73-45-74c-42 0-51 32-51 76 0 43 10 73 51 73" id="bD"/><g id="D"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bx"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.641975308641975,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,12.314814814814813,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864
 196,0,0,0.030864197530864196,18.48765432098765,0)" xlink:href="#bD"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,24.66049382716049,0)" xlink:href="#bp"/></g><path d="M16-82v-28h88v28H16" id="bE"/><path d="M27 0v-27h64v-190l-56 39v-29l58-41h29v221h61V0H27" id="bF"/><g id="E"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.987654320987653,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.074074074074073,0)" xlink:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.0679012345679,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.740740740740737,0)" xlink:href="#bF"/></g><path d="M30 0v-248h33v221h125V0H30" id="bG"/><g id="
 F"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bG"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,6.172839506172839,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.61111111111111,0)" xlink:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#bi"/></g><path d="M101-251c82-7 93 87 43 132L82-64C71-53 59-42 53-27h129V0H18c2-99 128-94 128-182 0-28-16-43-45-43s-46 15-49 41l-32-3c6-41 34-60 81-64" id="bH"/><g id="G"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.987654320987653,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.074074074074073,0)" xlin
 k:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.0679012345679,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.740740740740737,0)" xlink:href="#bH"/></g><path d="M126-127c33 6 58 20 58 59 0 88-139 92-164 29-3-8-5-16-6-25l32-3c6 27 21 44 54 44 32 0 52-15 52-46 0-38-36-46-79-43v-28c39 1 72-4 72-42 0-27-17-43-46-43-28 0-47 15-49 41l-32-3c6-42 35-63 81-64 48-1 79 21 79 65 0 36-21 52-52 59" id="bI"/><g id="H"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.987654320987653,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.074074074074073,0)" xlink:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.067901234567
 9,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.740740740740737,0)" xlink:href="#bI"/></g><path d="M135-194c52 0 70 43 70 98 0 56-19 99-73 100-30 1-46-15-58-35L72 0H24l1-261h50v104c11-23 29-37 60-37zM114-30c31 0 40-27 40-66 0-37-7-63-39-63s-41 28-41 65c0 36 8 64 40 64" id="bJ"/><path d="M121-226c-27-7-43 5-38 36h38v33H83V0H34v-157H6v-33h28c-9-59 32-81 87-68v32" id="bK"/><g id="I"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,10.950000000000001,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,20.950000000000003,0)" xlink:href="#aI"/><use transform="matrix(0.05,0,0,0.05,26.900000000000002,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,36.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,46.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,56.900000000000006,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,
 66.9,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,76.9,0)" xlink:href="#aJ"/><use transform="matrix(0.05,0,0,0.05,86.9,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,96.9,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,101.9,0)" xlink:href="#aI"/><use transform="matrix(0.05,0,0,0.05,107.85000000000001,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,117.85000000000001,0)" xlink:href="#aK"/><use transform="matrix(0.05,0,0,0.05,123.85000000000001,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,128.85000000000002,0)" xlink:href="#bJ"/><use transform="matrix(0.05,0,0,0.05,139.8,0)" xlink:href="#aK"/><use transform="matrix(0.05,0,0,0.05,146.8,0)" xlink:href="#bK"/></g><path d="M139-81c0-46-55-55-73-27H18l9-140h149v37H72l-4 63c44-38 133-4 122 66C201 21 21 35 11-62l49-4c5 18 15 30 39 30 26 0 40-18 40-45" id="bL"/><g id="J"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#bL"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:
 href="#aR"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#aQ"/></g><path d="M160-131c35 5 61 23 61 61C221 17 115-2 30 0v-248c76 3 177-17 177 60 0 33-19 50-47 57zm-97-11c50-1 110 9 110-42 0-47-63-36-110-37v79zm0 115c55-2 124 14 124-45 0-56-70-42-124-44v89" id="bM"/><path d="M233-177c-1 41-23 64-60 70L243 0h-38l-65-103H63V0H30v-248c88 3 205-21 203 71zM63-129c60-2 137 13 137-47 0-61-80-42-137-45v92" id="bN"/><path d="M63-220v92h138v28H63V0H30v-248h175v28H63" id="bO"/><g id="K"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bM"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.401234567901234,0)" xlink:href="#bO"/></g><g id="L"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bx"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.641975308641975,
 0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.814814814814813,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.98765432098765,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.16049382716049,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.83333333333333,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,37.00617283950617,0)" xlink:href="#bi"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,40.09259259259259,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,42.53086419753086,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,48.7037037037037,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,54.876543209876544,0)" xlink:href=
 "#bk"/></g><g id="M"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bx"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.641975308641975,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.814814814814813,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.98765432098765,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,24.66049382716049,0)" xlink:href="#bF"/></g><path d="M127-220V0H93v-220H8v-28h204v28h-85" id="bP"/><path d="M24 0v-261h32V0H24" id="bQ"/><g id="N"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bP"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,5.524691358024691,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,11.69753086419753,0)" xlink:href="#bi"/><use transform="matrix(0.030
 864197530864196,0,0,0.030864197530864196,14.78395061728395,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.956790123456788,0)" xlink:href="#bQ"/></g><g id="O"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#bw"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,17.253086419753085,0)" xlink:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,22.80864197530864,0)" xlink:href="#bn"/></g><g id="P"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bM"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#bG"/><use transform="matrix(0.030864197530864196,
 0,0,0.030864197530864196,13.580246913580247,0)" xlink:href="#bv"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,22.22222222222222,0)" xlink:href="#bM"/></g><g id="Q"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,3.0864197530864197,0)" xlink:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,11.080246913580247,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.753086419753085,0)" xlink:href="#bF"/></g><path d="M115-194c53 0 69 39 70 98 0 66-23 100-70 100C84 3 66-7 56-30L54 0H23l1-261h32v101c10-23 28-34 59-34zm-8 174c40 0 45-34 45-75 0-40-5-75-45-74-42 0-51 32-51 76 0 43 10 73 51 73" id="bR"/><g id="R"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bM"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074
 066,0)" xlink:href="#bQ"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.845679012345677,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,16.018518518518515,0)" xlink:href="#bR"/></g><g id="S"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,3.6728395061728394,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.845679012345679,0)" xlink:href="#bw"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,12.932098765432098,0)" xlink:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,18.48765432098765,0)" xlink:href="#bn"/></g><g id="T"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,3.0864197530864197,0)" xlink:hr
 ef="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,11.080246913580247,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.753086419753085,0)" xlink:href="#bH"/></g><g id="U"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,3.0864197530864197,0)" xlink:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,11.080246913580247,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.753086419753085,0)" xlink:href="#bI"/></g><path d="M190-63c-7 42-38 67-86 67-59 0-84-38-90-98-12-110 154-137 174-36l-49 2c-2-19-15-32-35-32-30 0-35 28-38 64-6 74 65 87 74 30" id="bS"/><path d="M115-159c48 0 72 30 72 78 0 54-30 85-83 85-64 0-91-50-91-122 0-98 58-163 141-120 15 8 21 24 27 44l-47 6c-5-31-48-31-61-4-7 14-11 33-11 60 9-17 28-27 53-27zM102-35c24 0 36-20 3
 6-45s-11-43-37-43c-23 0-36 14-36 38 0 27 11 50 37 50" id="bT"/><path d="M14-72v-43h91v43H14" id="bU"/><path d="M138-131c27 9 52 24 51 61 0 53-36 74-89 74S11-19 11-69c0-35 22-54 51-61-78-25-46-121 38-121 51 0 83 19 83 66 0 30-18 49-45 54zm-38-16c24 0 32-13 32-36 1-23-11-34-32-34-22 0-33 12-32 34 0 22 9 36 32 36zm1 116c27 0 37-17 37-43 0-25-13-39-39-39-24 0-37 15-37 40 0 27 11 42 39 42" id="bV"/><path d="M185-48c-13 30-37 53-82 52C43 2 14-33 14-96s30-98 90-98c62 0 83 45 84 108H66c0 31 8 55 39 56 18 0 30-7 34-22zm-45-69c5-46-57-63-70-21-2 6-4 13-4 21h74" id="bW"/><g id="V"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#bS"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,20,0)" xlink:href="#bJ"/><use transform="matrix(0.05,0,0,0.05,30.950000000000003,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,40.95,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,50.95,0)" xlink:href="#bT"/><use transform="matrix(0.05
 ,0,0,0.05,60.95,0)" xlink:href="#bL"/><use transform="matrix(0.05,0,0,0.05,70.95,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,80.95,0)" xlink:href="#bU"/><use transform="matrix(0.05,0,0,0.05,86.9,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,96.9,0)" xlink:href="#aO"/><use transform="matrix(0.05,0,0,0.05,106.9,0)" xlink:href="#bL"/><use transform="matrix(0.05,0,0,0.05,116.9,0)" xlink:href="#bV"/><use transform="matrix(0.05,0,0,0.05,126.9,0)" xlink:href="#bU"/><use transform="matrix(0.05,0,0,0.05,132.85,0)" xlink:href="#aS"/><use transform="matrix(0.05,0,0,0.05,142.85,0)" xlink:href="#bS"/><use transform="matrix(0.05,0,0,0.05,152.85,0)" xlink:href="#bS"/><use transform="matrix(0.05,0,0,0.05,162.85,0)" xlink:href="#bS"/><use transform="matrix(0.05,0,0,0.05,172.85,0)" xlink:href="#bU"/><use transform="matrix(0.05,0,0,0.05,178.79999999999998,0)" xlink:href="#bJ"/><use transform="matrix(0.05,0,0,0.05,189.74999999999997,0)" xlink:href="#aH"/><use transform="matr
 ix(0.05,0,0,0.05,199.74999999999997,0)" xlink:href="#aP"/><use transform="matrix(0.05,0,0,0.05,209.74999999999997,0)" xlink:href="#bS"/><use transform="matrix(0.05,0,0,0.05,219.74999999999997,0)" xlink:href="#bU"/><use transform="matrix(0.05,0,0,0.05,225.69999999999996,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,236.64999999999998,0)" xlink:href="#aS"/><use transform="matrix(0.05,0,0,0.05,246.64999999999998,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,256.65,0)" xlink:href="#bV"/><use transform="matrix(0.05,0,0,0.05,266.65,0)" xlink:href="#bW"/><use transform="matrix(0.05,0,0,0.05,276.65,0)" xlink:href="#bK"/><use transform="matrix(0.05,0,0,0.05,282.59999999999997,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,292.59999999999997,0)" xlink:href="#aO"/><use transform="matrix(0.05,0,0,0.05,302.59999999999997,0)" xlink:href="#aP"/><use transform="matrix(0.05,0,0,0.05,312.59999999999997,0)" xlink:href="#bK"/><use transform="matrix(0.05,0,0,0.05,31
 8.54999999999995,0)" xlink:href="#bS"/><use transform="matrix(0.05,0,0,0.05,328.54999999999995,0)" xlink:href="#bW"/><use transform="matrix(0.05,0,0,0.05,338.54999999999995,0)" xlink:href="#aF"/><use transform="matrix(0.05,0,0,0.05,343.54999999999995,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,354.49999999999994,0)" xlink:href="#aO"/><use transform="matrix(0.05,0,0,0.05,364.49999999999994,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,374.49999999999994,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,384.49999999999994,0)" xlink:href="#aG"/><use transform="matrix(0.05,0,0,0.05,395.44999999999993,0)" xlink:href="#aH"/><use transform="matrix(0.05,0,0,0.05,405.44999999999993,0)" xlink:href="#aP"/><use transform="matrix(0.05,0,0,0.05,415.44999999999993,0)" xlink:href="#aJ"/></g><g id="W"><use transform="matrix(0.05,0,0,0.05,0,0)" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,10,0)" xlink:href="#bT"/><use transform="matrix(0.05,0,0,0.05,20,0
 )" xlink:href="#aQ"/><use transform="matrix(0.05,0,0,0.05,30,0)" xlink:href="#aR"/><use transform="matrix(0.05,0,0,0.05,40,0)" xlink:href="#aS"/><use transform="matrix(0.05,0,0,0.05,50,0)" xlink:href="#aS"/></g><g id="X"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bf"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,13.580246913580247,0)" xlink:href="#bc"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.753086419753085,0)" xlink:href="#bs"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,28.98148148148148,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,35.15432098765432,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,41.327160493827165,0)" xlink:href="#bi"/></g><g id="Y"><use transf
 orm="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#ba"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,9.228395061728394,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.401234567901234,0)" xlink:href="#bc"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,21.574074074074073,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,24.012345679012345,0)" xlink:href="#be"/></g><path d="M137 0h-34L2-248h35l83 218 83-218h36" id="bX"/><g id="Z"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,6.7901234567901225,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,12.962962962962962,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,16.6358024691358,0)" xli
 nk:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,22.191358024691354,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,24.629629629629626,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.802469135802465,0)" xlink:href="#aW"/></g><path d="M30-248c87 1 191-15 191 75 0 78-77 80-158 76V0H30v-248zm33 125c57 0 124 11 124-50 0-59-68-47-124-48v98" id="bY"/><path d="M137-103V0h-34v-103L8-248h37l75 118 75-118h37" id="bZ"/><g id="aa"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bh"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.4074074074074066,0)" xlink:href="#ba"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,16.6358024691358,0)" xlink:href="#bY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,24.04320987654321,0)" xlink:href="#bP"/><use transform="matrix(0.03086
 4197530864196,0,0,0.030864197530864196,30.80246913580247,0)" xlink:href="#bZ"/></g><g id="ab"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bx"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,8.641975308641975,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.814814814814813,0)" xlink:href="#aW"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.98765432098765,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.16049382716049,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.83333333333333,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,37.00617283950617,0)" xlink:href="#bi"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,40.09259259259259,0)" xlink:href="#bd"/><use transform="matrix(0.030864197530864196,0,
 0,0.030864197530864196,42.53086419753086,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,48.7037037037037,0)" xlink:href="#aW"/></g><g id="ac"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#bw"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,17.253086419753085,0)" xlink:href="#bk"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,22.80864197530864,0)" xlink:href="#bn"/></g><g id="ad"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.0308641975308
 64196,14.166666666666666,0)" xlink:href="#be"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.72222222222222,0)" xlink:href="#bn"/></g><path d="M197 0v-115H63V0H30v-248h33v105h134v-105h34V0h-34" id="ca"/><g id="ae"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#ca"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.339506172839506,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,26.512345679012345,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,32.68518518518518,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,36.358024691358025,0)" xlink:href="#bE"/><use t
 ransform="matrix(0.030864197530864196,0,0,0.030864197530864196,40.03086419753087,0)" xlink:href="#bF"/></g><g id="af"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bn"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,3.0864197530864197,0)" xlink:href="#bn"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,6.172839506172839,0)" xlink:href="#bn"/></g><g id="ag"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#be"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.72222222222222,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,25.89506172839506,0)" xlink:href="#bj"/><use transform="matrix
 (0.030864197530864196,0,0,0.030864197530864196,29.5679012345679,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,35.74074074074074,0)" xlink:href="#bk"/></g><g id="ah"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.987654320987653,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.074074074074073,0)" xlink:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.0679012345679,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.740740740740737,0)" xlink:href="#bH"/></g><g id="ai"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bt"/><use transform="matrix(0.03086419753086
 4196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bt"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,15.987654320987653,0)" xlink:href="#aV"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.074074074074073,0)" xlink:href="#bu"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,27.0679012345679,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,30.740740740740737,0)" xlink:href="#bF"/></g><g id="aj"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#ca"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,20.339506172839506,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.03
 0864197530864196,26.512345679012345,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,32.68518518518518,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,36.358024691358025,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,40.03086419753087,0)" xlink:href="#bH"/></g><path d="M206 0h-36l-40-164L89 0H53L-1-190h32L70-26l43-164h34l41 164 42-164h31" id="cb"/><g id="ak"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#bb"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#cb"/></g><g id="al"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,
 0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#be"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.72222222222222,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,25.89506172839506,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,29.5679012345679,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,35.74074074074074,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,39.41358024691358,0)" xlink:href="#bF"/></g><g id="am"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="
 #be"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.72222222222222,0)" xlink:href="#bm"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,25.89506172839506,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,29.5679012345679,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,35.74074074074074,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,39.41358024691358,0)" xlink:href="#bH"/></g><g id="an"><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,0,0)" xlink:href="#bN"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,7.993827160493827,0)" xlink:href="#aY"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,14.166666666666666,0)" xlink:href="#be"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,19.72222222222222,0)" xlink:href="#bm"/><use transf
 orm="matrix(0.030864197530864196,0,0,0.030864197530864196,25.89506172839506,0)" xlink:href="#bj"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,29.5679012345679,0)" xlink:href="#aX"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,35.74074074074074,0)" xlink:href="#bE"/><use transform="matrix(0.030864197530864196,0,0,0.030864197530864196,39.41358024691358,0)" xlink:href="#bI"/></g></defs></g></svg>
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.md
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.md?rev=1780547&r1=1780546&r2=1780547&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.md (original)
+++ jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.md Fri Jan 27 12:27:47 2017
@@ -17,15 +17,15 @@
 
 # Structure of TAR files
 
-Here is described the phisical layout of a TAR file as used by Apache Oak.
+Here is described the physical layout of a TAR file as used by Apache Oak.
 First, a brief introduction of the TAR format is given. Next, more details are
-provided about the low level information that are written in TAR entries.
+provided about the low level information that is written in TAR entries.
 Finally, it's described how Oak saves a graph data structure inside the TAR file
 and how this representation is optimized for fast retrieval.
 
 ## Organization of a TAR file
 
-Phisically speaking, a TAR file is a linear sequence of blocks. A TAR file is
+Physically speaking, a TAR file is a linear sequence of blocks. A TAR file is
 terminated by two blocks containing zero bytes. Every block has a size of 512
 bytes.
 
@@ -33,6 +33,8 @@ Logically speaking, a TAR file is a line
 represented by two or more blocks. The first block always contains the entry
 header. Subsequent blocks store the content of the file.
 
+![Overview of a TAR file](tar.png)
+
 The entry header is composed of the following fields:
 
 - file name (100 bytes) - name of the file stored in this entry.
@@ -73,26 +75,44 @@ of the entry values are:
 
 - last modification time: the time stamp when the entry was written.
 
-There are three kind of files stored in a TAR file:
+There are four kinds of files stored in a TAR file:
 
 - segments: this type of file contains data about a segment in the segment
   store. This kind of file has a file name in the form `UUID.CRC2`, where `UUID`
-  is a 128 bit UUID represented as an hexadecimal string and `CRC2` is a zer-
+  is a 128 bit UUID represented as an hexadecimal string and `CRC2` is a zero-
   padded numeric string representing the CRC2 checksum of the raw segment data.
 
-- graph: this file has a name ending in `.gph` and contains a representaion of a
+- binary references: this file has a name ending in `.brf` and represents a
+  catalog of blobs (i.e. value records) referenced by segments in this TAR file.
+  This catalog is indexed by the generation of the segments it contains.
+
+- graph: this file has a name ending in `.gph` and contains a representation of a
   graph. The graph is represented as an adjacency list of UUIDs.
 
 - index: this file has a name ending in `.idx` and contains a sorted list of
   every segment contained in the TAR file.
 
-The layout of the TAR file used by Oak is engineered for perfomance of read
+## Oak TAR file layout
+
+Before delving into further details, a few words on how Oak names TAR files. The
+convention is to always start with a `data00000a.tar` file. As stuff is written
+to the repository, new TAR files are added, incrementing their count from right
+to left, thus ending up with `data00001a.tar`, `data00002a.tar` and so on.
+
+Each time a compaction cycle ends, there is a cleanup phase in which segments
+from an old generation are purged. Those tar files that shrink by at least 25%
+are rewritten to a new tar generation, skipping the reclaimed segments. A shrunk
+TAR file increases its tail generation character, e.g. from `data00000a.tar` to
+`data00000b.tar`.
+
+The layout of the TAR file used by Oak is engineered for performance of read
 operations. In particular, the most important information is stored in the
 bottom entries. Reading the entries from the bottom of the file, you encounter
-first the index, then the graph, then segment files. The idea is that the index
-must be read first, because it provides a fast tool to locate segments in the
-rest of the file. Next comes the graph, that describes how segments relate to
-each other. Last come the segments, whose relative order can be ignored.
+first the index, then the graph, then the binary references and finally the
+segment files. The idea is that the index must be read first, because it provides
+a fast tool to locate segments in the rest of the file. Next comes the graph,
+that describes how segments relate to each other. Last come the segments, whose
+relative order can be ignored.
 
 At the same time, the layout of the TAR file allows fast append-only operations
 when writing. Since the relative order of segment files is not important,
@@ -100,37 +120,127 @@ segment entries can be written in a firs
 the end of the file will provide a fast way to access them even if they are
 scattered around the file.
 
+The picture below presents the building blocks of a TAR file as used by Oak. For
+illustration purposes, an hypothetical TAR file called `data00000a.tar` is
+dissected.
+
+![Overview of an Oak TAR file](oaktar.png)
+
 ## Segment files
 
 Segment files contain raw data about a segment. Even if there are multiple kinds
-of segments, TAR file only distinguishes between data and non-data segments. A
+of segments, a TAR file only distinguishes between data and non-data segments. A
 non-data segment is always saved as-is in the TAR file, without further
 processing. A data segment, instead, is inspected to extract references to other
-segments.
+segments or to binary content.
 
-A data segment can contain at most 255 references to other segments. These
-references are simply stored as a list of UUIDs. The referenced segments can be
-stored inside the current TAR file or outside of it. In the first case, the
-referenced segment can be found by inspecting the index. In the second case, an
-external agent is responsible to find the segment in another TAR file.
+A data segment can contain references to other segments. These references are
+simply stored as a list of UUIDs. The referenced segments can be stored inside
+the current TAR file or outside of it. In the first case, the referenced segment
+can be found by inspecting the index. In the second case, an external agent is
+responsible to find the segment in another TAR file.
 
 The list of segments referenced by a data segment will end up in the graph file.
 To speed up the process of locating a segment in the list of referenced segment,
 this list is maintained ordered.
 
+The data segment file is divided in two parts. The first is the header and the
+second contains the actual records contained in this segment.
+
+The data segment header is divided in three parts:
+
+- a fixed part (32 bytes) containing:
+
+    - a magic number (3 bytes): identifies the beginning of a data segment.
+
+    - version (1 byte): the segment version.
+
+    - empty bytes (6 bytes): reserved for future use.
+
+    - generation (4 bytes): generation of the segment, serialized as a big endian
+      integer.
+
+    - number of references (4 bytes): number of references to external segments,
+      serialized as a big endian integer.
+
+    - number of records (4 bytes): number of records in this segment, serialized
+      as a big endian integer.
+
+    - empty bytes (10 bytes): reserved for future use.
+
+- second part of the header is a variable list of references to external segments.
+  Here there will be a list of the UUIDs, matching the number of references
+  specified in the first part of the header.
+
+- the third and last part of the header consists of a list of record header
+  entries, matching the number of records specified in the first part of the
+  header. Each record header consists of:
+
+    - record number (4 bytes), serialized as a big endian integer.
+
+    - record type (1 byte): can be one of *LEAF*, *BRANCH*, *BUCKET*, *LIST*,
+      *VALUE*, *BLOCK*, *TEMPLATE*, *NODE* or *BLOB_ID*.
+
+    - record offset (4 bytes), serialized as a big endian integer: offset of the
+      record counting from the end of the segment. The actual position of the
+      record can be obtained by computing `(segment size - offset)`.
+
+After the segment header, the actual records are stored, at the offsets
+advertised in the corresponding record header stored in the last part of the
+segment header.
+
+## Binary references files
+
+The binary references file represents an index of binary references (blobs) in a
+TAR file. Each segment lists the blobs it references and the whole mapping is
+stored according to the generation of the segment.
+
+The format of the binary references file is optimized for reading. The file is
+stored in reverse order to maintain the most important information at the end of
+the file. This strategy is inline with the overall layout of the entries in the
+TAR file.
+
+The binary references file is divided in two parts. The first is a header and the
+second contains the real data in the catalog.
+
+The binary references header contains the following fields:
+
+- a magic number (4 bytes): identifies the beginning of a binary references file.
+
+- size of the whole binary references mapping (4 bytes): number of bytes occupied
+  by the entire structure holding binary references (per generation, per segment).
+
+- number of generations (4 bytes): number of different generations of the segments
+  which refer blobs.
+
+- checksum (4 bytes): a CRC2 checksum of the content of the binary references
+  file.
+
+Immediately after the graph header, the graph adjacency list is stored. The
+storage scheme used is the following:
+
+- generation of all the following segments.
+
+- number of segment to binary references mappings for the current generation.
+
+- for each mapping we have:
+
+    - UUID of the referencing segment.
+
+    - number of referenced blobs.
+
+    - an unordered enumeration of blob ids representing blobs referenced by the
+      current segment.
+
 ## Graph files
 
 The graph file represents the relationships between segments stored inside or
-outside the TAR file. The graph is stored as an adjacency list of UUID, where
-each UUID represents a segment.
+outside the TAR file. The graph is stored as an adjacency list of UUIDs, where
+each UUID represents a segment. Like the binary references file, the graph
+file is also stored backwards.
 
-The format of the graph file is optimized for reading. The graph file is stored
-in reverse order to maintain the most important information at the end of the
-file. This strategy is inline with the overall layout of the entries in the TAR
-file.
-
-The content of the graph file is divided in three main parts: a graph header, a
-graph adjacency list and a vertex mapping table.
+The content of the graph file is divided in two parts: a graph header and a
+graph adjacency list.
 
 The graph header contains the following fields:
 
@@ -139,44 +249,35 @@ The graph header contains the following
 - size of the graph adjacency list (4 bytes): number of bytes occupied by the
   graph adjacency list.
 
-- size of the vertex mapping table (4 bytes): number of bytes occupied by the
-  vertex mapping table.
+- number of entries (4 bytes): how many adjacency lists are stored.
 
 - checksum (4 bytes): a CRC2 checksum of the content of the graph file.
 
-Immediately after the graph header, the graph adjacency list is stored. In the
-list, each vertex is represented by an integer. Each integer represents an index
-in the vertex mapping table. For each vertex stored in the adjacency list, the
-following information are written:
-
-- the integer representing the current vertex.
-
-- zero or more integers for each vertex referenced by the current one.
-
-- a sentinel value representing the list of adjacent vertices (-1).
-
-At the end, the vertex mapping table is stored. This table is just an ordered
-list of UUIDs. The integers used in the graph adjacency list can be used as
-index in the vertext mapping table to read the UUID of the corresponding
-segment. This is a space optimization. Since UUIDs can be repeated more than
-once in the adjacency list, it make sense to replace them with cheaper
-placeholders. A UUID is 128 bit long, while an integer just 4.
+Immediately after the graph header, the graph adjacency list is stored. The
+storage scheme used is the following:
+
+- UUID of the source segment.
+
+- size of the adjacency list of the source segment.
+
+- an unordered enumeration of UUIDs representing target segments referenced by
+  the source segment.
 
 ## Index files
 
 The index file is an ordered list of references to the entries contained in the
 TAR file. The references are ordered by UUID and they point to the position in
-the file where the entry is stored. Like the graph file, even the index file is
+the file where the entry is stored. Like the graph file, the index file is also
 stored backwards.
 
 The index file is divided in two parts. The first is an index header, the second
 contains the real data about the index.
 
-The index data contains the following fields:
+The index header contains the following fields:
 
 - a magic number (4 bytes): identifies the beginning of an index file.
 
-- size fo the index (4 bytes): number of bytes occupied by the index data. This
+- size for the index (4 bytes): number of bytes occupied by the index data. This
   size also contains padding bytes that are added to the index to make it align
   with the TAR block boundary.
 
@@ -185,17 +286,19 @@ The index data contains the following fi
 - checksum (4 bytes): a CRC32 checksum of the content of the index file.
 
 After the header, the content of the index starts. For every entry contained in
-the index, the following information are stored:
+the index, the following information is stored:
 
-- the most significat bits of the UUID (8 bytes)
+- the most significant bits of the UUID (8 bytes).
 
-- the least significat bits of the UUID (8 bytes)
+- the least significant bits of the UUID (8 bytes).
 
 - the offset in the TAR file where the TAR entry containing the segment is
   located.
 
 - the size of the entry in the TAR file.
 
+- the generation of the entry.
+
 Since the entries in the index are sorted by UUID, and since the UUIDs assigned
 to the entries are uniformly distributed, when searching an entry by its UUID an
 efficient algorithm called interpolation search can be used. This algorithm is a

Added: jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.png
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.png?rev=1780547&view=auto
==============================================================================
Binary files jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.png (added) and jackrabbit/oak/trunk/oak-doc/src/site/markdown/nodestore/segment/tar.png Fri Jan 27 12:27:47 2017 differ