Solving Cross-Domain Issues When Building Mashups

33,272 views

Published on

When building Mashups, you need to consider different techniques to solve the cross-domain issue that is caused by the browser's Same Origin Policy. This session gives you an overview of possible techniques to overcome that problem. Starting with client-side solutions including JSONP, iframes and usage of the browser window object, server-side solutions like Apache’s mod_rewrite module or IBM’s Ajax Proxy as well as proprietary solutions including browser plug-ins, applets, signed scripts and Internet Explorer 8’s XDomainRequest are explored. The session will also cover cross-document messaging that was added in HTML 5 and give an overview of other cross-domain access proposals.

Published in: Education, Technology, Travel
5 Comments
40 Likes
Statistics
Notes
No Downloads
Views
Total views
33,272
On SlideShare
0
From Embeds
0
Number of Embeds
1,243
Actions
Shares
0
Downloads
617
Comments
5
Likes
40
Embeds 0
No embeds

No notes for slide

Solving Cross-Domain Issues When Building Mashups

  1. 1. ! !"#$%&()*"++,-"./%&(0++12+(342&( 51%#6%&(7/+418+ !82/92*:(724.2;(<9%& =>%;;2*(:(?.24.2;/9%&! !
  2. 2. 12304-! &0.+*456./*0".*"(-785,7! 9-:3";+/2/0"<*=/6>! )=/30.?7/43"6+*77?4*:-/0"7*=5./*07! 93+@3+?7/43"6+*77?4*:-/0"7*=5./*07! <+*,+/3.-+>"6+*77?4*:-/0"7*=5./*07! AB(C"D"6+*77?4*65:30.":377-2/02! EF)"6+*77?*+/2/0"+37*5+63"78-+/02! ;.83+"6+*77?4*:-/0"7,36/G/6-./*0",+*,*7-=7! )+*77?4*:-/0"7365+/.>"H37.",+-6./637 !"#$$%"&(")*+,*+-./*0
  3. 3. E8-."/7"-"(-785,"I! E3H"-,,=/6-./*0".8-."/0.32+-.37"4-.-J 6*:,*030.7"G+*:"4/GG3+30.",+*@/43+7! A*57/02(-,7K6*:"L"M**2=3"(-,7"N"6+-/27=/7. !"#$$%"&(")*+,*+-./*0
  4. 4. (-785,")*::50/6-./*0"B>,37! O3.+/3@3"4-.-"G+*:"*03"*+":*+3"73+@3+7! )*::50/6-./*0"P/.8JH3.P330"P/423.7J2-423.7" G+*:"4/GG3+30.",+*@/43+7 !"#$$%"&(")*+,*+-./*0
  5. 5. 1Q-R"O3S537."B>,37! T(CA..,O3S537.! &U+-:3 !"#$$%"&(")*+,*+-./*0
  6. 6. 9-:3";+/2/0"<*=/6>"V9;<W! X*65:30."=*-434"G+*:"*03"*+/2/0"6-0"0*."23.J 73.",+*,3+./37"*G"4*65:30."=*-434"G+*:" -0*.83+"*+/2/0! 9-:3"*+/2/0"L"7-:3".+-07G3+",+*.*6*="V8..,"*+" 8..,7W"1YX"7-:3"8*7."1YX"7-:3",*+. !"#$$%"&(")*+,*+-./*0
  7. 7. 9;<"&:,-6."*0"TAO !"#$$%"&(")*+,*+-./*0
  8. 8. 9;<"&:,-6."*0"&U+-:37 !"#$$%"&(")*+,*+-./*0
  9. 9. 9;<"Z/*=-./*0TAO &U+-:3 !"#$$%"&(")*+,*+-./*0
  10. 10. 9)O&<B"B-2! [-@-96+/,."6-0"H3"=*-434"G+*:"1Y"73+@3+! 9;<"4*37"0*."-,,=>! )-0"H3"6+3-.34",+*2+-::-./6-==> !"#$%&("$#)*+&,--.+/$"/$0/$1#.2-/"13"*4!-"#$%&4 111 !"#$%&4 ((((05$(2675$()(*85059#$%&($.#:";*< ((((--2.$/(85059#$%& !-"#$%&4 !"#$$%"&(")*+,*+-./*0
  11. 11. [9;Y<"V[9;Y"P/.8"<-44/02W !"#$$%"&(")*+,*+-./*0
  12. 12. [9;Y<")=/30.05$(26=5>>?5#:()(@AB#%.BC$/"&.B"/D(E((((--#>/5$(%2/.AF($/2.0/("#$%&(5GF(+5BH>/($/"&.B"/I05$("#$%&()(H.#A2/B1#$/5/J>/2/BC*"#$%&*D<"#$%&1"$#()(((((*+&,--.+/$5&&1#.2-"/$0%#/K3".B&)26=5>>?5#:*<H.#A2/B1?.H615&&/BH=+%>HC"#$%&D<05$(/$$.$L%2/$()("/L%2/.AC@AB#%.BCD(E((((--(+5BH>/(/$$.$IF(MNNND< !"#$$%"&(")*+,*+-./*0
  13. 13. [9;Y<"93+@3+&$./#/H(0.%H(H.O/C111D(+$.P"(QRJS#/&%.B(E((((9$%BG(#5>>T5#:()($/UA/"1G/V5$52//$C*3".B&*D<((((%@C#5>>T5#:(;)(BA>>D(E(((((((($/"&.B"/1G/RA&A9$/52CD1&$%BC((((((((((((#5>>T5#:(W(*C*(W(3".B(W(*D*D<((((I(/>"/(E(((((((($/"&.B"/1G/RA&A9$/52CD1&$%BC3".BD<((((II !"#$$%"&(")*+,*+-./*0
  14. 14. [9;Y<! ]-7>! 9)O&<B".-2"+3S537."/7"M]B^"_OC"=302.8"=/:/.34" .*"#$`F"68-+-6.3+7"H>"&0.3+03."]R,=*+3+! Y*"3++*+"8-04=/02"=/a3"TAO! [9"O37,*073"3R365.34"4/+36.=>^"6-0"H3"4-023+*57! 93+@3+?7/43"68-0237"033434"! (-0>"1<&7"-@-/=-H=3"G+*:"M**2=3b"U=/6a+b"-8**cb" 3.6K !"#$$%"&(")*+,*+-./*0
  15. 15. 4*65:30.K4*:-/0"<+*,3+.>! X*:-/0"0-:3"*G"73+@3+".8-."73+@34"4*65:30.! X3G/034"-7"+3-4?*0=>"/0"X;("AB(C"7,36! )-0"H3"73.".*"75,3+?4*:-/0"/0"-=="6*::*0" H+*P73+7b"0*.".*".*,?=3@3="4*:-/0! BP*"4*65:30.7"P/.8"7-:3"4*:-/0"-04" .+-07,*+.",+*.*6*="6-0"-66377"3-68"*.83+d7" 6*0.30. !"#$$%"&(")*+,*+-./*0
  16. 16. 4*65:30.K4*:-/0"<+*R> !"#$$%"&(")*+,*+-./*0
  17. 17. 4*65:30.K4*:-/0"<+*R>! 8..,eJJ,6fK:>-,,K6*:e`$%$"e H.#A2/B1H.25%B()(*265&&1#.2*< 111 %X$52/1"$#()(*+&,--&#Y265&&1#.2,ZN[-&$.S61+2>*< --5HH(.(H.#A2/B 111 05$(S+$V$.S6()(%X$52/1#.B/B]%BH.P1G/^_`CD< S+$V$.S61.&/BC*OJL*F(*+&,--&#Y1265&&1#.2,ZN[-"/$0%#/*D< !"#$$%"&(")*+,*+-./*0
  18. 18. 4*65:30.K4*:-/0"<+*R>! 8..,eJJ,6#K:>-,,K6*:e`$%fJ,+*R>K8.:="e H.#A2/B1H.25%B()(*265&&1#.2*< 05$(G/^_`()(@AB#%.BCD(E (((($/A$B(B/P(^ab_&`/UA/"CD< I !"#$$%"&(")*+,*+-./*0
  19. 19. 4*65:30.K4*:-/0"<+*R>! TAO"6-0"H3"5734! Y*."G5=="6+*77?4*:-/0^"6+*77?V75HW?4*:-/0! M**4"G*+"/0.+-03."(-785,7! C*-4/02"-,,=/6-./*0"*0=>"P/.8"G5=="4*:-/0"0-:3 !"#$$%"&(")*+,*+-./*0
  20. 20. 95H7,-63! <+*,*7-="G*+"7365+3":-785,7 !"#$$%"&(")*+,*+-./*0
  21. 21. 95H7,-63! 93.5,"*G"73+@3+"4*:-/07"033434! M3.7":*+3"6*:,=/6-.34"P830"(-785,"/0.32+-.37" 4-.-"G+*:":*+3".8-0"*03",+*@/43+"! )*:,=3Rb"43,30430."*0"H+*P73+"-04"H+*P73+" 73../027"4/GG3+30."G506./*0-=/.>"033434 " 9.-./6"-5.8*+/g-./*0"@7K"4>0-:/6"-5.8*+/g-./*0 " <3+:/77/@3"G+-:3"-66377"@7K"+37.+/6./@3"G+-:3" -66377 !"#$$%"&(")*+,*+-./*0
  22. 22. U+-2:30."&430./G/3+! U+-2:30."/4""L"P/04*PK=*6-./*0K8-78! 93../02".83"G+-2:30."/4"4*37"0*."+3=*-4".83",-23! X*65:30.7"P/.8"4/GG3+30."*+/2/07"6-0"73.b"H5." 0*."+3-4"3-68"*.83+d7"G+-2:30."/4 !"#$$%"&(")*+,*+-./*0
  23. 23. U+-2:30."&4"_7-23! 96+*==".*"7,36/G/6"3=3:30."P/.8"/4"LL"G+-2:30."/4! TAO"H-6a?H5..*0"8-04=/02b"H**a:-+a-H/=/.>! )57.*:"573b"3K2K"*5B5H3 !"#$$%"&(")*+,*+-./*0
  24. 24. U+-2:30."&4"(377-2/02 !"#$$%"&(")*+,*+-./*0
  25. 25. U+-2:30."&4"(377-2/02! 8..,eJJ:>-,,K6*:"e %X$52/1"$#()( ((((*+&,--.+/$5&&1#.2-&$.S61+2>*< 111 %X$52/1#.B/B]%BH.P1>.#5%.B()( ((((*+&,--.+/$5&&1#.2-"/$0%#/1+2>c*(W($/UA/"< 05$(%B/$05>()("/QB/$05>C@AB#%.BCD(E ((((05$($/"&.B"/()(P%BH.P1>.#5%.B1+5"+1"A?"$%BGCD< ((((--#>/5$(%B/$05>F(+5BH>/($/"&.B"/ IF(YNND< !"#$$%"&(")*+,*+-./*0
  26. 26. U+-2:30."&4"(377-2/02! 8..,eJJ*.83+-,,K6*:J,+*R>K8.:="e "/QB/$05>C@AB#%.BCD(E ((((05$($/UA/"()(P%BH.P1>.#5%.B1+5"+1"A?"$%BGCD<((((((((( ((((111 ((((S+$1.&/BC111D< ((((111 ((((&5$/B1>.#5%.B()( ((((((((*+&,--265&&1#.2c*(W(S+$1$/"&.B"/L/S< IF(YNND< !"#$$%"&(")*+,*+-./*0
  27. 27. U+-2:30."&4"(377-2/02! C/:/.34"H>"_OC"=302.8"=/a3"[9;Y<! 9/:5=-./*0"*G"TAO",*77/H=3b"TAO"G-6-43! 93../02"_OC7"/0"/G+-:37"6+3-.37"h6=/6ah?7*504"*0" &0.3+03."]R,=*+3+! <*==/02"0*."-0"*,./:-="7*=5./*0! &0.3+03."]R,=*+3+"`"/:,=3:30.7"AB(C"D" h8-7868-0234i"3@30. !"#$$%"&(")*+,*+-./*0
  28. 28. )+*77?U+-:3"B3680/S53 !"#$$%"&(")*+,*+-./*0
  29. 29. )+*77?U+-:3"B3680/S53! 8..,eJJ:>-,,K6*:J:-/0"e P%BH.P1B52/()(*265&&*< @AB#%.B(+5BH>/`/"&.B"/C$/"&.B"/D(E(111(I 111 SHa5%B1"$#()(*+&,--.+/$5&&1#.2-25%B*< 111 @AB#%.B("/BH`/UA/"C&5$52"D(E(111 ((((SHV$.S61"$#()(*+&,--.+/$5&&1#.2-&$.S6c*(W(&5$52"< ((((111 I !"#$$%"&(")*+,*+-./*0
  30. 30. )+*77?U+-:3"B3680/S53! 8..,eJJ*.83+-,,K6*:J:-/0"e P%BH.P1B52/()(*.+/$5&&*< @AB#%.B(H.`/UA/"C&5$52"D(E ((((111( ((((25%BV$.S61"$#()(*+&,--265&&1#.2-&$.S6c*(W(($/"&.B"/< ((((111 I !"#$$%"&(")*+,*+-./*0
  31. 31. )+*77?U+-:3"B3680/S53! 8..,eJJ*.83+-,,K6*:J,+*R>"e" 05$($/U()(>.#5%.B1+5"+1"A?"$%BGCD %@C%"R&/$5D(E ((((--$/"$%#%0/(@$52/(5##/"" ((((P%BH.P1.&/BC**F(*.+/$5&&*D1H.`/UA/"C$/UD< I(/>"/(E ((((&5$/B1&5$/B1H.`/UA/"C$/UD< I! 8..,eJJ:>-,,K6*:J,+*R>"7/:/=-+".*" 8..,eJJ*.83+-,,K6*:J,+*R>" !"#$$%"&(")*+,*+-./*0
  32. 32. )+*77?U+-:3"B3680/S53! )=3-03+"-04"7/:,=3+".8-0"G+-2:30."/4":377-2/02! O3S537.J+37,*073"=302.8"=/:/.34"H>"_OC"=302.8! Y*"6850a/02"*G"=-+23"4-.-",*77/H=3"=/a3"G+-2:30." /4":377-2/02 !"#$$%"&(")*+,*+-./*0
  33. 33. 9(-78"V9365+3"(-785,7W! <+*,*7-="H>"&("+373-+683+7! _7-23"*G"G+-2:30."/47"-04"6+*77?G+-:3"-66377! &:,=3:30.34"/0";,301Q-R"A5H"=/H+-+>"*G" ;,301Q-R"1==/-063! ;,301Q-R"G*65737"*0"/0.3+*,3+-H=3"E3Hb"1Q-R" =/H+-+/37"-04"P/423.7"G+*:"4/GG3+30.",+*@/43+7 !"#$$%"&(")*+,*+-./*0
  34. 34. 9(-78 !"#$$%"&(")*+,*+-./*0
  35. 35. P/04*PK0-:3"<+*,3+.>! P%BH.P1@$52/"d*P%Be52/*f".*"23."-"+3G3+3063! _734"-7"5$G/"/0"=/0a7"-04"G*+:7! P%BH.P1.&/BC**F(*P%Be52/*D".*"23."+3G3+3063".*" V/WG+-:3"-04"3@30"4/GG3+30."H+*P73+"P/04*P"! j33,7"7-:3"@-=53"P830"0-@/2-./02".*"4/GG3+30." ,-237 !"#$$%"&(")*+,*+-./*0
  36. 36. P/04*PK0-:3"B+-07,*+. !"#$$%"&(")*+,*+-./*0
  37. 37. P/04*PK0-:3")=/30.! 8..,eJJ:>-,,K6*:"e @AB#%.B(%@$b.5HC%X$52/D(E ((((%@C%X$52/1%"b.5H/HD(E ((((((((5>/$C%X$52/1#.B/B]%BH.P1B52/D< ((((I(/>"/(E ((((((((%X$52/1%"b.5H/H()($A/< ((((((((%X$52/1#.B/B]%BH.P1>.#5%.B()(*?>5B:1+2>*< ((((I I @AB#%.B(H.`/UA/"C&5$52"D(E ((((%X$52/1%BB/$_Lab()(*!%@$52/("$#)g+&,--.+/$5&&1#.2K*(W ((((((((*%"]%BH.Pe52/)$A/g(.B>.5H)g%@$b.5HC+%"Dg4!-%@$52/4* I !"#$$%"&(")*+,*+-./*0
  38. 38. P/04*PK0-:3")=/30.! 8..,eJJ:>-,,K6*:JH=-0aK8.:="e !+2>4!+/5H4!-+/5H4!?.H64!-?.H64!-+2>4 !"#$$%"&(")*+,*+-./*0
  39. 39. P/04*PK0-:3"93+@3+9$%BG(%"]%BH.Pe52/()($/UA/"1G/V5$52//$C*%"]%BH.Pe52/*D<%@C%"]%BH.Pe52/(;)(BA>>D(E(((($/"&.B"/1G/RA&A9$/52CD1&$%BC((((((((*!+2>4!+/5H4*(W((((((((((((*!"#$%&4P%BH.P1B52/)g$/"&.B"/g<!-"#$%&4*(W(((((((((*!-+/5H4!?.H64!-?.H64!-+2>4*D<I(/>"/(E((((111I !"#$$%"&(")*+,*+-./*0
  40. 40. P/04*PK0-:3"B+-07,*+.! 9/:,=3+".8-0"G+-2:30."/47b"95H7,-63"-04")+*77? U+-:3! M]BJ<;9B"75,,*+.! Y3347"73+@3+?7/43"+37,*073"G*+:-."68-023! C302.8":/0/:5:"73.".*"#("H>";,3+-! ]++*+"8-04=/02"=/a3"[9;Y< !"#$$%"&(")*+,*+-./*0
  41. 41. 93+@3+?9/43"<+*R> !"#$$%"&(")*+,*+-./*0
  42. 42. 1,-683"ABB<"93+@3+ ! :*4k,+*R>":*45=38..,4K6*0G111b.5Ha.HA>/(&$.S6h2.HA>/(2.HA>/"-2.Hh&$.S61".b.5Ha.HA>/(&$.S6h+&h2.HA>/(2.HA>/"-2.Hh&$.S6h+&1".V$.S6V5""(-G..G>/9/5$#+(+&,--535S1G..G>/5&%"1#.2-535S-"/$0%#/"-"/5$#+-P/?111 S+$1.&/BC*OJL*F(*-G..G>/9/5$#+K0)1NiU)j35S*D< !"#$$%"&(")*+,*+-./*0
  43. 43. 1,-683"ABB<"93+@3+! :*4k+3P+/.3":*45=3 8..,4K6*0G 111 `/P$%/JBG%B/(RB `/P$%/`A>/(k-+&-C1lD(+&,--m(dVf 111! Y*"+323R"75,,*+.""G*+"V$.S6V5""b"1,-683"#K#" -447"V$.S6V5""a5#+".*":*4k,+*R>b"3K2K" V$.S6V5""a5#+(k-+&-C1lD(+&,--m !"#$$%"&(")*+,*+-./*0
  44. 44. &("1Q-R"<+*R>! E3H7,83+3"1,,=/6-./*0"93+@3+"@lK$Nb"E19")]" @#K$N! U+33"-,,=/6-./*0"VKP-+W".*"H3"43,=*>34"/0.*"]1O" *+"7.-04-=*03! O507"-7"73+@=3. !"/$0>/n25&&%BG4 ((((!"/$0>/nB52/4V$.S69/$0>/!-"/$0>/nB52/4 ((((!A$>n&5/$B4-&$.S6-l!-A$>n&5/$B4( !-"/$0>/n25&&%BG4 !"#$$%"&(")*+,*+-./*0
  45. 45. &("1Q-R"<+*R>! ,+*R>?6*0G/2KR:= !&$.S6n$A>/"(1114 ((((!&$.S6,25&&%BG(#.B/S&5+)*-+&-l*(-4 ((((!&$.S6,25&&%BG(#.B/S&5+)*-$""-2.B/6h>5/"1$""*( ((((((((A$>)*+&,--$""1#BB1#.2*(-4 ((((!&$.S6,&.>%#6(A$>)*l*(5#@)*B.B/*4 ((((((((!&$.S6,5#%.B"4 ((((((((((((!&$.S6,2/+.H4OJL!-&$.S6,2/+.H4 ((((((((!-&$.S6,5#%.B"4(( ((((!-&$.S6,&.>%#64 !-&$.S6n$A>/"4 S+$1.&/BC*OJL*F(*-&$.S6-+&-PPP1.+/$5&&1#.2*D< !"#$$%"&(")*+,*+-./*0
  46. 46. (/6+*7*G."&&9! &&9"Db"&&9"l"V(*0*=/.8/6"-+68/.36.5+3We " Y*.":-0>"VG+33W"&91<&"V&0.3+03."93+@3+"1<&W"G/=.3+7"G*+" _OC?+3P+/./02"-@-/=-H=3 " (-0-234"U57/*0"_OC"+3P+/.3+"V(7?<CW"G*+"&&9"DJlJme ! &:,=3:30.7":*7."*G".83"1,-683":*4k+3P+/.3"4/+36./@37" /06=54/02".83"n<o":*4/G/3+"G*+",+*R>/02! &&9"m"V(*45=-+"-+68/.36.5+3W " _OC"O3P+/.3"(*45=3b"1,,=/6-./*0"O3S537."O*5./02" (*45=3"G*+"4*P0=*-4"*0"&&9"P3H7/.3 !"#$$%"&(")*+,*+-./*0
  47. 47. 93+@3+?9/43"<+*R>! U5=="TAO"6-,-H/=/.>! A/28=>"657.*:/g-H=3".+-GG/6"6*0.+*="P/.8"6*0G/2" G/=37 " U/=.3+/02"+3S537.7 " (-R"6*0036./*07"V.*"8*7.W! A/283+"73+@3+"=*-4".8-0"6=/30.?7/43"7*=5./*07 !"#$$%"&(")*+,*+-./*0
  48. 48. U=-78"<=52/0! <=-6/02",*=/6>"G/=3"*0"73+@3+"30-H=37"6+*77? 4*:-/0"-66377! J6+*774*:-/0KR:="V+**."4/+W !#$.""nH.25%Bn&.>%#64 ((((!"%/n#.B$.>(&/$2%/Hn#$.""nH.25%Bn&.>%#%/")*25"/$n.B>6*-4 ((((!5>>.Pn5##/""n@$.2(H.25%B)*l*("/#A$/)*@5>"/*-4 ((((!5>>.Pn+&n$/UA/"n+/5H/$"n@$.2(H.25%B)*l*(+/5H/$")*l*(((((((((((((((( (((((((("/#A$/)*@5>"/*-4 !-#$.""nH.25%Bn&.>%#64 !"#$$%"&(")*+,*+-./*0
  49. 49. U=-78"<=52/0! 9/#A$%61>.5HV.>%#6X%>/C&5+D".*"=*-4",*=/6/37"G+*:" 0*0?+**."=*6-./*0! 9/#A$%615>>.Po.25%BCH.25%BD"G*+" 6*::50/6-./*0"H3.P330"1"P@"G/=37"P/.8"4/GG3+30." *+/2/07! <*=/6>"G/=3",+*@/434"H>":-0>"6*:,-0/37 !"#$$%"&(")*+,*+-./*0
  50. 50. <*=/6>"U/=37 !"#$$%"&(")*+,*+-./*0
  51. 51. <*=/6>"U/=37 !"#$$%"&(")*+,*+-./*0
  52. 52. (/6+*7*G."9/=@3+=/28.! 6=/30.-66377,*=/6>KR:= !5##/""n&.>%#64 ((((!#$.""nH.25%Bn5##/""4 ((((((((!&.>%#64 ((((((((((((!5>>.Pn@$.2(+&n$/UA/"n+/5H/$")*9RjVj#%.B*4( ((((((((((((((((!H.25%B(A$%)*+&,--PPP1".2/5&&1#.2-*-4 ((((((((((((!-5>>.Pn@$.24( ((((((((((((!G$5Bn.4(((((( ((((((((((((((((!$/".A$#/(&5+)*-"/$0%#/*(%B#>AH/n"A?&5+")*$A/*-4 ((((((((((((!-G$5Bn.4(((((( ((((((((!-&.>%#64(( ((((!-#$.""nH.25%Bn5##/""4 !-5##/""n&.>%#64 !"#$$%"&(")*+,*+-./*0
  53. 53. (/6+*7*G."9/=@3+=/28.! 9/:/=-+".*"U=-78! (-/0"4/GG3+3063".*"U=-78"/7"75H,-.8"8-04=/02! &G"0*"6=/30.-66377,*=/6>KR:=b"6836a7"G*+" ,3+:/77/@3"6+*774*:-/0KR:= !#$.""nH.25%Bn&.>%#64 ((((!5>>.Pn+&n$/UA/"n+/5H/$"n@$.2(H.25%B)*l*(+/5H/$")*l*-4 !-#$.""nH.25%Bn&.>%#64 !"#$$%"&(")*+,*+-./*0
  54. 54. M**2=3"M3-+7! )+*77?*+/2/0"P*+a3+7 05$(P.$:/$V..>()(G..G>/1G/5$"1@5#.$61#$/5/C*?/51P.$:/$&..>*D< P.$:/$V..>1.B2/""5G/()(@AB#%.BC5F(?F(2/""5G/D(E ((((--+5BH>/(2/""5G/1?.H6 I< 05$(#+%>H].$:/$QH()(P.$:/$V..>1#$/5/].$:/$X$.2p$>C (((( (((((((*+&,--.+/$5&&1#.2-P.$:/$1Sh3"*D< P.$:/$V..>1"/BHa/""5G/C*".2/V5$52"*F(#+%>H].$:/$QHD< !"#$$%"&(")*+,*+-./*0
  55. 55. M**2=3"M3-+7! E*+a3+"[9":57."H3"73+@34"-7"5&&>%#5%.B-Sn G/5$"nP.$:/$b"P*+a3+KRkQ7e" 05$(P&()(G..G>/1G/5$"1P.$:/$V..>< P&15>>.P=$.""R$%G%BCD< P&1.B2/""5G/()(@AB#%.BC5F(?F(2/""5G/D(E ((((%@C2/""5G/1.$%G%B())(*+&,--265&&1#.2*D((E ((((((((05$($/U()(G..G>/1G/5$"1@5#.$61#$/5/C*?/51+&$/UA/"*D< ((((((((111 ((((((((P&1"/BHa/""5G/C$/U1$/"&.B"/L/SF(2/""5G/1"/BH/$D< ((((I I !"#$$%"&(")*+,*+-./*0
  56. 56. [-@-"1,,=3.7! _07/2034"-,,=3."+507"/0"H+*P73+"7-04H*R! 9/2034"-,,=3."6-0"7304"6+*77?4*:-/0"+3S537.7 !"#$$%"&(")*+,*+-./*0
  57. 57. [-@-"1,,=3.7! 17"*G"[-@-"l"_,4-.3"f$" " U=-78",*=/6>"G/=3":368-0/7:"/:,=3:30.34"G*+" ,3+:/77/@3",*=/6>"P/.8"!"##$%&"())&*+$,-.$,"/01232-45 " Y*"7/20/02"033434"G*+"6+*77?4*:-/0"-66377 " 1,,=3.7"6-0"H3"=-506834"P/.8"[YC<"G/=3! X32+-4/02"2+-63G5==>!5&&>/(#.H/)*a6j&&1#>5""*(((((5$#+%0/)*+&,--"/$0/$-"%GB/H-a6j&&135$*4((((!&5$52(B52/)*3B>&h+$/@*(05>A/)*+&,--"/$0/$-26j&&13B>&*(-4!-5&&>/4 !"#$$%"&(")*+,*+-./*0
  58. 58. [-@-"1,,=3.7! :>1,,KQ0=, !3B>&("&/#)*1NW*(#.H/?5"/)**(+$/@)**4 ((((!%B@.$25%.B4 ((((((((!%>/4a6j&&!-%>/4 ((((!-%B@.$25%.B4 ((((!$/".A$#/"4 ((((((((!3Y"/(0/$"%.B)*1qW*( ((((((((((((+$/@)*+&,--35051"AB1#.2-&$.HA#"-(5A.H>-3Y"/*(-4 ((((((((!35$(+$/@)*+&,--"/$0/$-AB"%GB/H-a6j&&135$*(-4 ((((!-$/".A$#/"4 ((((!5&&>/nH/"#(B52/)*a6j&&*(25%Bn#>5"")*a6j&&*4 ((((!-5&&>/nH/"#4 !-3B>&4 !"#$$%"&(")*+,*+-./*0
  59. 59. (*g/==-"9/2034"96+/,.7! ]0-H=/02"6+*77?4*:-/0"+3S537.7e B/"#5&/1"/#A$%61V$%0%>/G/a5B5G/$1/B5?>/V$%0%>/G/C ((((*pB%0/$"5>T$.P"/$`/5H*D< 05$(S+$()(B/P(^ab_&`/UA/"CD< S+$1.&/BC*OJL*F(*+&,--PPP1.+/$5&&1#.2*D< !"#$$%"&(")*+,*+-./*0
  60. 60. (*g/==-"9/2034"96+/,.7! 93.",+3G7"45+/02"43@3=*,:30."/07.3-4"*G"7/20/02e !"#$$%"&(")*+,*+-./*0
  61. 61. AB(C"D")+*77?X*65:30."(377-2/02! )*::50/6-./*0"H3.P330"4*65:30.7"G+*:" 4/GG3+30."*+/2/07! Y3P"P/04*P"G506./*0"&."a/""5G/C"$%BGF( 5$G/R$%G%BD! Y3P"2/""5G/"3@30.".*"=/7.30".*"&."a/""5G/"6-==7! &:,=3:30.34"/0";,3+-"%Nb"UU"FNb"&]"`b"9-G-+/"pb" M**2=3")8+*:3"# !"#$$%"&(")*+,*+-./*0
  62. 62. AB(C"D")+*77?X*65:30."(377-2/02! 8..,eJJ:>-,,K6*:J/043R @AB#%.B($/#/%0/C/D(E ((((%@C/1.$%G%B())(*+&,--.+/$5&&1#.2*D(E ((((((((+5BH>/C/1H55D< ((((I I %X$52/1"$#)*+&,--.+/$5&&1#.2-%BH/S*< P%BH.P15HHJ0/Bb%"/B/$C*2/""5G/*F($/#/%0/F(@5>"/D< @AB#%.B(&."CD(E ((((%X$52/1#.B/B]%BH.P1&."a/""5G/C*H55*F( ((((((((*+&,--.+/$5&&1#.2*D< I !"#$$%"&(")*+,*+-./*0
  63. 63. AB(C"D")+*77?X*65:30."(377-2/02! 8..,eJJ*.83+-,,K6*:J/043R @AB#%.B($/#/%0/C/D(E ((((/1".A$#/1&."a/""5G/C*H55*F(*l*D< ( I P%BH.P15HHJ0/Bb%"/B/$C*2/""5G/*F($/#/%0/F(@5>"/D< !"#$$%"&(")*+,*+-./*0
  64. 64. EF)")+*77?;+/2/0"O37*5+63"98-+/02! 1=2*+/.8:"G*+"6+*77?4*:-/0"-66377! 166377?)*0.+*=?1==*P?;+/2/0e"q*+/2/0r"s"t !"#$$%"&(")*+,*+-./*0
  65. 65. EF)")+*77?;+/2/0"O37*5+63"98-+/02! <+3G=/28."+3S537."/G"0*."7/:,=3"+3S537.! 9/:,=3"+3S537.e " M]Bb"A]1X " <;9B"P/.8"-,,=/6-./*0JR?PPP?G*+:?5+=306*434b" :5=./,-+.JG*+:?4-.-b"*+".3R.J,=-/0 " Y*"657.*:"83-43+7! <+3G=/28."+375=."6-683 !"#$$%"&(")*+,*+-./*0
  66. 66. EF)")+*77?;+/2/0"O37*5+63"98-+/02! <+3G=/28."+3S537.e !"#$$%"&(")*+,*+-./*0
  67. 67. EF)")+*77?;+/2/0"O37*5+63"98-+/02! 9304/02"6+3430./-=7e !"#$$%"&(")*+,*+-./*0
  68. 68. EF)"T(CA..,O3S537."C3@3="#! A*7./02"7,36/G/6-./*0"G*+");O9! );O9"/:,=3:30.34"/0"UU"FKDb"9-G-+/"pb"M**2=3" )8+*:3"#"-7",-+."*G"TAO"=3@3="#! 9/:/=-+"57-23"=/a3"TAO"=3@3="fb"P/.8"-44/./*0-=" G506./*0-=/.>"/06=K"P%+=$/H/B%5>"",+*,3+.>b"3K2K" 05$(%B0.#5%.B()(B/P(^ab_&`/UA/"CD<(( %B0.#5%.B1.&/BC*OJL*F(A$>D<(( %B0.#5%.B1P%+=$/H/B%5>"()(*$A/*<( %B0.#5%.B1.B$/5H6"5/#+5BG/()(+5BH>/$<( %B0.#5%.B1"/BHCD<(((( ( !"#$$%"&(")*+,*+-./*0
  69. 69. &]"`"TX*:-/0O3S537.! C/28.P3/28.");O9"/:,=3:30.-./*0! ;0=>"M]B"-04"<;9B! Y*"-5.830./6-./*0"/0G*+:-./*0"*+"6**a/37"730.! 93../02J23../02"83-43+7"0*.",*77/H=3b"*0=>"+3-4/02" *G"h6*0.30.B>,3i 05$(SH$()(B/P(^o.25%B`/UA/"CD<( SH$1.B>.5H)@AB#%.BCD(E ((((5>/$C*/S*(W(SH$1$/"&.B"/L/S(W(*(6&/,(*(W(SH$1#.B/BL6&/D< I SH$1.&/BC*OJL*F(A$>D< SH$1"/BHCD<( !"#$$%"&(")*+,*+-./*0
  70. 70. [9;YO3S537.! X*52=-7")+*6aG*+4d7",+*,*7-="G*+"6+*77?4*:-/0" -66377! [9;YO3S537.K23.b"K,*7.b"K6-063=! )-0"*0=>"7304J+363/@3"[9;Y?306*434"4-.-! )*0.30.?.>,3"/0"H*.8"4/+36./*07"/7"-,,=/6-./*0J Q7*0+3S537.! Y*"-5.830./6-./*0"/0G*+:-./*0"*+"6**a/37"730.! X*37"0*.":33.");O9"+3S5/+3:30.7! U/+3G*R",=52/07"-@-/=-H=3 !"#$$%"&(")*+,*+-./*0
  71. 71. [9;YO3S537."9-:,=3$/UA/"eA2?/$()(89Re`/UA/"1&."C((((*+&,--.+/$5&&1#.2-$/UA/"*F(((((E((((((((H55,(*>..."R@o55*((((IF(((((@AB#%.B(C$/UA/"eA2?/$F(05>A/F(/S#/&%.BD(E((((((((%@(C05>A/D(E((((((((((((+5BH>/`/"&.B"/C05>A/D<((((((((I(/>"/(E((((((((((((+5BH>/J$$.$C/S#/&%.BD<((((((((I((((ID !"#$$%"&(")*+,*+-./*0
  72. 72. )+*77?X*:-/0"37."<+-6./637! 9-0/./g3"+37,*0737"G+*:"V50.+57.34W"F+4",-+.>"P3H" 1<&7"H3G*+3"6-==/02"/05>"*+"%BB/$_Lab! O37.+/6.",*=/6>"G/=37"-7":568"-7",*77/H=3! X3,=*>"73+@/637"3R,*734".*"F+4",-+.>"573+7"*0"-" 4/GG3+30."4*:-/0".8-0".83"4*:-/0".8-."03347" -5.830./6-./*0 +4! &G"73+@/637"3R,*734".*"F ",-+.>"573+7"-04"0334" -5.830./6-./*0b"4*"0*."+3=>"*0"6**a/37"-04"7304" -44/./*0-="-5.830./6-./*0"/0G*+:-./*0 !"#$$%"&(")*+,*+-./*0
  73. 73. C/0a7! 9-:3";+/2/0"<*=/6> 8..,7eJJ43@3=*,3+K:*g/==-K*+2J30J9-:3k*+/2/0k,*=/6>kG*+k[-@-96+/,.! [9;Y< 8..,eJJPPPK/H:K6*:J43@3=*,3+P*+a7J=/H+-+>JP-?-Q?Q7*0,fJ! 4*65:30.K4*:-/0 8..,7eJJ43@3=*,3+K:*g/==-K*+2J30JX;(J4*65:30.K4*:-/0! 95H7,-63 8..,eJJPPPK6*==/0Q-6a7*0K6*:J+373-+68J,-,3+7JG,`$f?Q-6a7*0K,4G! U+-2:30."&430./G/3+"(377-2/02 8..,eJJ7*G.P-+3-7K6*:J6+*77?4*:-/0?6*::50/6-./*0?P/.8?/G+-:37 !"#$$%"&(")*+,*+-./*0
  74. 74. C/0a7! 9(-78 8..,eJJ4*:/0*K+373-+68K/H:K6*:J6*::J+373-+68k,+*Q36.7K07GJ,-237J P3Hk#K$k7365+/.>K7:-78K8.:=JuU&C]JG,FF#?43a35a3=-3+3K=*02K,4G! )+*77?U+-:3 8..,eJJPPPKQ5=/30=36*:.3K03.JH=*2J#$$mJffJFfJ! P/04*PK0-:3"B+-07,*+. 8..,eJJPPPK7/.3,30K6*:JH=*2J#$$`J$mJ##JP/04*P0-:3?.+-07,*+.J! (*4k+3P+/.3J:*4k,+*R> 8..,eJJ8..,4K-,-683K*+2J4*67J#K#J:*4J! &("1Q-R"<+*R> 8..,eJJPPP?$fK/H:K6*:J7*G.P-+3JP3H73+@3+7J-,,73+@JP-7JG3-.5+3,-6a7J P3H#$J !"#$$%"&(")*+,*+-./*0
  75. 75. C/0a7! (/6+*7*G."&&9"(*45=37 8..,eJJPPPK//7K03.J4*P0=*-47! U=-78"<*=/6>"U/=37 8..,eJJPPPK-4*H3K6*:J43@03.J-+./6=37J6+*774*:-/0k,*=/6>kG/=3k7,36K8.:=! (/6+*7*G."9/=@3+=/28."<*=/6>"U/=37 8..,eJJ:740K:/6+*7*G.K6*:J30?57J=/H+-+>J66f%m%DDVZ9K%DWK-7,R! M**2=3"M3-+7 8..,eJJ23-+7K2**2=3K6*:J! [-@-"1,,=3.7 8..,eJJP3H=*27KQ-@-K03.JH=*2JQ*78>J-+68/@3J#$$`J$DJQ-@-k4**4=3k6+*K8.:=! (*g/==-"9/2034"96+/,.7 8..,eJJPPPK:*g/==-K*+2J,+*Q36.7J7365+/.>J6*:,*030.7J7/2034?76+/,.7K8.:= !"#$$%"&(")*+,*+-./*0
  76. 76. C/0a7! AB(C"D")+*77?X*65:30."(377-2/02 8..,eJJPPPKP8-.P2K*+2J7,367JP3H?-,,7J65++30.?P*+aJ:5=./,-23J6*::7K8.:=! EF)")+*77?;+/2/0"O37*5+63"98-+/02 8..,eJJ43@KPFK*+2J#$$lJP-GJ-66377?6*0.+*=Jv+3S5/+3:30.7! EF)"T(CA..,O3S537."C3@3="# 8..,eJJPPPKPFK*+2JBOJT(CA..,O3S537.#J! &]`"T4*:-/0O3S537. 8..,eJJ:740K:/6+*7*G.K6*:J30?57J=/H+-+>J66#``$l$VZ9K`DWK-7,R! [9;YO3S537. 8..,eJJPPPKQ7*0K*+2J[9;YO3S537.K8.:= !"#$$%"&(")*+,*+-./*0

×