!#"$ &%('$)*,+-/. 0)*/
213 4)5 6 78:9;)7<
=>@?BACEDGFIHJ>LK0F@F*>*KNMPOJQ@RTSJUTO4V7W@X
Y[Z@?\CEDGFI][C;D^F@?_@`aFbMOJQ@RJSTUTO4V7S@X
m n
epo5qsr/ZLtuZLC;CEKgvwo@exC^ydfLrzCaZ5{|fE>*f*FLC}?\Ca?\oe~_5{rkArz;>5{rzo4ZrkZ
c3oK@C*ePZ]>5{ >*>LDC~LD {C*?D
m
]r C*eC*ZL{@*eo@>LfaFLC;D
a P;,; ¡p¢P£- ¤¢¤£P
¥@ ¦b§¤¨;¢ª©/£T¢,[£P£
m ¹º
Y»DGJCEC;K@D¼F*>5½LCdJC;CaZgr/ZLf*eCE>*Dr/ZLtg>L{>g?_LfaFBv >*D{Caee,>5{C
{F*>@Zg?C*?o@ep~¾DGTC;CEK@D
m ¹
o4ZLfaA_LDGro4Z¿r/?aeoa½Tr/ZLt}f7>LfaFLCdTC*F*>L½TroerzDtToªr/ZLt3{ oITC>@Z
m
?>@AkA/h4v >LD {Á|cÂ?C*?o@e¤rCED|{F*>5{\rk?B*eoJ½LC3TC*epvwo@eP?>ZLf;C};~
FLo4AK4r/ZLtIeC;fEC*Z5{A~eC^vwCaeC*ZLfEC;KIK>5{ >
m
c3C*?o@ep~eC;vwC*eC*ZLfECT¿
¹
>LfaFLC}ÃÄr{Gh
¹
>*f*FLCgcgrDD
m º
>ae,>@?C^{CaepDE¿
a¬ ¢-¨
Å §GÆ ÇÈÉ :§ Ê
m ¹
>*f*FLCBªCaZLDr{r½LCBªC7>aef*FbM
¹
0X{eC;CED
«^ GP;¢z0;§¨[Ƥ¤¨ ¬G¢£°
¥TGP£p¢£§¤Ì §7P¨[§¤Ì §©£°;Ï<§¤©¢4¢Ð£l¯;¢
Ë£/¢PϤ¢w;¬£¢ ^;¡®L,¤¢p¢p±L [§ÐGP
Å ¤¢¢,£JÑE£k ÄÒ;£©/£-ÏG¡G Ä*§ ¡¢ §ÇP¢ ; ¢P ÓªÔ7ÕÖT£P
m ¹
>*f*FLC}A°r/ZLC¼Drz^C5á3V5SI;~5{CED^h=:C^~¾DGr;C7á
º
oªrkZ5{Cae:Drz^C5áWN;~5{C;D
4CE>aef*F`GC^~aáÀR
Ü
m n o@>@A
äL¤¢z¯GÄ Ì;£*©ªaÑ;Ñ^ÕÖT£P0¦§ ¢4¢P GÏ ¢ Ï
¯G§¢P¬¬£°¢ £k Ï¢,§E¬¢P
Ö0¦P¨[¢ª¦§§E:,¤©p§G Ì ¡©/£ª;Õ ÙÑEÑ[¦£-Ƨ
m å K@C7>
æJÒE£°¢w§7Ò^G¢£ª«5§zÏz ¢ ^¡ÖLPçE
è@Ì ©/¤¦£ª¬¢, £ ¬£G ¢¤ G¡ÄÓ4ÔEÕpÖJ£kPÏ£P¬ P ©/£ªÆ¤¤¨
æJ§Ï¢Ï^¢0 ©£/¢¤Ï¤¢ ;¡®L,¤¢p¢p[P^Ï¡¬¢ ©/£ª§P
Ï¡ £a ©¬G¢,£°
m
ª{e¤_Lf;{_@epC
ÒJ¢0G§§ §Ä^¤©x¯GÌ G¡xÄéê^ëìíaî/êGïð
Ñ^¢p£GP0¦¢Pz¡G¯^£°;¬:P;¢w¯;;P§¨x , ®L,¤¢
m ¹
>*f*FLC}A°r/ZLC¼Drz^C5á3óoK@CDrz^C5áÀiJWu;~5{CED
m
=xC;~3>@ZLKgfaFTrkAKNTor/Z5{CaexCE>*f*F3ofEf*_@;~¾Wu;~5{C;D
m
=xC;~LDJCaeZLoK@CÀvwo@eÐôõö÷epCEC7áÀø
m
=xC;~LDJCaeZLoK@CÀvwo@e
¹
ô
õ
ö÷:eC;C5á3V7W
m åZ ¹
ôõö÷:eC;CED^hZ@_@?BJCaexoJv:f7>LfaFLC}A°r/ZLCED{ouJC¼D C7>aef*FLCEKb>JepC
ù Î ¡ +»"$sÛ\Ü[Ý;ÞÀ
incremental updates of B + -Trees. We achieve this goal by balancing the best features of the two index structures. Our tree structure, which we call a CSB + -Tree, is similar to a B + -Tree in the way it handles updates. However, a CSB + -Tree has fewer pointers per node than a B + -Tree. By having fewer pointers per node, we have more room for keys and hence better cache performance.
We get away with fewer pointers by using a limited amount of arithmetic on array offsets, together with the pointers, to identify child nodes.
For simplicity of presentation, we initially present a version of CSB + -Trees in which a node contains exactly one pointer. Sometimes we simply use the term CSB + -Tree to refer to this version when the context is clear. In Section 3.2 we will describe variants with more pointers per node. The number of pointers per node is a parameter that can be tuned to obtain good performance under particular workloads. We describe another variant of CSB + - Trees that further reduces split cost in Section 3.3.
3.1 Cache Sensitive B + -Trees with One Child Pointer
A CSB + -Tree is a balanced multi-way search tree.
Every node in a CSB + -Tree of order d contains m keys, where d <= m <= 2d. A CSB + -Tree puts all the child nodes of any given node into a node group. Nodes within a node group are stored contiguously and can be accessed using an offset to the first node in the group. 1 Each internal node in a CSB + -Tree has the following structure:
nKeys :number of keys in the node firstChild :pointer to the first child node keyList[2d] :a list of keys.
Each leaf node stores a list of <key, tuple ID> pairs, the number of these pairs, and two sibling pointers. 2 Since a CSB + -Tree node needs to store just one child pointer explicitly, it can store more keys per node than a B + -Tree. For example, if the node size (and cache line size) is 64 bytes and a key and a child pointer each occupies 4 bytes, then a B + -Tree can only hold 7 keys per node whereas a CSB + -Tree can have 14 keys per node. This gives CSB + -Tree two kinds of benefit: (a) a cache line can satisfy (almost) one more level of comparisons and thus the number of cache lines needed for a search is fewer;
(b) the fan out of each node is larger, which means
1 [O’N92] also considers grouping nodes together in a disk- based B + -Tree to improve I/O performance.
2 see Section 5 for further discussion of how leaf nodes can be implemented.
it uses less space. Figure 2 shows a CSB + -Tree of order 1. Each dashed box represents a node group.
The arrows from the internal nodes represent the first child pointers. All the nodes within a node group are physically adjacent to each other. In this example, a node group can have no more than three nodes within it. Note that grouping is just a physical ordering property, and does not have any associated space overhead.
2 3
25 30
5 7 12 13 16 19 20 22 24 25 27 30 31 33 36 39
3 13 19
22
33 7
Figure 2: A CSB + -Tree of Order 1 3.1.1 Operations on a CSB + -Tree
In this section, we consider bulkload, search, insert and delete operations on CSB + -Trees.
Bulkload. A typical bulkloading algorithm for B + -Trees is to keep inserting sorted leaf entries into the rightmost path from the root. However, this method can be expensive if used for CSB + -Trees since nodes in the same node group are not created sequentially. A more efficient bulkloading method for CSB + -Trees is to build the index structure level by level. We allocate space for all the leaf entries.
We then calculate how many nodes are needed in the higher level and then allocate a continuous chunk of space for all the nodes in this level. We then fill in the entries of nodes in the higher level by copying the largest value in each node in the lower level. We also set the first child pointer in each higher level node. We repeat the process until the higher level has only one node and this node is designated as the root. Since all the nodes in the same level are contiguous when they are created, we don’t have to do any additional copying to form a node group.
Search. Searching a CSB + -Tree is similar to searching a B + -Tree. Once we have determined the rightmost key K in the node that is smaller than the search key, we simply add the offset of K to the first-child pointer to get the address of the child node. (For values less than or equal to the leftmost key, the offset is 0.) So, for example, if
478
m
ô_@A`aAoT>*K
˧§G¢,P¬ P ©/£ª§©@¢¤£lP
a§§¢x¦Ï¨GP£ P[¢ ¯; £§ Ì §G [§§G¢,
¢PÏP^¢ ¯;;¤§¨
ü^§§^z¢¤ ¢P£/¤¢ ¯^ £§¤Ì §G¬¬£^¬£/¢, §¨¡G ,¤¢0±L£°p¢z§
¬G¢£°
*^¢ ¦¢¤¢P ,Ϭ£°GPp¡¢w§;§¨x^ G£Ï°ýþL£°¢
m
4CE>aef*F
Ñ5zϧ£5¢
Å Ô ÕÖT£,£:§¯£/¢PÏ
ÿ G¢£/¯;¢¤Ïp¢ Ƥ¤¨z¢¤ :^¢¤ ¢0Pϧ§£L¢P ¢¤ ,£
Ƥ¤¨: [ ¢P ®L,¤¢ ©\¢¢¤ ±L£¢§Ä¬¢, £L¢¯¤¢0¢¤
m å
ZLDC*ep{ro4Z
˯¡ ϧ£L¢p Å Ô7ÕÖT£xz,£¢ ^x§¯G£/¢¤Ï
Ò7, ÕPG
ÑEP£¡¢¤ :§©4G¢, £°¢ª¢P ¢¤£°¨
ש ¢4©§§¢P ,£¢4¢¤ : ¤¦3¢P£¨¢p:¢¤ G¬¬£°;¬£/¢x¬§
0¢P £¦, P¬§¢Gýÿ¤¢ ¬[ ¢¤ :¬ £¢ G ©0GþG©0 ¢¤ ±*£°p¢§
¬G¢£T[¬x ¯ ¢¤ :G¯^£^¬¬¢,P¢p¤¨¡©ý
! "#"$&%'()*+',)-.(/012)3
$4%
+56/ !#"$&%2'37 #"$&%298:;"1
m
][C*AC^{ro4Z
è@ E§¡¡¦P¨:wϧ£5¢, £°¢w;
ÿ Ç ¨ §¤¢ ;ÕÿG¢,¢P ¢,x¢¤£°¨þ*£Ï Ì :¢¢^ED¢
m º
eo4@ACa?¾¿
å
ZLf*eCE>*D CdrkZg?>4Fr/?_@? DGr;Coav:{FLCdZLoK@C¼t4eoª_@¾K0_LC
{oIrkZLfaepC7>LDCdr/Z¾fE>*f*FLC}A°r/ZLC¼Drz^C}?CE>ZLD?\oepC¼fEo4;~TrkZLt}oJvK>5{ >
rkZ¾f7>LDC¼oJvDG@Ar{
m
4oªAk_5{rzoªZ¿|]r½TrzK@CÀ{FLC¼faFTrkAKNZLoK@CEDr/Z5{oD C;t4?C*Z5{D;hD {o@eCdrkZ
CE>*f*FZLoK@CdJoªr/Z5{C*eD{oD CEt4?\CaZ5{D$>ZLKo4Z@A~BfaFTrkAKNZLoK@CEDr/Z
÷:eCEC¼oavo@eK@Cae:S¾q$r{FdSdDC;t4?C*Z5{D
m
÷[q[od½*>Je r>@Z5{DoJv
¹
ôõö÷:eC;CT¿
m G rFaCEKrz^CB4C;t4?\CaZ5{D
Ñ^¢£¢ ¤¨¡±L§§z¯x¢¤ :GP¢P ±L£°p¢,P¯^Ï¢0¢ §§G¢4©p§§
Ö ¡±L§§¢¤ :^¤¡P; [,¤¯;Ï¢þ^¢¤£kPçE£P¤;¬¤¨z¯G¤
¢P0,¤¯;Ï¢;§¨
m H
>aep~Tr/ZLtr;C4CEt4?\CaZ5{D
ü £ª§Æ§ 7þG^p¢P£/¢¡GP¤Ì §¨:GÏ^¯¢P ,¤¯;Ï¢
x¤Ì £¨Ä ¤¦G¡,£¢w;Gþ^£¢, ¤¦3P¯;Ï¢0©k£J¢¤ ,P¯^Ï ¢
¢:¦¢¤ : ¤¦G: §;¯
Ö5^ P;§¨¡; ,¤¯;Ï¢¡ z,£¢;¬¬,¢p¢¤ ±G[wÇ
m
ÃrztTC*exvepC4J0_LC*ZLf;~3oJvÄ?C*?o@ep~3>AAofE>L{ro4Z3>@ZLKgK@CE>AAofE>L{rzoªZ
fE>AADrkZ
¹
ôõö÷eC;CEDrDs>gaepo4@AC*?
m
ZLoa{FLCae>@@aeoT>*f*FrzD{oIaeCGö>@AkAofE>L{C3?C*?o@ep~Bvwoe¡CaZ5{rkeC
ZLoK@C¼tªeo4_@
m
*>LfECGö{rk?CÀ{e,>LK@CEoJ¿
¥TGP¬§¢[ü^§§^aÑ Å Ô7ÕÖT£x¤Ø ¢4¢P [£-ÏG§;*Ñ Å Ô7ÕÖT£
m
ó:oK@CDrz^C¾á
¹
>*f*FLC}ArkZLC¼Drz^C5áÀiJWu;~5{CED
m
=xC;~¾Drz^C5á
º
oªr/Z5{C*eDrz^C5á WI;~5{CED
m G oe
¹
0u{eC;CED;¿sV5iI`C^~LDÀJC*eÄZLoK@C
m G oeÐô
õ
ö÷epCECED;¿
å
Z5{CaePZ*>@AZLoK@C¼øI`C;~LD^h-KdfaFTrkAKNTor/Z5{CaepD$>@ZLK
Z@_@?TC*e:oavÐ`C;~LD_LD CEK
m G oe
¹
ô¡õö÷epCEC;DE¿
å
Z5{Cae¤Z*>AZLoK@C}V7WI`GC^~LD^hMLeD{faFTr/AK<JoªrkZ5{Cae
m
÷|r/?\CÀvwo@e:SJOTO4=»D C7>aepfaFLCED
ô õ ö÷epCEC;Ds>aeCd?\oepCÀ{F*>Z3SJQO D^Ao5q[Cae¡{F*>Z ô õ ö÷:eC;C
m
4C;t4?\CaZ5{CEK
¹
ô õ ö÷eC;C¼D C7>aepfaF3D^Ao5q[C*ex{F*>@Z
¹
ô õ ö÷eC;C
JCEfE>_LD CT¿lae>ZLf*FTr/ZLtv >*f^{oexoav:vwo@eP?C*e[rzDACED D¼Mc3o@eCÀf7>LfaFLC
?¼rzD DC;DX¼hC:F*{e,>¾fEo4?*>ae¤rDo4ZLDZLC;CEK@CEKg{of*F*ooJDCde¤rt4F5{
m
ôC;f7>@_LDC¼oJvÐA>*G~¾K@C*AC;{ro4Z?\oTD{oJvx{FLC¼{rk?C3rzD|DGJCaZ5{\r/Z
Aof7>5{r/ZLtd{F*CdepCEfEo@eKhDoK@C*AC;{C}JCaevwoe¤?>@ZLfEC¼DGrk?rkAz>ae¡{o
m ¹
ô õ ö÷:eCEC;Ds>aeCq[oeD C¼{F*>@Zbô õ ö÷eC;CEDvwo@er/ZLD Caep{ro4ZJCEf7>@_LD C
oJvx{FLC¼D^@A°r{f;oTD{
m ¹
ô õ ö÷:eCEC;DeC;K0_LfECDG@Ar{fEoTD{D otªr½LC¾r/Z5{C*eP?\CEK4r>5{C
JCaevwoe¤?>@ZLfEC
m
ôõö÷epCEC;DF*>5½LC{o>AAofE>L{C¼>gZLCGqRQTS"UMVgo4ZBC^½LCaep~BD^@A°r{Äq$FTr/AC
_AA ô õ ö÷epCEC;D$?>`C>AAofE>L{rzoªZq\FLC*ZWQTS"UTVYX!ZS![-\brzDÄv_@AAP
m G _AA
¹
ô õ ö÷epCEC;Ds>aeCdJC;{{C*e:{F*>@Zbô õ ö÷epCECED\r/Z3>@AkA>*DGJCEf^{D
C:FafEC*5{vwo@e¡D^*>LfEC
m å
ZgA°r/?¼r{CEKgD^*>LfEC¼CaZ5½Trkeo4Z@?\CaZ5{
¹
ôõö÷:eC;CEDs>@ZLK4C;t4?C*Z5{CEK
¹
ô
õ
ö÷:eCEC;DaepoJ½TrzK@Cv >*D{CaexD C7>aef*FLCEDq\FTrkAC¼D {rkAkAJC*rkZLtg>@AC
{oDG_@@Joe{\r/ZLf*eCa?\CaZ5{ >@A_@JK>L{C;D
m
_Tr{ >@ACÀvwoex>@@A°rzfE>L{rzoªZLDA°r/`C}]rztªr{ >AArkae,>ae rzCED^h-]ÀZ@A°r/ZLC
m cd>Tr/Z
º
epo4@AC*? ôC*rkZLtdK@K0eC;DD CEK¿`_aQMbdcfehgZeji9k4lS!QfSjgmU-e'kne
k4ZeQ)opgVZZ*V)UqknSri;eji)sjVtldou[jonV;g?[Mb"gSZvkwsjVtx"[jVZc
m å
AkAöC;CEf^{D|f7>@_LDC;K<;~B{FLCdaepo4@AC*?3¿
y\p¢,¯ ©0 G ¦¢¤
Ò^;§§¢ ¯x¢¤
m
c3oTD{ÄqsrzK@C*A~g_LDC;KÍóxö>ae~¾ª{oe>*tTC}c3oK@CaAMócdXD {o@eC;D
epCaAz>5{rzoªZ'{DeC;fEo@eK@DsD C4J0_LC*Z5{r>@AkA~r/Z¾DGAoJ{{C;KbK4rD^`d*>LtTCED
m
0>@?@AC}|_LCaep~¿
m
D CaACEf^{ÀZ*>@?\CÀveo4? Á<q$FLCaeCB>LtTCW~ W@O
m
ÁCaAz>5{rzoªZbÁòfEo4Z5{ >Tr/ZLD{F@epCECB>5{{Ge r/@_5{C;D$0 óÐh¡ó>?\CB>@ZLKgtTC
m G
oe¡{FLC>JoJ½LCJ0_LC*ep~B{FLCócÂ?oK@C*AF*>*D\r/Z5vwCae rzo@exf7>LfaFLC
j j
m G
_AA~¾K@C;fEo4?JoTD CEKvwo@eP? oJv
H
C*ep{rzfE>A
º
>aep{r{rzo4ZTrkZ*t
m º
>aep{r{rzo4ZLDs>@ZgZ7ö>L{{e r/@_5{CdeC*Az>5{rzo4Zr/Z5{oIZ¾D^_@7öeCaA>L{ro4ZLD
m
>*f*F3DG_@7öepCaA>L{rzoªZ¾fEo4Z5{ >Tr/ZLD{ qo>5{{e¤rk@_5{CED;¿Ä>gAoTtªrf7>@AeC;fEo@eK
rK>ZLK}{GFLC>5{{e¤r/@_5{CÀ½*>A_LC
m
_@7öeC*Az>5{rzo4ZLDs>aepC¼D{ o@eC;Kb>*DeCEtª_@Az>aeepCaAz>5{rzo4ZLDrkZ¾D^AoJ{{CEK
*>LtTCED
m
KT½*>@Z5{ >LtTCED;¿
è¯;:P¯;£©@P¬ ¢ §E§^PG§¢-¨©/£J,çE ¢w§ ¤©Gx¢p¢¤£lz¢,
Å
¤¢¢,£ª× ?g Äa :¬£©kG£-Ï
m
]rD>LKT½*>Z5{ >LtTCJ¿
Ò;£©/£-ÏG P¡ ¯;±;¢P§¨¡¤¢, £lG£¢,¤0©/£TçE £/PzÌ;§Ì¯ÄÏ¡§¢w¬§
N N
m å
K@C7>rD{ou`CEC*3{FLC>5{{e¤r/@_5{CÀ½*>A_LCEDoJvCE>*f*FeC;fEo@eKo4Z{F*C
D>?\Cd*>*tJC>LDr/Zgóc q$FTr/ACd_LDr/ZLtg>¾f7>LfaFLCGöve rzCaZLK0A~
>@AtTo@e¤r{F@?àvwoe[@Az>Lf*rkZ*td{FLCa? r/ZLDrzK@CÀ{FLCd*>*tTC
m H
Cae{rzf7>@AkA~*>aep{r{ro4ZgeC;fEo@eK@Dqsr{FTrkZ*>LtTCJh0D{oe¤rkZLt}{oTtTC^{GFLC*e
½*>@Ak_LC;D|oJv:C7>LfaF3>L{{e r/@_5{CdrkZ3>g?rkZTr/*>LtTC
m
KT½*>@Z5{ >LtTCED;¿
ÏÏÇP¢£Õ £¤G£P¬ ¢ G§;§G§¢-¨¢PÏ¡¬£°Ì¯
¬£©/£-Ï
Ïϧ;£P£|£¤;p¢¤£É ¢ ^:Pp¢
£¢P¯; §¢:¢P £JPw¯;¡ ;0 ¢4®*P¤¢0^§¨¢P ¢,¦¢¤
¬ ¯
÷sFLCÀvwoªAkAo7qsr/ZLt}DGArzK@C¼DGFLo5qÐD|{FLC¼f7>LfaFLCdTC*F*>L½Tro4_@e¡oJv
º
m G
oexD{oe¤rkZLtg>geCaA>L{ro4Z¾oJv:KC;t4epCEC}Zh
º
´*>aep{r{rzo4ZLD{FLCd*>LtTC
rkZ5{ouZg?rkZTr/*>LtTCED
m º
>LtTC}Ã:C7>LK@CaexfEo4Z5{ >Tr/ZLDJoªr/Z5{C*eD{ouJCEtªrkZTr/ZLtoavC7>LfaF
?¼r/ZTrka>LtTCahZ@_@?TC*eoJvx>L{{e r/@_5{CED^h4{FLCÀ>L{{e r/@_5{CDrz^CED^hf*_@ePeC*Z5{
Z@_@?TC*e:oavÐepCEfEo@eK@DsoªZB{FLC}*>LtTC¼>ZLK}veCEC¼DG*>*f;CB>L½*>Tr/A>@AC
m G rFaCEKNACaZLta{Fd>5{{e¤r/@_5{C;D$>aeC¼D{oepCEKNr/Z
G
ö?rkZTr/*>LtTCEDnP[÷sFLC¼C*ZLK
oJv
G
ö?¼r/ZTrk*>*tTC3F*>LDaepCED CaZLf;CgTr{нLCEf;{o@e
m H
>ae¤r>@@ACdACaZLtJ{F3>L{{e r/@_5{C;D$>aeC¼D{oepCEKNr/Z
H
ö?rkZTr/*>LtTCEDnP
m
ô_@A`^öAo@>LK4r/ZLt}>ZLK
å
ZLD Cae{rzo4ZLD
˧§G¢, Ϭ ¯;¡¢¤ :¬ ¯ ,;:¢p¢¤£/¢,Ì G§ ÇP
×z,£¢p£kPP£P¨:¤;¬P¨z¯[ ¤¢¤ G§Ì § ¢p[ [Ϭ ¯
y¾Ì £/§§¯¢¤Ì G§ P4£¡¬£P,¢Pþ7Ïz¬ ¯^ £/P Px¢p
,p¢,P¢p[ P^Ï^¢,£¤G£0¢P ¨:£x, £°¢Ä¢P :¬ ¯
ÒË3§§¢Pª¢P :¬ ¢w;© :¢p¢¤£/¢,Ì G§ ©T¢P :¬ ¯þ
p¢p£k¤¢¤ Ì G§ G Ь¢,Pª¢P :¢¤ÏG¬0 ®L¤¢£-£P¨
¬¬£°;¬£/¢,§¨
m
Y[JK>L{ro4ZLD
ü^¢¤ :¬ ¢ ;©T¢P ¢p¢¤£lz¢,Ì G§ ©T¢P :£P£Ä ¢¤
¬¢¢¤ Ì G§
檬¢,P4¢pÌ £/§x§¯¢PÌ G§ PÏP¨£çEz£kxÏz¬ ¯x§ Ì §
£P£°¯Ç¢ ;
ש@¢¤ P¬ x ¢0PØ¢4¢PP;ÏG¢,G£k Õ£°¯ÇP¢w;:
m
][C*AC^{ro4Z
¥@Ñ9z8P¤§¢£-£P¨x¢pÏ£-Æx¢P£¨:§ ¢,
ÒËƤ¬ª¢P£ Æ © §¤¢,PУ¤G£w¯[¢¤ÏG¬¢ª¢¤ p¢,£¢4©J¢P
¬ ¯ ,¤¢-¦§§¢w^ª¢:±L ¦ ¢P £J£P£Ð§¤¢
äLP£°¯ÇP¢w;xPG[; ¦¢PzϬ ¯ ©k¢£J§¤¢w;p0¢
ÏÏÇ©£k¯;Ï¢,¢ ^
m óc
H D º
å
?B*>Lf;{o4ZBf7>LfaFLC}JC*Fa>5½Trzoª_@e
ÒËg£E P¢,[¬ §¢-¨x¢ ¢Px :§¤Ì §ÿE¡ ÿ
£E ¤¢,§§¢ zÏ
Ö£E¤¢ ^Ï¡£* ©ÏP£P¤§¢©£¢P ££E ¤¢w;©
óc
º
Ú4C*ZLDGr{r½Tr{¤~¾Z*>@A~LDrzD
m
|_LCae~3C:FaCEf*_5{rzo4Z¾{rk?C¼oJvÐóc >@ZLK
º
&f;o4Z5½LC*etTC>*D{FLC
Z@_@?TC*e:oavÐaepo:CEf^{CEKb>L{{e r/@_5{CEDr/ZLfaepC7>LDC
m
D{FLC¼K@CEt4epCECoJvÄeC*Az>5{rzo4Zr/ZLf*eCE>*D CEDsoJ{FLCae¡v >Lf;{o@eD|DG_LfaFd>LD
å
>*f*FLC Caevwoe¤?>@ZLfEC
m å
Z3>¾K@C*?>@ZLKJöK0e r½LCaZJ0_LC*ep~¾CEFaC;fa_5{ro4Z@Az>@Z¾f*FTr/AKgo4JCae>L{o@e
epC;{_@ePZLDsf;o4Z5{eoªA{ou*>aeCaZ5{o4JCae>L{o@e[r/??C;K4r>5{CaA~3>5v,{Cae
tTC*ZLCae>L{rkZLtgoªZLCÀ{_@@AC
m
4od{FLCoªTC*e,>5{oexC:FaCEf*_5{rzo4Z3D C4J0_LC*ZLfEC}rzDAr/`C
{
º¡¹º¹º¹º¹º¹º¡¹º PP#{
m å
ZLD {e¤_Lf;{ro4Z3f7>LfaFLCÀ{F@e,>LD^FTrkZLtf7>@Z¾oªf;fa_@eq$FLCaZ¾{FLC¼fEo4?Tr/ZLC;K
Drz^CoJvx{ q[oo4JCae>L{o@eD|CEFaf;CEC;K@Ds{FLC¼Drz^CoJv:{FLC¼DG?>@AkACED{Gh
m n r½LCaZ3>J0_LCae~Eh>*K@Kg>¾D^JCEfLr>@A@_5Caexo4JCae>L{o@e:>L{ÐfEC*ep{ >@rkZ
@A>*f;CED\TC^{ q[C;CaZ3>}*>aeC*Z5{Ðo4JCae>L{o@eaoªTC*e,>5{oetªeo4_@B>@ZLK}f*FTr/AK
o4JC*e,>5{oe*o4JCae,>5{oe¡t4eoª_@
m
ô_5CaexoªTC*e,>5{oe:>@JoJ½LCÀfaFTrkAKNF*>*D|>Z¾>Je¤e,>;~BoJvÄTor/Z5{CaepD|{F*>5{
JoªrkZ5{Ð{oIr/Z5{C*eP?C;K4r>5{C}eCEDG_@A{{_@@AC;D
m
÷sFTrzDC;CEf^{r½LC*A~3f*F*>ZLtTC;D|{FLC¼C:FaCEfa_5{ro4Z3D C4J0_LCaZLf;C{o
{
º¡¹x¹x¹:¹x¹ºxº:ºxºxº¡¹x¹:¹:¹:¹º:ºxº:ºxº PP{
m
÷sFLC¼C:FaCEf*_5{rzo4Z3D C4J0_LC*ZLfECBDGFLo5qÐD|{F*>5{\Z@_@?BJCaexoJvr/ZLD{eP_Lf;{ro4Z
fE>*f*FLC}?¼rzD DC;D$K@C;faepC7>LDCBDG_@LD{ >Z5{rz>AkA~
m
÷sFLCdepCEK0_Lf;CEKbfE>*f*FLC}?¼rzD DC;D\>aepC¼K0_LCÀ{oIr/?aeoa½LCEKur/ZLD{eP_Lf^{rzo4Z
m n r½LCaZ3>J0_LCae~gA>Z}rzK@C*Z5{rv,~B{FLC¼CEFaC;fa_5{rzo4Z¾t4eo4_@LD{F*>L{>aeC
fE>ZLK4rK>L{Cd_@ZTr{Dvwo@e[@_LC*e¤r/ZLt
m
K@K>gZLC^q#C:F@ArzfLr{\_5Cae r/ZLto4JC*e,>5{oe:>@Toa½LC{FLCC:FaCEf*_5{rzo4Z
t4epo4_@hrvÄZ*C;fEC;DD>aep~
m å
?B@ACa?\CaZ5{ >5{rzo4Z¾oJvÄ@_5 C*e:oªTC*e,>5{oe¿
Ñ*¬¬£¢0^¬Õw ¢Õ§¡¢, £°©/P
zxz¢,ª¢-¦@p¢,¢,P@;y¾ ¢P £a ÕÉ©Õ-¢P¬§¤ £kPÌ P©p£°;Ïg¢P
z§^¬£¢£T y¾ ¢P £T¢ ®*£¢¤¬§P Ì : :¤;PÏ
zxz¢,0x£-£k¤¨: ©¬G¢£°4¢:¢P¬§¤4¢¤ ¢0£p¢p£kP¡§
;¬£¢£DP¬
m
ôC*ZLCnL{DsoJvÐ@_5Caexo4JC*e,>5{oe¿
×z £,:¡çE £¨¡¢P£°;¯^¬¢0E ¢p[£,xzp¢P£- ¤¢w;
Ï,¤
m
AAo4JCae>L{o@eD|K@o4Z'{{\TC*ZLCnL{vepo4? @_5 C*e¤r/ZLtC P°tTP[D^?>AA
fE>JepK4r/Z*>@Ar{¤~¾oªTC*e,>5{oepD;h@Aof*`*rkZLto4JCae,>5{oepDAr/`C¼D oe{
m
÷sFLCd@A>*f;Ca?\CaZ5{oJvÐ@_5Caexo4JC*e,>5{oeDrkZ3>J0_LCaep~g@A>Z¾fE>ZgJC
K@o4ZLC3;~g_LDr/ZLtg>gJoJ{{o4?sö_@a>LD D|oJv:{FLCd@Az>@ZB{epCEC
m
÷sFTrzDFLo5q[C^½LCaeZLCEC;K@DsDoª?Cd?C;faF*>@ZTrzDG? oJv:CED{r/?>L{rkZLt{FLC
m
^C3Aoo4`CEK>5{Ð{F@eC;CB>@aepofaFLC;D|vwo@e[rk?BaepoJ½Tr/ZLt}fE>*f*FLC
JCaevwoe¤?>@ZLfEC
m ¹
ôõö÷:eCEC¼>@*eo@>LfaF¼q>*Ds>@@AC{otªr½LCdJC;{{C*e:DCE>JepfaF
JCaevwoe¤?>@ZLfECq\FTrkAC>L{Ä{FLCD>?\CÀ{r/?\CB>@AkAo5qsr/ZLtbrkZ*f*eC*?C*Z5{ >A
_@JK>L{C;D
m º
Ú>@*eo@>LfaFBfaF*>ZLtJCEK{FLCK>5{ >gAz>;~Eoª_5{$?oK@CaA@{ o}CaZLDG_@eC
{F*>5{f7>LfaFLCDG*>LfECdrD|ofEf*_@TrzC;KÍ^~g_LD C;v_@AK>L{ >3>@ZLKur{|>@AD o
epCa?>@rkZLCEKo@ep{FLoTtToªZ*>AT{ooJ{FLCaexK@CEDrztªZ3K@CEfLrzDrzo4ZLD
m
ô_5Cae r/ZLt>@aepo@>LfaF{e¤rCEKg{o}D o4A½LC{FLCdaepo4@AC*? oJvr/?aepoJ½Tr/ZLt
rkZLD {e¤_Lf;{rzoªZdfE>*f*FLC}JCaevwoe¤?>@ZLfEC¼vwo@e¡K@Ca?>ZLKJöK0e r½LC*ZgTr/JCaA°r/ZLCEK
m
_@ZbÁ>*o0h =:C*Z@ZLC;{F3vPÁoTD D;¿scd>`Lr/ZLtf
õ
ö÷epCEC;D
¹
>LfaFLC
¹
o4ZLD f*rzoª_LDr/Zbcd>Tr/Zc3C*?o@ep~4P[
ån c]À]
¹
o4Z5vwC*eC*ZLfEC¾SJOTOTO0¿
W@øaQaöW;KTi
m
Z*>LD{ >*D DGrz>dÄr/Az>@?>@`Lrlh]>5½TrzK
P ][Cp^(r{{Gh¡cd>aeP`d]mPÃÄrkAkAkh
cd>ae¤roTD|`o4_@Z*>@`LrzD;¿^C7>5½Tr/ZLtuÁC*Az>5{rzo4ZLDvwoe
¹
>LfaFLC
º
Caevwoe¤?>@ZLfEC P
H
H]sôâSTOTO4VT¿ÉV5iJU*öV&KTO
m
r/ZLtªeCaZW:FLoª_h=:C*Z@ZLC;{F3vPÁoTD D;¿$ô_5Cae r/ZLtu]>L{ >@*>*D C
]JCae,>5{rzoªZLDvwoe
Z@F*>@ZLfECEK
å
ZLD{eP_Lf^{rzo4Z
¹
>*f*FLC
º
C*epvwoe¤?>@ZLfEC P
c]À] o4Z5vwCaepCaZLf;C¾STOJOJW¿-V5U4V;öSTOTS