Commit e1adcda8 authored by Ivan Ilyin's avatar Ivan Ilyin

git conflict resolved

No related merge requests found
......@@ -1420,17 +1420,17 @@ var sankoreLang = {
}
},
"fr":{
"capital":"Capital ville",
"europe":"l'Europe",
"asia":"l'Asie",
"north_america":"l'Amérique du Nord",
"south_america":"l'Amérique du Sud",
"oceania":"l'Océanie",
"africa":"l'Afrique",
"capital":"Capitale",
"europe":"Europe",
"asia":"Asie",
"north_america":"Amérique du Nord",
"south_america":"Amérique du Sud",
"oceania":"Océanie",
"africa":"Afrique",
"eurasia": "Eurasie",
"MA":{
"city":"Rabat",
"country":"le Maroc"
"country":"Maroc"
},
"DZ":{
"city":"Alger",
......@@ -1438,15 +1438,15 @@ var sankoreLang = {
},
"TN":{
"city":"Tunis",
"country":"la Tunisie"
"country":"Tunisie"
},
"LY":{
"city":"Tripoli",
"country":"La Libye"
"country":"Libye"
},
"EG":{
"city":"Le Caire",
"country":"l'Égypte"
"country":"Égypte"
},
"Sahara_occidental":{
"city":"",
......@@ -1481,12 +1481,12 @@ var sankoreLang = {
"country":"Djibouti"
},
"ET":{
"city":"Addis Ababa",
"city":"Addis-Abeba",
"country":"Ethiopie"
},
"SO":{
"city":"Mogadiscio",
"country":"Somalia"
"country":"Somalie"
},
"KE":{
"city":"Nairobi",
......@@ -1494,7 +1494,7 @@ var sankoreLang = {
},
"UG":{
"city":"Kampala",
"country":"l'Ouganda"
"country":"Ouganda"
},
"CD":{
"city":"Kinshasa",
......@@ -1510,10 +1510,10 @@ var sankoreLang = {
},
"NG":{
"city":"Abuja",
"country":"Nigeria"
"country":"Nigéria"
},
"BJ":{
"city":"Porto Novo",
"city":"Porto-Novo",
"country":"Bénin"
},
"TG":{
......@@ -1526,15 +1526,15 @@ var sankoreLang = {
},
"CI":{
"city":"Yamoussoukro",
"country":"La Côte d'Ivoire"
"country":"Côte d'Ivoire"
},
"BF":{
"city":"Ouagadougou",
"country":"Burkina Faso"
},
"LR":{
"city":"Monravia",
"country":"Le Libéria"
"city":"Monrovia",
"country":"Libéria"
},
"SL":{
"city":"Freetown",
......@@ -1546,7 +1546,7 @@ var sankoreLang = {
},
"GW":{
"city":"Bissau",
"country":"La Guinée-Bissau"
"country":"Guinée-Bissau"
},
"SN":{
"city":"Dakar",
......@@ -1574,7 +1574,7 @@ var sankoreLang = {
},
"GQ":{
"city":"Malabo",
"country":"La Guinée Equatoriale"
"country":"Guinée Equatoriale"
},
"TZ":{
"city":"Dodoma",
......@@ -1605,12 +1605,12 @@ var sankoreLang = {
"country":"Botswana"
},
"NA":{
"city":"Windhoec",
"city":"Windhoek",
"country":"Namibie"
},
"ZA":{
"city":"Pretoria",
"country":"l'Afrique du Sud"
"country":"Afrique du Sud"
},
"LS":{
"city":"Maseru",
......@@ -1641,7 +1641,7 @@ var sankoreLang = {
"country":"Paraguay"
},
"BO":{
"city":"La Paz",
"city":"Sucre",
"country":"Bolivie"
},
"BR":{
......@@ -1654,7 +1654,7 @@ var sankoreLang = {
},
"EC":{
"city":"Quito",
"country":"L'Equateur"
"country":"Equateur"
},
"CO":{
"city":"Bogota",
......@@ -1662,7 +1662,7 @@ var sankoreLang = {
},
"VE":{
"city":"Caracas",
"country":"Venezuela"
"country":"Vénézuéla"
},
"GY":{
"city":"Georgetown",
......@@ -1673,7 +1673,7 @@ var sankoreLang = {
"country":"Suriname"
},
"GF":{
"city":"Paris",
"city":"Cayenne",
"country":"Guyane française"
},
"CA":{
......@@ -1682,14 +1682,14 @@ var sankoreLang = {
},
"GL":{
"city":"Nuuk",
"country":"Greenland"
"country":"Grnland"
},
"US":{
"city":"Washington",
"country":"Les États-Unis d'Amérique"
"country":"États-Unis d'Amérique"
},
"MX":{
"city":"Mexique",
"city":"Mexico",
"country":"Mexique"
},
"CU":{
......@@ -1701,7 +1701,7 @@ var sankoreLang = {
"country":"Haïti"
},
"DO":{
"city":"Santo Domingo",
"city":"Saint-Domingue",
"country":"République Dominicaine"
},
"JM":{
......@@ -1721,8 +1721,8 @@ var sankoreLang = {
"country":"Belize"
},
"SV":{
"city":"Salvador",
"country":"San Salvador"
"city":"San Salvador",
"country":"Salvador"
},
"HN":{
"city":"Tegucigalpa",
......@@ -1734,7 +1734,7 @@ var sankoreLang = {
},
"CR":{
"city":"San José",
"country":"Costa-Rica"
"country":"Costa Rica"
},
"PA":{
"city":"Panama",
......@@ -1746,11 +1746,11 @@ var sankoreLang = {
},
"NZ":{
"city":"Wellington",
"country":"New Zealand"
"country":"Nouvelle-Zélande"
},
"PG":{
"city":"Port Moresby",
"country":"La Papouasie-Nouvelle-Guinée"
"country":"Papouasie-Nouvelle-Guinée"
},
"ID":{
"city":"Jakarta",
......@@ -1765,7 +1765,7 @@ var sankoreLang = {
"country":"Vanuatu"
},
"NC":{
"city":"Paris",
"city":"Nouméa",
"country":"Nouvelle-Calédonie"
},
"AL":{
......@@ -1774,10 +1774,10 @@ var sankoreLang = {
},
"DE":{
"city":"Berlin",
"country":"l'Allemagne"
"country":"Allemagne"
},
"AD":{
"city":"Andorre la Vieille",
"city":"Andorre-la-Vieille",
"country":"Andorre"
},
"AM":{
......@@ -1785,7 +1785,7 @@ var sankoreLang = {
"country":"Arménie"
},
"AT":{
"city":"Vienna",
"city":"Vienne",
"country":"Autriche"
},
"AZ":{
......@@ -1802,11 +1802,11 @@ var sankoreLang = {
},
"BA":{
"city":"Sarajevo",
"country":"Bosnie"
"country":"Bosnie-Herzégovine"
},
"BG":{
"city":"Sofia",
"country":"La Bulgarie"
"country":"Bulgarie"
},
"CY":{
"city":"Nicosie",
......@@ -1817,16 +1817,16 @@ var sankoreLang = {
"country":"Croatie"
},
"DK":{
"city":"De Copenhague",
"city":"Copenhague",
"country":"Danemark"
},
"ES":{
"city":"Madrid",
"country":"L'Espagne"
"country":"Espagne"
},
"EE":{
"city":"Tallinn",
"country":"Estonia"
"country":"Estonie"
},
"FI":{
"city":"Helsinki",
......@@ -1838,7 +1838,7 @@ var sankoreLang = {
},
"GE":{
"city":"Tbilissi",
"country":"Georgia"
"country":"Géorgie"
},
"EL":{
"city":"Athènes",
......@@ -1850,11 +1850,11 @@ var sankoreLang = {
},
"IE":{
"city":"Dublin",
"country":"L'Irlande"
"country":"Irlande"
},
"IS":{
"city":"Reykjavik",
"country":"L'île"
"country":"Islande"
},
"IT":{
"city":"Rome",
......@@ -1878,7 +1878,7 @@ var sankoreLang = {
},
"MK":{
"city":"Skopje",
"country":"Macedoine"
"country":"Macédoine"
},
"MT":{
"city":"La Valette",
......@@ -1886,7 +1886,7 @@ var sankoreLang = {
},
"MD":{
"city":"Chisinau",
"country":"La Moldavie"
"country":"Moldavie"
},
"MC":{
"city":"Monaco",
......@@ -1902,14 +1902,14 @@ var sankoreLang = {
},
"NL":{
"city":"Amsterdam",
"country":"Pays Bas"
"country":"Pays-Bas"
},
"PL":{
"city":"Varsovie",
"country":"La Pologne"
"country":"Pologne"
},
"PT":{
"city":"De Lisbonne",
"city":"Lisbonne",
"country":"Portugal"
},
"CZ":{
......@@ -1921,7 +1921,7 @@ var sankoreLang = {
"country":"Roumanie"
},
"UK":{
"city":"London",
"city":"Londres",
"country":"Royaume-Uni"
},
"SM":{
......@@ -1934,7 +1934,7 @@ var sankoreLang = {
},
"SK":{
"city":"Bratislava",
"country":"Slovakia"
"country":"Slovaquie"
},
"SI":{
"city":"Ljubljana",
......@@ -1946,18 +1946,18 @@ var sankoreLang = {
},
"CH":{
"city":"Berne",
"country":"La Suisse"
"country":"Suisse"
},
"TR":{
"city":"Ankara",
"country":"La Turquie"
"country":"Turquie"
},
"UA":{
"city":"Kiev",
"country":"Ukraine"
},
"VA":{
"city":"Vatican",
"city":"Cité du Vatican",
"country":"Vatican"
},
"AF":{
......@@ -1966,23 +1966,23 @@ var sankoreLang = {
},
"SA":{
"city":"Riyad",
"country":"L'Arabie Saoudite"
"country":"Arabie Saoudite"
},
"BH":{
"city":"Manama",
"country":"Bahrein"
"country":"Bahreïn"
},
"BD":{
"city":"Dacca",
"country":"Bangladesh"
},
"BT":{
"city":"Thimphu",
"city":"Thimphou",
"country":"Bhoutan"
},
"BN":{
"city":"Andar Seri Begawan",
"country":"Brunei"
"city":"Bandar Seri Begawan",
"country":"Bruneï"
},
"KH":{
"city":"Phnom Penh",
......@@ -1994,27 +1994,27 @@ var sankoreLang = {
},
"KP":{
"city":"Pyongyang",
"country":"La Corée du Nord"
"country":"Corée du Nord"
},
"KR":{
"city":"Seoul",
"country":"La Corée du Sud"
"city":"Séoul",
"country":"Corée du Sud"
},
"AE":{
"city":"Abu Dhabi",
"city":"Abou Dabi",
"country":"Emirats Arabes Unis"
},
"IN":{
"city":"Delhi",
"country":"L'Inde"
"city":"New Delhi",
"country":"Inde"
},
"IR":{
"city":"Téhéran",
"country":"L'Iran"
"country":"Iran"
},
"IQ":{
"city":"Bagdad",
"country":"L'Irak"
"country":"Irak"
},
"IL":{
"city":"Jérusalem",
......@@ -2026,23 +2026,23 @@ var sankoreLang = {
},
"JO":{
"city":"Amman",
"country":"Jordan"
"country":"Jordanie"
},
"KZ":{
"city":"Astana",
"country":"Kazakhstan"
},
"KG":{
"city":"Bishkek",
"country":"Kirghizstan"
"city":"Bichkek",
"country":"Kirghizistan"
},
"KW":{
"city":"Koweit",
"country":"Koweit"
"city":"Koweït",
"country":"Koweït"
},
"LA":{
"city":"Laos",
"country":"Vientiane"
"city":"Vientiane",
"country":"Laos"
},
"LB":{
"city":"Beyrouth",
......@@ -2050,10 +2050,10 @@ var sankoreLang = {
},
"MY":{
"city":"Kuala Lumpur",
"country":"La Malaisie"
"country":"Malaisie"
},
"MV":{
"city":"Male",
"city":"Malé",
"country":"Maldives"
},
"MN":{
......@@ -2062,14 +2062,14 @@ var sankoreLang = {
},
"MM":{
"city":"Naypyidaw",
"country":"Myanmar"
"country":"Birmanie"
},
"NP":{
"city":"Katmandou",
"country":"Népal"
},
"OM":{
"city":"Muscat",
"city":"Mascate",
"country":"Oman"
},
"UZ":{
......@@ -2078,56 +2078,55 @@ var sankoreLang = {
},
"PK":{
"city":"Islamabad",
"country":"Le Pakistan"
"country":"Pakistan"
},
"PH":{
"city":"Manille",
"country":"Philippines"
},
"QA":{
"city":"De Doha",
"city":"Doha",
"country":"Qatar"
},
"RU":{
"city":"Moscou",
"country":"La Russie"
"country":"Russie"
},
"SG":{
"city":"Singapour",
"country":"Singapour"
},
"LK":{
"city":"Colombo",
"city":"Sri Jayawardenapura",
"country":"Sri Lanka"
},
"SY":{
"city":"Damask",
"country":"La Syrie"
"city":"Damas",
"country":"Syrie"
},
"TJ":{
"city":"Douchanbé",
"country":"Tajikistan"
"country":"Tadjikistan"
},
"TH":{
"city":"Bangkok",
"country":"Thailande"
"country":"Thaïlande"
},
"TL":{
"city":"Dili",
"country":"Le Timor-oriental"
"country":"Timor-oriental"
},
"TM":{
"city":"Achkhabad",
"city":"Achgabat",
"country":"Turkménistan"
},
"VN":{
"city":"Hanoï",
"country":"Viet Nam"
"country":"Vietnam"
},
"YE":{
"city":"Sana",
"city":"Sanaa",
"country":"Yémen"
}
}
};
......@@ -632,7 +632,6 @@ function onDropTarget(obj, event) {
}
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
tmp = tmp.substr(1, tmp.length);
var tmp_img = $("<img/>").attr("src", tmp);
$(obj).append(tmp_img);
setTimeout(function(){
......
......@@ -717,7 +717,6 @@ function onDropTarget(obj, event) {
}
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
tmp = tmp.substr(1, tmp.length);
var tmp_img = $("<img/>").attr("src", tmp);
$(obj).append(tmp_img);
setTimeout(function(){
......
......@@ -623,7 +623,6 @@ function onDropTarget(obj, event) {
textData = stringToXML(textData);
if(textData.getElementsByTagName("ready")[0].firstChild.textContent == "true"){
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
tmp = tmp.substr(1, tmp.length);
var img_block = $("<div class='img_block' style='text-align: center;'>");
$("<div class='close_img'>").appendTo(img_block);
$("<input type='hidden' value='" + $(obj).find("input[name='mask']").val() + "'/>").appendTo(img_block);
......
......@@ -472,7 +472,6 @@ function onDropTarget(obj, event) {
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
var tmp_type = textData.getElementsByTagName("type")[0].firstChild.textContent;
tmp = tmp.substr(1, tmp.length);
if(tmp_type.substr(0, 5) == "audio"){
var audio_block = $("<div class='audio_block'>").draggable().appendTo($(obj));
audio_block.css("position","absolute").css("top",event.clientY).css("left",event.clientX);
......
......@@ -399,7 +399,6 @@ function onDropTarget(obj, event) {
}
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
tmp = tmp.substr(1, tmp.length);
//alert(textData.getElementsByTagName("type")[0].firstChild.textContent + " | " + textData.getElementsByTagName("path")[0].firstChild.textContent);
var tmp_img = $("<img/>").attr("src", tmp);
//alert(1)
......
......@@ -381,7 +381,6 @@ function onDropAudio(obj, event) {
var tmp_type = textData.getElementsByTagName("type")[0].firstChild.textContent;
if(tmp_type.substr(0, 5) == "audio"){
var audio_block = $(obj).find(".audio_block");
tmp = tmp.substr(1, tmp.length);
$(obj).find("audio").remove();
audio_block.find(":first-child").removeClass("stop").addClass("play");
var source = $("<source/>").attr("src", tmp);
......
......@@ -359,7 +359,6 @@ function onDropTarget(obj, event) {
textData = stringToXML(textData);
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent;
var tmp_type = textData.getElementsByTagName("type")[0].firstChild.textContent;
tmp = tmp.substr(1, tmp.length);
if(tmp_type.substr(0, 5) == "audio"){
var img_tmp = $("<div class='img_block'>").insertBefore($(obj).find(".add_img"));
var audio_block = $("<div class='audio_block'>").appendTo(img_tmp)
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="116.314px"
height="116.314px"
viewBox="0 0 116.314 116.314"
enable-background="new 0 0 116.314 116.314"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_square_rnd.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata7161"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs7159"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 58.157001 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="116.314 : 58.157001 : 1"
inkscape:persp3d-origin="58.157001 : 38.771334 : 1"
id="perspective7163" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient7681"
gradientUnits="userSpaceOnUse"
x1="2.1924"
y1="56.8423"
x2="110.7549"
y2="56.8423" />
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="2.1924"
y1="56.8423"
x2="110.7549"
y2="56.8423">
<stop
offset="0"
style="stop-color:#FF897A"
id="stop7152" />
<stop
offset="1"
style="stop-color:#FF3400"
id="stop7154" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient7687"
gradientUnits="userSpaceOnUse"
x1="2.1924"
y1="56.8423"
x2="110.7549"
y2="56.8423" />
</defs><sodipodi:namedview
inkscape:window-height="970"
inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4.1611499"
inkscape:cx="11.054637"
inkscape:cy="58.157001"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:current-layer="Layer_1" />
<g
id="g7690">
<path
style="opacity:0.25;fill-rule:evenodd"
id="path7147"
d="M 5.887,31.278 C 5.887,16.869 17.566,5.19 31.975,5.19 L 88.364,5.19 C 102.772,5.19 114.45,16.869 114.45,31.278 L 114.45,87.666 C 114.45,102.074 102.772,113.754 88.364,113.754 L 31.975,113.754 C 17.566,113.754 5.887,102.074 5.887,87.666 L 5.887,31.278 z"
clip-rule="evenodd" /><path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;fill-opacity:1"
id="path7156"
d="M 2.192,28.648 C 2.192,14.239 13.87,2.56 28.28,2.56 L 84.669,2.56 C 99.077,2.56 110.755,14.239 110.755,28.648 L 110.755,85.036 C 110.755,99.444 99.077,111.124 84.669,111.124 L 28.28,111.124 C 13.87,111.124 2.192,99.444 2.192,85.036 L 2.192,28.648 z"
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="116.314px"
height="116.314px"
viewBox="0 0 116.314 116.314"
enable-background="new 0 0 116.314 116.314"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_square.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata6561"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs6559"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 58.157001 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="116.314 : 58.157001 : 1"
inkscape:persp3d-origin="58.157001 : 38.771334 : 1"
id="perspective6563" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient6572"
gradientUnits="userSpaceOnUse"
x1="2.1914001"
y1="56.8423"
x2="110.7539"
y2="56.8423" />
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="2.1914001"
y1="56.8423"
x2="110.7539"
y2="56.8423">
<stop
offset="0"
style="stop-color:#FF897A"
id="stop6552" />
<stop
offset="1"
style="stop-color:#FF3400"
id="stop6554" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient6578"
gradientUnits="userSpaceOnUse"
x1="2.1914001"
y1="56.8423"
x2="110.7539"
y2="56.8423" />
</defs><sodipodi:namedview
inkscape:window-height="970"
inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4.1611499"
inkscape:cx="11.054637"
inkscape:cy="58.157001"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:current-layer="Layer_1" />
<g
id="g7090">
<rect
style="opacity:0.25;fill-rule:evenodd"
id="rect6547"
height="108.563"
width="108.563"
clip-rule="evenodd"
y="5.1900001"
x="5.8860002" /><rect
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;fill-opacity:1;stroke-opacity:1"
id="rect6556"
height="108.563"
width="108.562"
clip-rule="evenodd"
y="2.5610001"
x="2.191" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="96.661px"
height="119.096px"
viewBox="0 0 96.661 119.096"
enable-background="new 0 0 96.661 119.096"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_arrow_down.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata4418"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs4416"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 59.548 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="96.661003 : 59.548 : 1"
inkscape:persp3d-origin="48.330502 : 39.698667 : 1"
id="perspective4420" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4429"
gradientUnits="userSpaceOnUse"
x1="2.6235001"
y1="58.913601"
x2="90.977997"
y2="58.913601" />
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="2.6235001"
y1="58.913601"
x2="90.977997"
y2="58.913601">
<stop
offset="0"
style="stop-color:#FFFFFF"
id="stop4411" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4434"
gradientUnits="userSpaceOnUse"
x1="2.6235001"
y1="58.913601"
x2="90.977997"
y2="58.913601" />
</defs><sodipodi:namedview
inkscape:window-height="669"
inkscape:window-width="640"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4.0639484"
inkscape:cx="48.330502"
inkscape:cy="59.548"
inkscape:window-x="92"
inkscape:window-y="92"
inkscape:current-layer="Layer_1" />
<g
id="g4438">
<path
style="opacity:0.25;fill-rule:evenodd"
id="path4404"
d="M 36.043,64.812 L 36.043,8.574 C 36.043,7.337 37.129,6.249 38.368,6.249 L 63.62,6.249 C 64.856,6.249 65.946,7.337 65.946,8.574 L 65.946,64.812 L 92.092,64.812 C 94.583,64.812 95.484,66.802 93.838,68.673 L 52.242,116.013 C 51.277,117.112 49.711,117.112 48.746,116.013 L 7.151,68.674 C 5.506,66.803 6.406,64.813 8.897,64.813 L 36.043,64.813 L 36.043,64.812 z"
clip-rule="evenodd" /><path
style="fill:url(#linearGradient4434);fill-rule:evenodd;stroke:#000000"
id="path4413"
d="M 32.349,62.183 L 32.349,5.944 C 32.349,4.707 33.435,3.619 34.673,3.619 L 59.925,3.619 C 61.161,3.619 62.251,4.707 62.251,5.944 L 62.251,62.182 L 88.397,62.182 C 90.889,62.182 91.79,64.172 90.143,66.043 L 48.547,113.383 C 47.582,114.482 46.016,114.482 45.051,113.383 L 3.457,66.044 C 1.812,64.173 2.711,62.183 5.203,62.183 L 32.349,62.183 z"
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="119.268px"
height="96.873px"
viewBox="0 0 119.268 96.873"
enable-background="new 0 0 119.268 96.873"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_arrow_right.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata4600"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs4598"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 48.436501 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="119.268 : 48.436501 : 1"
inkscape:persp3d-origin="59.633999 : 32.291 : 1"
id="perspective4602" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4611"
gradientUnits="userSpaceOnUse"
x1="2.8101001"
y1="47.8018"
x2="113.3979"
y2="47.8018" />
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="2.8101001"
y1="47.8018"
x2="113.3979"
y2="47.8018">
<stop
offset="0"
style="stop-color:#FFFFFF"
id="stop4593" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4616"
gradientUnits="userSpaceOnUse"
x1="2.8101001"
y1="47.8018"
x2="113.3979"
y2="47.8018" />
</defs><sodipodi:namedview
inkscape:window-height="669"
inkscape:window-width="640"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4.745615"
inkscape:cx="59.633999"
inkscape:cy="48.436501"
inkscape:window-x="184"
inkscape:window-y="184"
inkscape:current-layer="Layer_1" />
<g
id="g4620">
<path
style="opacity:0.25;fill-rule:evenodd"
id="path4586"
d="M 65.069,64.885 L 8.831,64.885 C 7.593,64.885 6.505,63.797 6.505,62.559 L 6.505,37.307 C 6.505,36.07 7.593,34.982 8.831,34.982 L 65.069,34.982 L 65.069,8.834 C 65.069,6.341 67.057,5.443 68.93,7.086 L 116.27,48.685 C 117.368,49.65 117.368,51.214 116.27,52.179 L 68.93,93.776 C 67.057,95.422 65.069,94.521 65.069,92.031 L 65.069,64.885 z"
clip-rule="evenodd" /><path
style="fill:url(#linearGradient4616);fill-rule:evenodd;stroke:#000000"
id="path4595"
d="M 61.375,62.255 L 5.136,62.255 C 3.898,62.255 2.81,61.167 2.81,59.929 L 2.81,34.677 C 2.81,33.44 3.898,32.352 5.136,32.352 L 61.375,32.352 L 61.375,6.204 C 61.375,3.711 63.363,2.813 65.235,4.456 L 112.575,46.055 C 113.673,47.02 113.673,48.584 112.575,49.549 L 65.235,91.147 C 63.363,92.793 61.375,91.892 61.375,89.402 L 61.375,62.255 z"
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="119.268px"
height="96.873px"
viewBox="0 0 119.268 96.873"
enable-background="new 0 0 119.268 96.873"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_arrow_left.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata4509"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs4507"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 48.436501 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="119.268 : 48.436501 : 1"
inkscape:persp3d-origin="59.633999 : 32.291 : 1"
id="perspective4511" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4520"
gradientUnits="userSpaceOnUse"
x1="2.8104999"
y1="47.8018"
x2="113.3989"
y2="47.8018" />
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="2.8104999"
y1="47.8018"
x2="113.3989"
y2="47.8018">
<stop
offset="0"
style="stop-color:#FFFFFF"
id="stop4502" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4525"
gradientUnits="userSpaceOnUse"
x1="2.8104999"
y1="47.8018"
x2="113.3989"
y2="47.8018" />
</defs><sodipodi:namedview
inkscape:window-height="669"
inkscape:window-width="640"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4.745615"
inkscape:cx="59.633999"
inkscape:cy="48.436501"
inkscape:window-x="138"
inkscape:window-y="138"
inkscape:current-layer="Layer_1" />
<g
id="g4529">
<path
style="opacity:0.25;fill-rule:evenodd"
id="path4495"
d="M 58.528,35.98 L 114.769,35.98 C 116.005,35.98 117.093,37.066 117.093,38.305 L 117.093,63.558 C 117.093,64.793 116.005,65.883 114.769,65.883 L 58.528,65.883 L 58.528,92.03 C 58.528,94.52 56.54,95.421 54.668,93.775 L 7.328,52.179 C 6.231,51.216 6.231,49.65 7.328,48.685 L 54.668,7.086 C 56.54,5.443 58.528,6.341 58.528,8.834 L 58.528,35.98 L 58.528,35.98 z"
clip-rule="evenodd" /><path
style="fill:url(#linearGradient4525);fill-rule:evenodd;stroke:#000000"
id="path4504"
d="M 54.833,33.351 L 111.074,33.351 C 112.311,33.351 113.399,34.437 113.399,35.676 L 113.399,60.929 C 113.399,62.164 112.311,63.254 111.074,63.254 L 54.833,63.254 L 54.833,89.401 C 54.833,91.891 52.845,92.792 50.974,91.146 L 3.633,49.549 C 2.536,48.586 2.536,47.02 3.633,46.055 L 50.974,4.456 C 52.845,2.813 54.833,3.711 54.833,6.204 L 54.833,33.351 z"
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="96.661px"
height="119.096px"
viewBox="0 0 96.661 119.096"
enable-background="new 0 0 96.661 119.096"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_arrow_up.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata4711"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs4709"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 59.548 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="96.661003 : 59.548 : 1"
inkscape:persp3d-origin="48.330502 : 39.698667 : 1"
id="perspective4713" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4722"
gradientUnits="userSpaceOnUse"
x1="2.6229999"
y1="58.913601"
x2="90.977997"
y2="58.913601" />
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="2.6229999"
y1="58.913601"
x2="90.977997"
y2="58.913601">
<stop
offset="0"
style="stop-color:#FFFFFF"
id="stop4704" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient4727"
gradientUnits="userSpaceOnUse"
x1="2.6229999"
y1="58.913601"
x2="90.977997"
y2="58.913601" />
</defs><sodipodi:namedview
inkscape:window-height="669"
inkscape:window-width="640"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4.0639484"
inkscape:cx="48.330502"
inkscape:cy="59.548"
inkscape:window-x="394"
inkscape:window-y="149"
inkscape:current-layer="Layer_1" />
<g
id="g4731">
<path
style="opacity:0.25;fill-rule:evenodd"
id="path4697"
d="M 64.949,58.272 L 64.949,114.512 C 64.949,115.748 63.86,116.838 62.623,116.838 L 37.371,116.838 C 36.133,116.838 35.045,115.748 35.045,114.512 L 35.045,58.272 L 8.898,58.272 C 6.407,58.272 5.505,56.283 7.152,54.413 L 48.749,7.072 C 49.713,5.973 51.278,5.973 52.242,7.072 L 93.84,54.413 C 95.484,56.283 94.585,58.272 92.092,58.272 L 64.949,58.272 z"
clip-rule="evenodd" /><path
style="fill:url(#linearGradient4727);fill-rule:evenodd;stroke:#000000"
id="path4706"
d="M 61.253,55.643 L 61.253,111.883 C 61.253,113.119 60.165,114.209 58.927,114.209 L 33.675,114.209 C 32.437,114.209 31.349,113.119 31.349,111.883 L 31.349,55.643 L 5.203,55.643 C 2.713,55.643 1.81,53.654 3.457,51.784 L 45.054,4.442 C 46.017,3.343 47.583,3.343 48.546,4.442 L 90.146,51.783 C 91.789,53.653 90.89,55.642 88.398,55.642 L 61.253,55.642 L 61.253,55.643 z"
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="97.773px" height="118.167px" viewBox="0 0 97.773 118.167" enable-background="new 0 0 97.773 118.167"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.547,64.229V7.991c0-1.237,1.086-2.325,2.325-2.325h25.252
c1.236,0,2.326,1.088,2.326,2.325v56.238h26.146c2.491,0,3.392,1.99,1.746,3.861l-41.596,47.34c-0.965,1.099-2.531,1.099-3.496,0
L7.655,68.09c-1.645-1.871-0.745-3.861,1.746-3.861H36.547z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.547,64.229V7.991c0-1.237,1.086-2.325,2.325-2.325h25.252
c1.236,0,2.326,1.088,2.326,2.325v56.238h26.146c2.491,0,3.392,1.99,1.746,3.861l-41.596,47.34c-0.965,1.099-2.531,1.099-3.496,0
L7.655,68.09c-1.645-1.871-0.745-3.861,1.746-3.861H36.547z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.2305" y1="58.5679" x2="91.5854" y2="58.5679">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#194E6A" d="M32.956,61.836V5.598
c0-1.236,1.086-2.324,2.326-2.324h25.252c1.236,0,2.326,1.088,2.326,2.324v56.238h26.146c2.49,0,3.391,1.99,1.746,3.861
l-41.596,47.34c-0.965,1.1-2.531,1.1-3.496,0L4.063,65.698c-1.645-1.871-0.744-3.861,1.746-3.861H32.956z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.2305" y1="58.5679" x2="91.5854" y2="58.5679">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#194E6A" d="M32.956,61.836V5.598
c0-1.236,1.086-2.324,2.326-2.324h25.252c1.236,0,2.326,1.088,2.326,2.324v56.238h26.146c2.49,0,3.391,1.99,1.746,3.861
l-41.596,47.34c-0.965,1.1-2.531,1.1-3.496,0L4.063,65.698c-1.645-1.871-0.744-3.861,1.746-3.861H32.956z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="121.085px" height="95.54px" viewBox="0 0 121.085 95.54" enable-background="new 0 0 121.085 95.54" xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.925,64.1H9.687c-1.238,0-2.326-1.088-2.326-2.326V36.522
c0-1.237,1.088-2.325,2.326-2.325h56.239V8.049c0-2.493,1.988-3.391,3.861-1.748l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494
l-47.34,41.598c-1.873,1.646-3.861,0.745-3.861-1.745V64.1z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.925,64.1H9.687c-1.238,0-2.326-1.088-2.326-2.326V36.522
c0-1.237,1.088-2.325,2.326-2.325h56.239V8.049c0-2.493,1.988-3.391,3.861-1.748l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494
l-47.34,41.598c-1.873,1.646-3.861,0.745-3.861-1.745V64.1z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.77" y1="47.2549" x2="114.3589" y2="47.2549">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#194E6A" d="M62.334,61.707H6.096
c-1.238,0-2.326-1.088-2.326-2.326V34.129c0-1.236,1.088-2.324,2.326-2.324h56.239V5.657c0-2.492,1.988-3.391,3.861-1.748
l47.34,41.6c1.098,0.965,1.098,2.529,0,3.494L66.196,90.6c-1.873,1.645-3.861,0.744-3.861-1.746V61.707z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.77" y1="47.2549" x2="114.3589" y2="47.2549">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#194E6A" d="M62.334,61.707H6.096
c-1.238,0-2.326-1.088-2.326-2.326V34.129c0-1.236,1.088-2.324,2.326-2.324h56.239V5.657c0-2.492,1.988-3.391,3.861-1.748
l47.34,41.6c1.098,0.965,1.098,2.529,0,3.494L66.196,90.6c-1.873,1.645-3.861,0.744-3.861-1.746V61.707z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="121.085px" height="95.54px" viewBox="0 0 121.085 95.54" enable-background="new 0 0 121.085 95.54" xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M59.385,35.196h56.24c1.236,0,2.324,1.086,2.324,2.325v25.253
c0,1.235-1.088,2.325-2.324,2.325h-56.24v26.147c0,2.49-1.988,3.391-3.86,1.745L8.184,51.395c-1.097-0.963-1.097-2.53,0-3.495
l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V35.196z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M59.385,35.196h56.24c1.236,0,2.324,1.086,2.324,2.325v25.253
c0,1.235-1.088,2.325-2.324,2.325h-56.24v26.147c0,2.49-1.988,3.391-3.86,1.745L8.184,51.395c-1.097-0.963-1.097-2.53,0-3.495
l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V35.196z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.771" y1="47.2554" x2="114.3589" y2="47.2554">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#194E6A" d="M55.794,32.803h56.24
c1.237,0,2.325,1.086,2.325,2.326v25.252c0,1.236-1.088,2.326-2.325,2.326h-56.24v26.146c0,2.49-1.988,3.391-3.86,1.746
L4.593,49.002c-1.097-0.963-1.097-2.529,0-3.494l47.34-41.6c1.872-1.643,3.86-0.744,3.86,1.748V32.803z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.771" y1="47.2554" x2="114.3589" y2="47.2554">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#194E6A" d="M55.794,32.803h56.24
c1.237,0,2.325,1.086,2.325,2.326v25.252c0,1.236-1.088,2.326-2.325,2.326h-56.24v26.146c0,2.49-1.988,3.391-3.86,1.746
L4.593,49.002c-1.097-0.963-1.097-2.529,0-3.494l47.34-41.6c1.872-1.643,3.86-0.744,3.86,1.748V32.803z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="97.773px" height="118.167px" viewBox="0 0 97.773 118.167" enable-background="new 0 0 97.773 118.167"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.453,57.689v56.24c0,1.236-1.089,2.326-2.326,2.326H37.875
c-1.238,0-2.326-1.09-2.326-2.326v-56.24H9.402c-2.491,0-3.393-1.989-1.746-3.859L49.252,6.489c0.964-1.099,2.529-1.099,3.493,0
L94.344,53.83c1.644,1.87,0.745,3.859-1.748,3.859H65.453z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.453,57.689v56.24c0,1.236-1.089,2.326-2.326,2.326H37.875
c-1.238,0-2.326-1.09-2.326-2.326v-56.24H9.402c-2.491,0-3.393-1.989-1.746-3.859L49.252,6.489c0.964-1.099,2.529-1.099,3.493,0
L94.344,53.83c1.644,1.87,0.745,3.859-1.748,3.859H65.453z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.231" y1="58.5684" x2="91.5854" y2="58.5684">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#194E6A" d="M61.862,55.297v56.24
c0,1.236-1.09,2.326-2.326,2.326H34.284c-1.238,0-2.326-1.09-2.326-2.326v-56.24H5.811c-2.492,0-3.393-1.99-1.746-3.859
L45.661,4.096c0.965-1.098,2.529-1.098,3.494,0l41.598,47.342c1.645,1.869,0.746,3.859-1.748,3.859H61.862z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.231" y1="58.5684" x2="91.5854" y2="58.5684">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#194E6A" d="M61.862,55.297v56.24
c0,1.236-1.09,2.326-2.326,2.326H34.284c-1.238,0-2.326-1.09-2.326-2.326v-56.24H5.811c-2.492,0-3.393-1.99-1.746-3.859
L45.661,4.096c0.965-1.098,2.529-1.098,3.494,0l41.598,47.342c1.645,1.869,0.746,3.859-1.748,3.859H61.862z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="96.402px" height="118.167px" viewBox="0 0 96.402 118.167" enable-background="new 0 0 96.402 118.167"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M35.026,63.52V7.282c0-1.237,1.086-2.325,2.325-2.325h25.251
c1.236,0,2.326,1.088,2.326,2.325V63.52h26.146c2.491,0,3.392,1.99,1.746,3.861l-41.596,47.34c-0.965,1.1-2.531,1.1-3.496,0
L6.133,67.381C4.489,65.51,5.388,63.52,7.879,63.52H35.026z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M35.026,63.52V7.282c0-1.237,1.086-2.325,2.325-2.325h25.251
c1.236,0,2.326,1.088,2.326,2.325V63.52h26.146c2.491,0,3.392,1.99,1.746,3.861l-41.596,47.34c-0.965,1.1-2.531,1.1-3.496,0
L6.133,67.381C4.489,65.51,5.388,63.52,7.879,63.52H35.026z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.3823" y1="59.4331" x2="91.9873" y2="59.4331">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#414141" d="M33.191,62.711V6.313
c0-1.24,1.09-2.332,2.334-2.332h25.322c1.24,0,2.332,1.092,2.332,2.332v56.398h26.221c2.5,0,3.402,1.996,1.752,3.873
l-41.714,47.473c-0.967,1.104-2.537,1.104-3.506,0L4.218,66.584c-1.65-1.877-0.748-3.873,1.75-3.873H33.191z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.3823" y1="59.4331" x2="91.9873" y2="59.4331">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#414141" d="M33.191,62.711V6.313
c0-1.24,1.09-2.332,2.334-2.332h25.322c1.24,0,2.332,1.092,2.332,2.332v56.398h26.221c2.5,0,3.402,1.996,1.752,3.873
l-41.714,47.473c-0.967,1.104-2.537,1.104-3.506,0L4.218,66.584c-1.65-1.877-0.748-3.873,1.75-3.873H33.191z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="118.344px" height="94.854px" viewBox="0 0 118.344 94.854" enable-background="new 0 0 118.344 94.854"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.195,63.032H7.956c-1.237,0-2.325-1.088-2.325-2.326V35.454
c0-1.237,1.088-2.325,2.325-2.325h56.239V6.981c0-2.493,1.988-3.391,3.861-1.748l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494
l-47.34,41.598c-1.873,1.646-3.861,0.745-3.861-1.745V63.032z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.195,63.032H7.956c-1.237,0-2.325-1.088-2.325-2.326V35.454
c0-1.237,1.088-2.325,2.325-2.325h56.239V6.981c0-2.493,1.988-3.391,3.861-1.748l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494
l-47.34,41.598c-1.873,1.646-3.861,0.745-3.861-1.745V63.032z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.7588" y1="47.7617" x2="113.6621" y2="47.7617">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#414141" d="M61.49,62.254H5.092
c-1.241,0-2.333-1.09-2.333-2.332V34.599c0-1.24,1.092-2.332,2.333-2.332H61.49V6.046c0-2.5,1.994-3.4,3.872-1.754l47.475,41.717
c1.101,0.969,1.101,2.537,0,3.503L65.362,91.229c-1.878,1.65-3.872,0.748-3.872-1.75V62.254z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.7588" y1="47.7617" x2="113.6621" y2="47.7617">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#414141" d="M61.49,62.254H5.092
c-1.241,0-2.333-1.09-2.333-2.332V34.599c0-1.24,1.092-2.332,2.333-2.332H61.49V6.046c0-2.5,1.994-3.4,3.872-1.754l47.475,41.717
c1.101,0.969,1.101,2.537,0,3.503L65.362,91.229c-1.878,1.65-3.872,0.748-3.872-1.75V62.254z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="118.344px" height="94.854px" viewBox="0 0 118.344 94.854" enable-background="new 0 0 118.344 94.854"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M57.918,34.128h56.24c1.236,0,2.324,1.086,2.324,2.325v25.252
c0,1.235-1.088,2.325-2.324,2.325h-56.24v26.147c0,2.49-1.988,3.391-3.86,1.745L6.717,50.326c-1.097-0.963-1.097-2.529,0-3.494
l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V34.128z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M57.918,34.128h56.24c1.236,0,2.324,1.086,2.324,2.325v25.252
c0,1.235-1.088,2.325-2.324,2.325h-56.24v26.147c0,2.49-1.988,3.391-3.86,1.745L6.717,50.326c-1.097-0.963-1.097-2.529,0-3.494
l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V34.128z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.4966" y1="47.7617" x2="113.3994" y2="47.7617">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#414141" d="M54.668,33.269h56.4
c1.24,0,2.331,1.09,2.331,2.332v25.324c0,1.24-1.091,2.332-2.331,2.332h-56.4v26.223c0,2.498-1.994,3.4-3.871,1.75L3.322,49.512
c-1.1-0.964-1.1-2.535,0-3.503L50.797,4.292c1.877-1.646,3.871-0.746,3.871,1.754V33.269z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.4966" y1="47.7617" x2="113.3994" y2="47.7617">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#414141" d="M54.668,33.269h56.4
c1.24,0,2.331,1.09,2.331,2.332v25.324c0,1.24-1.091,2.332-2.331,2.332h-56.4v26.223c0,2.498-1.994,3.4-3.871,1.75L3.322,49.512
c-1.1-0.964-1.1-2.535,0-3.503L50.797,4.292c1.877-1.646,3.871-0.746,3.871,1.754V33.269z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="96.402px" height="118.167px" viewBox="0 0 96.402 118.167" enable-background="new 0 0 96.402 118.167"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.151,56.98v56.241c0,1.236-1.089,2.326-2.326,2.326H36.573
c-1.238,0-2.326-1.09-2.326-2.326V56.98H8.101c-2.491,0-3.393-1.989-1.746-3.859L47.951,5.78c0.964-1.099,2.529-1.099,3.493,0
l41.599,47.341c1.644,1.87,0.745,3.859-1.748,3.859H64.151z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.151,56.98v56.241c0,1.236-1.089,2.326-2.326,2.326H36.573
c-1.238,0-2.326-1.09-2.326-2.326V56.98H8.101c-2.491,0-3.393-1.989-1.746-3.859L47.951,5.78c0.964-1.099,2.529-1.099,3.493,0
l41.599,47.341c1.644,1.87,0.745,3.859-1.748,3.859H64.151z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.1616" y1="59.4341" x2="91.7666" y2="59.4341">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#414141" d="M61.958,56.153v56.401
c0,1.24-1.092,2.332-2.332,2.332H34.302c-1.242,0-2.332-1.092-2.332-2.332V56.153H5.749c-2.498,0-3.402-1.994-1.752-3.869
L45.712,4.808c0.967-1.102,2.537-1.102,3.504,0l41.717,47.477c1.648,1.875,0.746,3.869-1.754,3.869H61.958z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.1616" y1="59.4341" x2="91.7666" y2="59.4341">
<stop offset="0" style="stop-color:#BEBEBE"/>
<stop offset="1" style="stop-color:#6A6A6A"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#414141" d="M61.958,56.153v56.401
c0,1.24-1.092,2.332-2.332,2.332H34.302c-1.242,0-2.332-1.092-2.332-2.332V56.153H5.749c-2.498,0-3.402-1.994-1.752-3.869
L45.712,4.808c0.967-1.102,2.537-1.102,3.504,0l41.717,47.477c1.648,1.875,0.746,3.869-1.754,3.869H61.958z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="96.661px" height="119.096px" viewBox="0 0 96.661 119.096" enable-background="new 0 0 96.661 119.096"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.043,64.812V8.574c0-1.237,1.086-2.325,2.325-2.325h25.252
c1.236,0,2.326,1.088,2.326,2.325v56.238h26.146c2.491,0,3.392,1.99,1.746,3.861l-41.596,47.34c-0.965,1.099-2.531,1.099-3.496,0
L7.151,68.674c-1.645-1.871-0.745-3.861,1.746-3.861H36.043z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.043,64.812V8.574c0-1.237,1.086-2.325,2.325-2.325h25.252
c1.236,0,2.326,1.088,2.326,2.325v56.238h26.146c2.491,0,3.392,1.99,1.746,3.861l-41.596,47.34c-0.965,1.099-2.531,1.099-3.496,0
L7.151,68.674c-1.645-1.871-0.745-3.861,1.746-3.861H36.043z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.6235" y1="58.9136" x2="90.978" y2="58.9136">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#6F0000" d="M32.349,62.183V5.944
c0-1.237,1.086-2.325,2.324-2.325h25.252c1.236,0,2.326,1.088,2.326,2.325v56.238h26.146c2.492,0,3.393,1.99,1.746,3.861
l-41.596,47.34c-0.965,1.099-2.531,1.099-3.496,0L3.457,66.044c-1.645-1.871-0.746-3.861,1.746-3.861H32.349z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.6235" y1="58.9136" x2="90.978" y2="58.9136">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#6F0000" d="M32.349,62.183V5.944
c0-1.237,1.086-2.325,2.324-2.325h25.252c1.236,0,2.326,1.088,2.326,2.325v56.238h26.146c2.492,0,3.393,1.99,1.746,3.861
l-41.596,47.34c-0.965,1.099-2.531,1.099-3.496,0L3.457,66.044c-1.645-1.871-0.746-3.861,1.746-3.861H32.349z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="119.268px" height="96.873px" viewBox="0 0 119.268 96.873" enable-background="new 0 0 119.268 96.873"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.069,64.885H8.831c-1.238,0-2.326-1.088-2.326-2.326V37.307
c0-1.237,1.088-2.325,2.326-2.325h56.238V8.834c0-2.493,1.988-3.391,3.861-1.748l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494
L68.93,93.776c-1.873,1.646-3.861,0.745-3.861-1.745V64.885z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.069,64.885H8.831c-1.238,0-2.326-1.088-2.326-2.326V37.307
c0-1.237,1.088-2.325,2.326-2.325h56.238V8.834c0-2.493,1.988-3.391,3.861-1.748l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494
L68.93,93.776c-1.873,1.646-3.861,0.745-3.861-1.745V64.885z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.8101" y1="47.8018" x2="113.3979" y2="47.8018">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#6F0000" d="M61.375,62.255H5.136
c-1.238,0-2.326-1.088-2.326-2.326V34.677c0-1.237,1.088-2.325,2.326-2.325h56.239V6.204c0-2.493,1.988-3.391,3.86-1.748
l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494l-47.34,41.598c-1.872,1.646-3.86,0.745-3.86-1.745V62.255z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.8101" y1="47.8018" x2="113.3979" y2="47.8018">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#6F0000" d="M61.375,62.255H5.136
c-1.238,0-2.326-1.088-2.326-2.326V34.677c0-1.237,1.088-2.325,2.326-2.325h56.239V6.204c0-2.493,1.988-3.391,3.86-1.748
l47.34,41.599c1.098,0.965,1.098,2.529,0,3.494l-47.34,41.598c-1.872,1.646-3.86,0.745-3.86-1.745V62.255z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="119.268px" height="96.873px" viewBox="0 0 119.268 96.873" enable-background="new 0 0 119.268 96.873"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.528,35.98h56.241c1.236,0,2.324,1.086,2.324,2.325v25.253
c0,1.235-1.088,2.325-2.324,2.325H58.528v26.147c0,2.49-1.988,3.391-3.86,1.745L7.328,52.179c-1.097-0.963-1.097-2.529,0-3.494
l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V35.98z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.528,35.98h56.241c1.236,0,2.324,1.086,2.324,2.325v25.253
c0,1.235-1.088,2.325-2.324,2.325H58.528v26.147c0,2.49-1.988,3.391-3.86,1.745L7.328,52.179c-1.097-0.963-1.097-2.529,0-3.494
l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V35.98z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.8105" y1="47.8018" x2="113.3989" y2="47.8018">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#6F0000" d="M54.833,33.351h56.241
c1.237,0,2.325,1.086,2.325,2.325v25.253c0,1.235-1.088,2.325-2.325,2.325H54.833v26.147c0,2.49-1.988,3.391-3.859,1.745
L3.633,49.549c-1.097-0.963-1.097-2.529,0-3.494L50.974,4.456c1.871-1.643,3.859-0.745,3.859,1.748V33.351z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.8105" y1="47.8018" x2="113.3989" y2="47.8018">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#6F0000" d="M54.833,33.351h56.241
c1.237,0,2.325,1.086,2.325,2.325v25.253c0,1.235-1.088,2.325-2.325,2.325H54.833v26.147c0,2.49-1.988,3.391-3.859,1.745
L3.633,49.549c-1.097-0.963-1.097-2.529,0-3.494L50.974,4.456c1.871-1.643,3.859-0.745,3.859,1.748V33.351z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="96.661px" height="119.096px" viewBox="0 0 96.661 119.096" enable-background="new 0 0 96.661 119.096"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.949,58.272v56.24c0,1.236-1.089,2.326-2.326,2.326H37.371
c-1.238,0-2.326-1.09-2.326-2.326v-56.24H8.898c-2.491,0-3.393-1.989-1.746-3.859L48.749,7.072c0.964-1.099,2.529-1.099,3.493,0
L93.84,54.413c1.644,1.87,0.745,3.859-1.748,3.859H64.949z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M64.949,58.272v56.24c0,1.236-1.089,2.326-2.326,2.326H37.371
c-1.238,0-2.326-1.09-2.326-2.326v-56.24H8.898c-2.491,0-3.393-1.989-1.746-3.859L48.749,7.072c0.964-1.099,2.529-1.099,3.493,0
L93.84,54.413c1.644,1.87,0.745,3.859-1.748,3.859H64.949z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.623" y1="58.9136" x2="90.978" y2="58.9136">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#6F0000" d="M61.253,55.643v56.24
c0,1.236-1.088,2.326-2.326,2.326H33.675c-1.238,0-2.326-1.09-2.326-2.326v-56.24H5.203c-2.49,0-3.393-1.989-1.746-3.859
L45.054,4.442c0.963-1.099,2.529-1.099,3.492,0l41.6,47.341c1.643,1.87,0.744,3.859-1.748,3.859H61.253z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.623" y1="58.9136" x2="90.978" y2="58.9136">
<stop offset="0" style="stop-color:#FF897A"/>
<stop offset="1" style="stop-color:#FF3400"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#6F0000" d="M61.253,55.643v56.24
c0,1.236-1.088,2.326-2.326,2.326H33.675c-1.238,0-2.326-1.09-2.326-2.326v-56.24H5.203c-2.49,0-3.393-1.989-1.746-3.859
L45.054,4.442c0.963-1.099,2.529-1.099,3.492,0l41.6,47.341c1.643,1.87,0.744,3.859-1.748,3.859H61.253z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="97.774px" height="116.878px" viewBox="0 0 97.774 116.878" enable-background="new 0 0 97.774 116.878"
xml:space="preserve">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M34.752,61.478V5.239
c0-1.237,1.086-2.325,2.325-2.325H62.33c1.236,0,2.326,1.088,2.326,2.325v56.239h26.146c2.491,0,3.392,1.99,1.746,3.861
l-41.596,47.34c-0.965,1.098-2.531,1.098-3.496,0L5.86,65.339c-1.645-1.871-0.745-3.861,1.746-3.861H34.752z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M34.752,61.478V5.239
c0-1.237,1.086-2.325,2.325-2.325H62.33c1.236,0,2.326,1.088,2.326,2.325v56.239h26.146c2.491,0,3.392,1.99,1.746,3.861
l-41.596,47.34c-0.965,1.098-2.531,1.098-3.496,0L5.86,65.339c-1.645-1.871-0.745-3.861,1.746-3.861H34.752z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="116.463px" height="93.249px" viewBox="0 0 116.463 93.249" enable-background="new 0 0 116.463 93.249"
xml:space="preserve">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M61.819,60.847H5.581
c-1.238,0-2.326-1.088-2.326-2.326V33.268c0-1.237,1.088-2.325,2.326-2.325h56.238V4.795c0-2.493,1.988-3.391,3.861-1.748
l47.34,41.599c1.098,0.965,1.098,2.529,0,3.495L65.68,89.738c-1.873,1.646-3.861,0.745-3.861-1.745V60.847z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M61.819,60.847H5.581
c-1.238,0-2.326-1.088-2.326-2.326V33.268c0-1.237,1.088-2.325,2.326-2.325h56.238V4.795c0-2.493,1.988-3.391,3.861-1.748
l47.34,41.599c1.098,0.965,1.098,2.529,0,3.495L65.68,89.738c-1.873,1.646-3.861,0.745-3.861-1.745V60.847z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="116.463px" height="93.249px" viewBox="0 0 116.463 93.249" enable-background="new 0 0 116.463 93.249"
xml:space="preserve">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M55.279,31.942h56.24
c1.236,0,2.324,1.086,2.324,2.325v25.253c0,1.235-1.088,2.325-2.324,2.325h-56.24v26.147c0,2.49-1.988,3.391-3.86,1.745
L4.078,48.141c-1.097-0.963-1.097-2.53,0-3.495l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V31.942z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M55.279,31.942h56.24
c1.236,0,2.324,1.086,2.324,2.325v25.253c0,1.235-1.088,2.325-2.324,2.325h-56.24v26.147c0,2.49-1.988,3.391-3.86,1.745
L4.078,48.141c-1.097-0.963-1.097-2.53,0-3.495l47.34-41.599c1.872-1.643,3.86-0.745,3.86,1.748V31.942z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="97.774px" height="116.878px" viewBox="0 0 97.774 116.878" enable-background="new 0 0 97.774 116.878"
xml:space="preserve">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M63.658,54.937v56.24
c0,1.236-1.089,2.326-2.326,2.326H36.08c-1.238,0-2.326-1.09-2.326-2.326v-56.24H7.607c-2.491,0-3.393-1.989-1.746-3.859
L47.458,3.737c0.964-1.099,2.529-1.099,3.493,0l41.599,47.341c1.644,1.87,0.745,3.859-1.748,3.859H63.658z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M63.658,54.937v56.24
c0,1.236-1.089,2.326-2.326,2.326H36.08c-1.238,0-2.326-1.09-2.326-2.326v-56.24H7.607c-2.491,0-3.393-1.989-1.746-3.859
L47.458,3.737c0.964-1.099,2.529-1.099,3.493,0l41.599,47.341c1.644,1.87,0.745,3.859-1.748,3.859H63.658z"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="128.846px"
height="122.544px"
viewBox="0 0 128.846 122.544"
enable-background="new 0 0 128.846 122.544"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_star_rnd.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata8407"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs8405"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 61.271999 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128.84599 : 61.271999 : 1"
inkscape:persp3d-origin="64.422997 : 40.848 : 1"
id="perspective8409" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient8932"
gradientUnits="userSpaceOnUse"
x1="2.4384999"
y1="60.637699"
x2="123.3472"
y2="60.637699" /><linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient8934"
gradientUnits="userSpaceOnUse"
x1="2.4384999"
y1="60.637699"
x2="123.3472"
y2="60.637699" />
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="2.4384999"
y1="60.637699"
x2="123.3472"
y2="60.637699">
<stop
offset="0"
style="stop-color:#FF897A"
id="stop8391" />
<stop
offset="1"
style="stop-color:#FF3400"
id="stop8393" />
</linearGradient>
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="2.4384999"
y1="60.637699"
x2="123.3472"
y2="60.637699">
<stop
offset="0"
style="stop-color:#FF897A"
id="stop8398" />
<stop
offset="1"
style="stop-color:#FF3400"
id="stop8400" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient8943"
gradientUnits="userSpaceOnUse"
x1="2.4384999"
y1="60.637699"
x2="123.3472"
y2="60.637699" /><linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient8946"
gradientUnits="userSpaceOnUse"
x1="2.4384999"
y1="60.637699"
x2="123.3472"
y2="60.637699" />
</defs><sodipodi:namedview
inkscape:window-height="970"
inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="3.9496018"
inkscape:cx="14.797741"
inkscape:cy="61.271999"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:current-layer="Layer_1" />
<g
id="g8950">
<path
style="opacity:0.25;fill-rule:evenodd"
id="path8384"
d="M 66.588,97.681 L 36.828,119.302 C 31.108,123.457 25.637,119.483 27.819,112.756 L 39.187,77.774 L 9.43,56.153 C 3.71,51.996 5.799,45.565 12.87,45.563 L 49.653,45.562 L 61.02,10.582 C 63.205,3.855 69.967,3.855 72.154,10.582 L 83.522,45.562 L 120.303,45.563 C 127.374,45.565 129.465,51.996 123.744,56.153 L 93.989,77.774 L 105.352,112.756 C 107.539,119.483 102.066,123.457 96.345,119.302 L 66.588,97.681 z"
clip-rule="evenodd" /><path
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;fill-opacity:1;stroke-opacity:1"
id="path8395"
d="M 62.894,95.051 L 33.134,116.672 C 27.413,120.827 21.943,116.853 24.124,110.126 L 35.493,75.144 L 5.736,53.523 C 0.015,49.366 2.105,42.935 9.175,42.933 L 45.958,42.932 L 57.325,7.952 C 59.511,1.225 66.272,1.225 68.46,7.952 L 79.827,42.932 L 116.608,42.933 C 123.68,42.935 125.77,49.366 120.049,53.523 L 90.294,75.144 L 101.657,110.126 C 103.843,116.853 98.37,120.827 92.649,116.672 L 62.894,95.051 z"
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Layer_1"
x="0px"
y="0px"
width="128.846px"
height="122.544px"
viewBox="0 0 128.846 122.544"
enable-background="new 0 0 128.846 122.544"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="red_star.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata7779"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs7777"><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 61.271999 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128.84599 : 61.271999 : 1"
inkscape:persp3d-origin="64.422997 : 40.848 : 1"
id="perspective7781" />
<linearGradient
inkscape:collect="always"
xlink:href="#SVGID_1_"
id="linearGradient8304"
gradientUnits="userSpaceOnUse"
x1="2.8438001"
y1="60.637699"
x2="122.9438"
y2="60.637699" /><linearGradient
inkscape:collect="always"
xlink:href="#SVGID_2_"
id="linearGradient8306"
gradientUnits="userSpaceOnUse"
x1="2.8438001"
y1="60.637699"
x2="122.9438"
y2="60.637699" />
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="2.8438001"
y1="60.637699"
x2="122.9438"
y2="60.637699">
<stop
offset="0"
style="stop-color:#FF897A"
id="stop7763" />
<stop
offset="1"
style="stop-color:#FF3400"
id="stop7765" />
</linearGradient>
<linearGradient
id="SVGID_2_"
gradientUnits="userSpaceOnUse"
x1="2.8438001"
y1="60.637699"
x2="122.9438"
y2="60.637699">
<stop
offset="0"
style="stop-color:#FF897A"
id="stop7770" />
<stop
offset="1"
style="stop-color:#FF3400"
id="stop7772" />
</linearGradient>
</defs><sodipodi:namedview
inkscape:window-height="970"
inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="3.9496018"
inkscape:cx="14.797741"
inkscape:cy="61.271999"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:current-layer="Layer_1" />
<g
id="g8318">
<polygon
style="opacity:0.25;fill-rule:evenodd"
id="polygon7756"
points="103.702,120.378 66.588,93.416 29.475,120.378 43.65,76.75 6.538,49.786 52.411,49.784 66.588,6.157 80.766,49.784 126.637,49.786 89.526,76.75 103.702,120.378 "
clip-rule="evenodd" /><polygon
style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;fill-opacity:1"
id="polygon7767"
points="100.006,117.749 62.895,90.786 25.779,117.749 39.955,74.121 2.844,47.156 48.717,47.154 62.895,3.527 77.071,47.154 122.944,47.156 85.831,74.121 100.006,117.749 "
clip-rule="evenodd" /></g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="129.314px" height="122.966px" viewBox="0 0 129.314 122.966" enable-background="new 0 0 129.314 122.966"
xml:space="preserve">
<g>
<g opacity="0.25">
<path fill-rule="evenodd" clip-rule="evenodd" d="M66.77,97.773l-29.76,21.621c-5.72,4.155-11.191,0.181-9.009-6.546L39.37,77.866
L9.612,56.245c-5.72-4.157-3.631-10.588,3.44-10.59l36.783-0.001l11.367-34.98c2.185-6.727,8.947-6.727,11.134,0l11.368,34.98
l36.781,0.001c7.071,0.002,9.162,6.433,3.441,10.59L94.17,77.866l11.363,34.982c2.187,6.727-3.286,10.701-9.007,6.546
L66.77,97.773z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M66.77,97.773l-29.76,21.621c-5.72,4.155-11.191,0.181-9.009-6.546L39.37,77.866
L9.612,56.245c-5.72-4.157-3.631-10.588,3.44-10.59l36.783-0.001l11.367-34.98c2.185-6.727,8.947-6.727,11.134,0l11.368,34.98
l36.781,0.001c7.071,0.002,9.162,6.433,3.441,10.59L94.17,77.866l11.363,34.982c2.187,6.727-3.286,10.701-9.007,6.546
L66.77,97.773z"/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2.7236" y1="60.9683" x2="123.6333" y2="60.9683">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#194E6A" d="M63.178,95.382l-29.76,21.621
c-5.719,4.154-11.191,0.18-9.008-6.547l11.367-34.982L6.02,53.853c-5.719-4.156-3.631-10.588,3.441-10.59h36.783l11.367-34.98
c2.184-6.727,8.947-6.727,11.133,0l11.369,34.98h36.781c7.07,0.002,9.162,6.434,3.441,10.59L90.579,75.474l11.363,34.982
c2.188,6.727-3.285,10.701-9.006,6.547L63.178,95.382z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2.7236" y1="60.9683" x2="123.6333" y2="60.9683">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#194E6A" d="M63.178,95.382l-29.76,21.621
c-5.719,4.154-11.191,0.18-9.008-6.547l11.367-34.982L6.02,53.853c-5.719-4.156-3.631-10.588,3.441-10.59h36.783l11.367-34.98
c2.184-6.727,8.947-6.727,11.133,0l11.369,34.98h36.781c7.07,0.002,9.162,6.434,3.441,10.59L90.579,75.474l11.363,34.982
c2.188,6.727-3.285,10.701-9.006,6.547L63.178,95.382z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="129.314px" height="122.966px" viewBox="0 0 129.314 122.966" enable-background="new 0 0 129.314 122.966"
xml:space="preserve">
<g>
<g opacity="0.25">
<polygon fill-rule="evenodd" clip-rule="evenodd" points="103.883,120.471 66.771,93.508 29.657,120.471 43.833,76.843
6.72,49.878 52.593,49.876 66.771,6.249 80.948,49.876 126.82,49.878 89.708,76.843 "/>
<polygon fill-rule="evenodd" clip-rule="evenodd" points="103.883,120.471 66.771,93.508 29.657,120.471 43.833,76.843
6.72,49.878 52.593,49.876 66.771,6.249 80.948,49.876 126.82,49.878 89.708,76.843 "/>
</g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.1284" y1="60.9678" x2="123.228" y2="60.9678">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_1_)" stroke="#194E6A" points="100.292,118.078 63.179,91.115
26.066,118.078 40.242,74.451 3.128,47.486 49.001,47.484 63.179,3.857 77.357,47.484 123.228,47.486 86.117,74.451 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="3.1284" y1="60.9678" x2="123.228" y2="60.9678">
<stop offset="0" style="stop-color:#7CD4FF"/>
<stop offset="1" style="stop-color:#3777AE"/>
</linearGradient>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_2_)" stroke="#194E6A" points="100.292,118.078 63.179,91.115
26.066,118.078 40.242,74.451 3.128,47.486 49.001,47.484 63.179,3.857 77.357,47.484 123.228,47.486 86.117,74.451 "/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="125.75px" height="122.047px" viewBox="0 0 125.75 122.047" enable-background="new 0 0 125.75 122.047"
xml:space="preserve">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M63.193,95.206l-29.76,21.621
c-5.72,4.155-11.191,0.181-9.009-6.546l11.368-34.982L6.035,53.678c-5.72-4.157-3.631-10.588,3.44-10.59l36.783-0.001l11.367-34.98
c2.185-6.727,8.947-6.727,11.133,0l11.368,34.98l36.781,0.001c7.071,0.002,9.162,6.433,3.441,10.59L90.593,75.298l11.363,34.982
c2.187,6.727-3.286,10.701-9.007,6.546L63.193,95.206z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" d="M63.193,95.206l-29.76,21.621
c-5.72,4.155-11.191,0.181-9.009-6.546l11.368-34.982L6.035,53.678c-5.72-4.157-3.631-10.588,3.44-10.59l36.783-0.001l11.367-34.98
c2.185-6.727,8.947-6.727,11.133,0l11.368,34.98l36.781,0.001c7.071,0.002,9.162,6.433,3.441,10.59L90.593,75.298l11.363,34.982
c2.187,6.727-3.286,10.701-9.007,6.546L63.193,95.206z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="125.75px" height="122.047px" viewBox="0 0 125.75 122.047" enable-background="new 0 0 125.75 122.047"
xml:space="preserve">
<g>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" points="100.306,117.904 63.194,90.941
26.08,117.904 40.255,74.275 3.143,47.311 49.016,47.309 63.194,3.682 77.371,47.309 123.243,47.311 86.13,74.275 "/>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#595959" points="100.306,117.904 63.194,90.941
26.08,117.904 40.255,74.275 3.143,47.311 49.016,47.309 63.194,3.682 77.371,47.309 123.243,47.311 86.13,74.275 "/>
</g>
</svg>
......@@ -52,6 +52,8 @@ static QString tIwb = "iwb";
static QString tMeta = "meta";
static QString tPage = "page";
static QString tPageset = "pageset";
static QString tG = "g";
static QString tSwitch = "switch";
static QString tPolygon = "polygon";
static QString tPolyline = "polyline";
static QString tRect = "rect";
......@@ -62,7 +64,7 @@ static QString tTspan = "tspan";
static QString tBreak = "tbreak";
static QString tImage = "image";
static QString tFlash = "flash";
static QString tAudio = "audio";
static QString tAudio = "a";
static QString tVideo = "video";
//attribute names definition
......@@ -161,6 +163,31 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parse()
return result;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseGSection(const QDomElement &element)
{
QDomElement currentSvgElement = element.firstChildElement();
while (!currentSvgElement.isNull()) {
if (!parseSvgElement(currentSvgElement))
return false;
currentSvgElement = currentSvgElement.nextSiblingElement();
}
return true;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgSwitchSection(const QDomElement &element)
{
QDomElement currentSvgElement = element.firstChildElement();
while (!currentSvgElement.isNull()) {
if (parseSvgElement(currentSvgElement))
return true;
}
return false;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgRect(const QDomElement &element)
{
qreal x1 = element.attribute(aX).toDouble();
......@@ -175,7 +202,12 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgRect(const QDomElement &elem
QColor fillColor = !textFillColor.isNull() ? colorFromString(textFillColor) : QColor();
QColor strokeColor = !textStrokeColor.isNull() ? colorFromString(textStrokeColor) : QColor();
int strokeWidth = !textStrokeWidth.isNull() ? textStrokeWidth.toInt() : 0;
int strokeWidth = textStrokeWidth.toInt();
x1 -= strokeWidth/2;
y1 -= strokeWidth/2;
width += strokeWidth;
height += strokeWidth;
//init svg generator with temp file
QSvgGenerator *generator = createSvgGenerator(width, height);
......@@ -204,13 +236,13 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgRect(const QDomElement &elem
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
svgItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, svgItem);
}
repositionSvgItem(svgItem, width, height, x1, y1, hastransform, transform);
repositionSvgItem(svgItem, width, height, x1, y1, transform);
hashSceneItem(element, svgItem);
delete generator;
......@@ -249,13 +281,14 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgEllipse(const QDomElement &e
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
svgItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, svgItem);
}
repositionSvgItem(svgItem, rx * 2, ry * 2, cx - rx , cy - ry, hastransform, transform);
repositionSvgItem(svgItem, rx * 2, ry * 2, cx - 2*rx, cy+ry, transform);
hashSceneItem(element, svgItem);
delete generator;
......@@ -306,7 +339,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e
QColor strokeColor = !strokeColorText.isEmpty() ? colorFromString(strokeColorText) : QColor();
QColor fillColor = !fillColorText.isEmpty() ? colorFromString(fillColorText) : QColor();
int strokeWidth = strokeWidthText.toInt() > 0 ? strokeWidthText.toInt() : 0;
int strokeWidth = strokeWidthText.toDouble();
QPen pen;
pen.setColor(strokeColor);
......@@ -332,12 +365,12 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
svgItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, svgItem);
}
repositionSvgItem(svgItem, width + 10, height + 10, x1 - 5, y1 - 5, hastransform, transform);
repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 - strokeWidth/2 + transform.m31(), y1 + strokeWidth/2 + transform.m32(), transform);
hashSceneItem(element, svgItem);
delete generator;
......@@ -387,7 +420,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
QString strokeWidthText = element.attribute(aStrokewidth);
QColor strokeColor = !strokeColorText.isEmpty() ? colorFromString(strokeColorText) : QColor();
int strokeWidth = strokeWidthText.toInt() > 0 ? strokeWidthText.toInt() : 0;
int strokeWidth = strokeWidthText.toDouble();
width += strokeWidth;
height += strokeWidth;
QPen pen;
pen.setColor(strokeColor);
......@@ -398,7 +434,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
painter.begin(generator); //drawing to svg tmp file
painter.translate(pen.widthF() / 2 - x1, pen.widthF() / 2 - y1);
painter.translate(pen.widthF()/2 - x1, pen.widthF()/2- y1);
painter.setPen(pen);
painter.drawPolyline(polygon);
......@@ -408,12 +444,12 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
svgItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, svgItem);
}
repositionSvgItem(svgItem, width + 10, height + 10, x1 - 5, y1 - 5, hastransform, transform);
repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 + transform.m31() - strokeWidth/2, y1 + transform.m32() + strokeWidth/2, transform);
hashSceneItem(element, svgItem);
delete generator;
......@@ -537,7 +573,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgText(const QDomElement &elem
// remember if text area has transform
// QString transformString;
QTransform transform = fontTransform;
bool hasTransform = !fontTransform.isIdentity();
QRectF lastDrawnTextBoundingRect;
//parse text area tags
......@@ -552,7 +587,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgText(const QDomElement &elem
//add resulting svg file to scene
UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName()));
repositionSvgItem(svgItem, width, height, x, y, hasTransform, transform);
svgItem->resetTransform();
repositionSvgItem(svgItem, width, height, x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, svgItem);
delete generator;
......@@ -659,10 +695,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgTextarea(const QDomElement &
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
svgItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, svgItem);
}
//by default all the textAreas are not editable
......@@ -671,7 +707,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgTextarea(const QDomElement &
curDelegate->setEditable(false);
}
repositionSvgItem(svgItem, width, height, x, y, hastransform, transform);
repositionSvgItem(svgItem, width, height, x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, svgItem);
return true;
......@@ -703,12 +739,12 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgImage(const QDomElement &ele
UBGraphicsPixmapItem *pixItem = mCurrentScene->addPixmap(pix);
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
pixItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, pixItem);
}
repositionSvgItem(pixItem, width, height, x, y, hastransform, transform);
repositionSvgItem(pixItem, width, height, x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, pixItem);
return true;
......@@ -745,10 +781,12 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgFlash(const QDomElement &ele
QTransform transform;
QString textTransform = element.attribute(aTransform);
flashItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
transform = transformFromString(textTransform, flashItem);
}
repositionSvgItem(flashItem, width, height, x, y, true, transform);
repositionSvgItem(flashItem, width, height, x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, flashItem);
return true;
......@@ -756,32 +794,42 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgFlash(const QDomElement &ele
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgAudio(const QDomElement &element)
{
qreal x = element.attribute(aX).toDouble();
qreal y = element.attribute(aY).toDouble();
qreal width = element.attribute(aWidth).toDouble();
qreal height = element.attribute(aHeight).toDouble();
QDomElement parentOfAudio = element.firstChild().toElement();
qreal x = parentOfAudio.attribute(aX).toDouble();
qreal y = parentOfAudio.attribute(aY).toDouble();
QString itemRefPath = element.attribute(aHref);
QUrl urlPath;
QUrl concreteUrl;
if (!itemRefPath.isNull()) {
QString videoPath = pwdContent + "/" + itemRefPath;
if (!QFile::exists(videoPath)) {
QString audioPath = pwdContent + "/" + itemRefPath;
if (!QFile::exists(audioPath)) {
qDebug() << "can't load file" << pwdContent + "/" + itemRefPath << "maybe file corrupted";
return false;
}
urlPath = QUrl::fromLocalFile(videoPath);
concreteUrl = QUrl::fromLocalFile(audioPath);
}
UBGraphicsAudioItem *audioItem = mCurrentScene->addAudio(urlPath, false);
QUuid uuid = QUuid::createUuid();
#ifdef Q_WS_X11
concreteUrl = QUrl::fromLocalFile(mCurrentScene->document()->persistencePath() + "/" + UBPersistenceManager::persistenceManager()
->addAudioFileToDocument(mCurrentScene->document(), concreteUrl.toLocalFile(), uuid));
#else
concreteUrl = QUrl::fromLocalFile(UBPersistenceManager::persistenceManager()
->addAudioFileToDocument(mCurrentScene->document(), concreteUrl.toLocalFile(), uuid));
#endif
UBGraphicsAudioItem *audioItem = mCurrentScene->addAudio(concreteUrl, false);
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
QString textTransform = parentOfAudio.attribute(aTransform);
audioItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, audioItem);
}
repositionSvgItem(audioItem, width, height, x, y, hastransform, transform);
repositionSvgItem(audioItem, audioItem->boundingRect().width(), audioItem->boundingRect().height(), x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, audioItem);
return true;
......@@ -793,31 +841,38 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgVideo(const QDomElement &ele
if (parseSvgFlash(element)) return true;
else return false;
}
qreal x = element.attribute(aX).toDouble();
qreal y = element.attribute(aY).toDouble();
qreal width = element.attribute(aWidth).toDouble();
qreal height = element.attribute(aHeight).toDouble();
QUrl urlPath;
QUrl concreteUrl;
if (!itemRefPath.isNull()) {
QString videoPath = pwdContent + "/" + itemRefPath;
if (!QFile::exists(videoPath)) {
qDebug() << "can't load file" << pwdContent + "/" + itemRefPath << "maybe file corrupted";
return false;
}
urlPath = QUrl::fromLocalFile(videoPath);
concreteUrl = QUrl::fromLocalFile(videoPath);
}
UBGraphicsVideoItem *videoItem = mCurrentScene->addVideo(urlPath, false);
QUuid uuid = QUuid::createUuid();
#ifdef Q_WS_X11
concreteUrl = QUrl::fromLocalFile(mCurrentScene->document()->persistencePath() + "/" + UBPersistenceManager::persistenceManager()
->addVideoFileToDocument(mCurrentScene->document(), concreteUrl.toLocalFile(), uuid));
#else
concreteUrl = QUrl::fromLocalFile(UBPersistenceManager::persistenceManager()
->addVideoFileToDocument(mCurrentScene->document(), concreteUrl.toLocalFile(), uuid));
#endif
UBGraphicsVideoItem *videoItem = mCurrentScene->addVideo(concreteUrl, false);
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
videoItem->resetTransform();
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
transform = transformFromString(textTransform, videoItem);
}
repositionSvgItem(videoItem, width, height, x - 5, y - 5, hastransform, transform);
repositionSvgItem(videoItem, videoItem->boundingRect().width(), videoItem->boundingRect().height(), x + transform.m31(), y + transform.m32(), transform);
hashSceneItem(element, videoItem);
return true;
......@@ -847,7 +902,9 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgElement(const QDomElement &p
return false;
}
if (tagName == tRect && !parseSvgRect(parent)) return false;
if (tagName == tG && !parseGSection(parent)) return false;
else if (tagName == tSwitch && !parseSvgSwitchSection(parent)) return false;
else if (tagName == tRect && !parseSvgRect(parent)) return false;
else if (tagName == tEllipse && !parseSvgEllipse(parent)) return false;
else if (tagName == tPolygon && !parseSvgPolygon(parent)) return false;
else if (tagName == tPolyline && !parseSvgPolyline(parent)) return false;
......@@ -984,7 +1041,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseDoc()
void UBCFFSubsetAdaptor::UBCFFSubsetReader::repositionSvgItem(QGraphicsItem *item, qreal width, qreal height,
qreal x, qreal y,
bool useTransform, QTransform &transform)
QTransform &transform)
{
//First using viebox coordinates, then translate them to scene coordinates
......@@ -996,29 +1053,32 @@ void UBCFFSubsetAdaptor::UBCFFSubsetReader::repositionSvgItem(QGraphicsItem *ite
qreal fullScaleX = mVBTransFactor * xScale;
qreal fullScaleY = mVBTransFactor * yScale;
if (useTransform) { //if rotation or translation specified
QPointF oldVector((x - transform.dx()), (y - transform.dy()));
QTransform rTransform(transform.m11(), transform.m12(), transform.m21(), transform.m22(), 0, 0);
QTransform rTransform;
QPointF newVector = rTransform.map(oldVector);
item->setTransform(rTransform.scale(fullScaleX, fullScaleY));
item->setPos((x - mViewBoxCenter.x() + (newVector - oldVector).x()) * mVBTransFactor,
(y - mViewBoxCenter.y() + (newVector - oldVector).y()) * mVBTransFactor);
} else { //item is't rotated or translated
item->setTransform(QTransform(fullScaleX, 0, 0, fullScaleY, 0, 0));
itemBounds = item->boundingRect();
item->setPos((int)((x - mViewBoxCenter.x()) * mVBTransFactor),
(int)((y - mViewBoxCenter.y()) * mVBTransFactor));
}
QRectF sr = mCurrentScene->sceneRect();
QRectF sr1 = mCurrentSceneRect;
QRectF sr2 = mCurrentScene->normalizedSceneRect();
QTransform tr = item->sceneTransform();
item->setTransform(rTransform.scale(fullScaleX, fullScaleY), true);
tr = item->sceneTransform();
QPoint pos ((int)((x + mShiftVector.x() + (newVector - oldVector).x()) * mVBTransFactor), (int)((y +mShiftVector.y() + (newVector - oldVector).y()) * mVBTransFactor));
item->setPos(pos);
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::createNewScene()
{
mCurrentScene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mProxy, mProxy->pageCount());
mCurrentScene->setURStackEnable(false);
mCurrentSceneRect = mCurrentScene->normalizedSceneRect();
mVBTransFactor = qMin(mCurrentSceneRect.width() / mViewPort.width(),
mCurrentSceneRect.height() / mViewPort.height());
mCurrentScene->setSceneRect(mViewBox);
if ((mCurrentScene->sceneRect().topLeft().x() >= 0) || (mCurrentScene->sceneRect().topLeft().y() >= 0)) {
mShiftVector = -mViewBox.center();
}
mCurrentSceneRect = mViewBox;
mVBTransFactor = qMin(mCurrentScene->normalizedSceneRect().width() / mViewPort.width(),
mCurrentScene->normalizedSceneRect().height() / mViewPort.height());
return true;
}
......@@ -1046,6 +1106,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::persistScenes()
qDebug() << "can't allocate scene, loading failed";
return false;
}
UBSvgSubsetAdaptor::persistScene(mProxy, mCurrentScene, i);
UBGraphicsScene *tmpScene = UBSvgSubsetAdaptor::loadScene(mProxy, i);
tmpScene->setModified(true);
......@@ -1085,45 +1146,63 @@ QColor UBCFFSubsetAdaptor::UBCFFSubsetReader::colorFromString(const QString& clr
return QColor(clrString);
}
QTransform UBCFFSubsetAdaptor::UBCFFSubsetReader::transformFromString(const QString trString)
QTransform UBCFFSubsetAdaptor::UBCFFSubsetReader::transformFromString(const QString trString, QGraphicsItem *item)
{
qreal dxr = 0.0;
qreal dyr = 0.0;
qreal dx = 0.0;
qreal dy = 0.0;
qreal angle = 0.0;
QTransform tr;
foreach(QString trStr, trString.split(" ", QString::SkipEmptyParts))
{
//check pattern for strings like 'rotate(10)'
QRegExp regexp("rotate\\( *([-+]{0,1}[0-9]*\\.{0,1}[0-9]*) *\\)");
if (regexp.exactMatch(trString)) {
if (regexp.exactMatch(trStr)) {
angle = regexp.capturedTexts().at(1).toDouble();
} else {
if (item)
{
item->setTransformOriginPoint(QPointF(0, 0));
item->rotate(angle);
}
continue;
};
//check pattern for strings like 'rotate(10,20,20)' or 'rotate(10.1,10.2,34.2)'
regexp.setPattern("rotate\\( *([-+]{0,1}[0-9]*\\.{0,1}[0-9]*) *, *([-+]{0,1}[0-9]*\\.{0,1}[0-9]*) *, *([-+]{0,1}[0-9]*\\.{0,1}[0-9]*) *\\)");
if (regexp.exactMatch(trString)) {
if (regexp.exactMatch(trStr)) {
angle = regexp.capturedTexts().at(1).toDouble();
dx = regexp.capturedTexts().at(2).toDouble();
dy = regexp.capturedTexts().at(3).toDouble();
dxr = regexp.capturedTexts().at(2).toDouble();
dyr = regexp.capturedTexts().at(3).toDouble();
if (item)
{
item->setTransformOriginPoint(QPointF(dxr, dyr)-item->pos());
item->rotate(angle);
}
continue;
}
//check pattern for strings like 'translate(11.0, 12.34)'
regexp.setPattern("translate\\( *([-+]{0,1}[0-9]*\\.{0,1}[0-9]*) *,*([-+]{0,1}[0-9]*\\.{0,1}[0-9]*)*\\)");
if (regexp.exactMatch(trString)) {
if (regexp.exactMatch(trStr)) {
dx = regexp.capturedTexts().at(1).toDouble();
dy = regexp.capturedTexts().at(2).toDouble();
tr.translate(dx,dy);
continue;
}
return QTransform().translate(dx, dy).rotate(angle);
}
return tr;
}
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::getViewBoxDimenstions(const QString& viewBox)
{
//check pattern for strings like 'rotate(10)'
QRegExp regexp("([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)");
if (regexp.exactMatch(viewBox))
QStringList capturedTexts = viewBox.split(" ", QString::SkipEmptyParts);
if (capturedTexts.count())
{
int capturesCount = regexp.capturedTexts().count();
if (capturesCount == 5 && regexp.capturedTexts().at(0).length() == viewBox.length())
if (4 == capturedTexts.count())
{
mViewBox = QRectF(0, 0, regexp.capturedTexts().at(3).toDouble(), regexp.capturedTexts().at(4).toDouble());
mViewBox = QRectF(capturedTexts.at(0).toDouble(), capturedTexts.at(1).toDouble(), capturedTexts.at(2).toDouble(), capturedTexts.at(3).toDouble());
mViewPort = mViewBox;
mViewPort.translate(- mViewPort.center());
mViewBoxCenter.setX(mViewBox.width() / 2);
......
......@@ -65,6 +65,7 @@ private:
qreal mVBTransFactor;
QPointF mViewBoxCenter;
QSize mSize;
QPointF mShiftVector;
private:
QDomDocument mDOMdoc;
......@@ -85,6 +86,8 @@ private:
bool parseIwbMeta(const QDomElement &element);
bool parseSvg(const QDomElement &svgSection);
inline bool parseGSection(const QDomElement &element);
inline bool parseSvgSwitchSection(const QDomElement &element);
inline bool parseSvgRect(const QDomElement &element);
inline bool parseSvgEllipse(const QDomElement &element);
inline bool parseSvgPolygon(const QDomElement &element);
......@@ -123,9 +126,9 @@ private:
// helper methods
void repositionSvgItem(QGraphicsItem *item, qreal width, qreal height,
qreal x, qreal y,
bool useTransform, QTransform &transform);
QTransform &transform);
QColor colorFromString(const QString& clrString);
QTransform transformFromString(const QString trString);
QTransform transformFromString(const QString trString, QGraphicsItem *item = 0);
bool getViewBoxDimenstions(const QString& viewBox);
QSvgGenerator* createSvgGenerator(qreal width, qreal height);
bool getTempFileName();
......
......@@ -100,6 +100,7 @@ void UBExportFullPDF::saveOverlayPdf(UBDocumentProxy* pDocumentProxy, const QStr
if (pageIndex != 0) pdfPrinter.newPage();
//render to PDF
scene->setDrawingMode(true);
scene->render(pdfPainter, QRectF(), scene->normalizedSceneRect());
//restore screen rendering quality
......@@ -107,6 +108,7 @@ void UBExportFullPDF::saveOverlayPdf(UBDocumentProxy* pDocumentProxy, const QStr
scene->setRenderingQuality(UBItem::RenderingQualityNormal);
//restore background state
scene->setDrawingMode(false);
scene->setBackground(isDark, isCrossed);
}
......
......@@ -369,7 +369,8 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
// introduced in UB 4.0
QStringRef svgViewBox = mXmlReader.attributes().value(nsSvg, "viewBox");
QStringRef svgViewBox = mXmlReader.attributes().value("viewBox");
if (!svgViewBox.isNull())
{
......
......@@ -534,7 +534,7 @@ void UBWidgetUniboardAPI::ProcessDropEvent(QDropEvent *event)
}
}
}
qDebug() << destFileName;
QString mimeText = createMimeText(downloaded, contentType, destFileName);
dropMimeData.setData(tMimeText, mimeText.toAscii());
......@@ -623,7 +623,7 @@ QString UBWidgetUniboardAPI::createMimeText(bool downloaded, const QString &mime
}
QString relatedFileName = fileName;
relatedFileName = relatedFileName.remove(mGraphicsWidget->getOwnFolder().toLocalFile());
relatedFileName = relatedFileName.remove(mGraphicsWidget->getOwnFolder().toLocalFile() + "/");
writer.writeTextElement(tPath, relatedFileName); //writing path to created object
}
......
......@@ -731,11 +731,11 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
if(mKeyboardPalette->m_isVisible)
{
mKeyboardPalette->hide();
mKeyboardPalette->setParent(brWnd);
mKeyboardPalette->setParent(UBApplication::mainWindow);
mKeyboardPalette->show();
}
else
mKeyboardPalette->setParent(brWnd);
mKeyboardPalette->setParent(UBApplication::mainWindow);
}
}
......
......@@ -51,6 +51,7 @@
#include "domain/UBGraphicsAudioItem.h"
#include "domain/UBGraphicsSvgItem.h"
#include "domain/ubgraphicsgroupcontaineritem.h"
#include "domain/UBGraphicsStrokesGroup.h"
#include "document/UBDocumentProxy.h"
......@@ -437,7 +438,6 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
|| movingItem->type() == UBGraphicsTriangle::Type
|| movingItem == this->scene()->backgroundObject()
|| (movingItem->parentItem() && movingItem->parentItem()->type() == UBGraphicsGroupContainerItem::Type))
{
movingItem = NULL;
QGraphicsView::mousePressEvent (event);
......@@ -563,7 +563,8 @@ UBBoardView::mouseMoveEvent (QMouseEvent *event)
|| item->type() == UBGraphicsVideoItem::Type
|| item->type() == UBGraphicsAudioItem::Type
|| item->type() == UBGraphicsSvgItem::Type
|| item->type() == UBGraphicsTextItem::Type) {
|| item->type() == UBGraphicsTextItem::Type
|| item->type() == UBGraphicsStrokesGroup::Type) {
if (!mJustSelectedItems.contains(item)) {
item->setSelected(true);
......
......@@ -45,7 +45,7 @@ UBDrawingController::UBDrawingController(QObject * parent)
, mActiveRuler(NULL)
, mStylusTool((UBStylusTool::Enum)-1)
, mLatestDrawingTool((UBStylusTool::Enum)-1)
//, mDrawingMode(eDrawingMode_Vector)
, mDrawingMode(DRAWING_MODE)
{
connect(UBSettings::settings(), SIGNAL(colorContextChanged()), this, SIGNAL(colorPaletteChanged()));
......@@ -106,10 +106,16 @@ void UBDrawingController::setStylusTool(int tool)
mStylusTool = (UBStylusTool::Enum)tool;
if(eDrawingMode_Vector == DRAWING_MODE){
mDrawingMode = eDrawingMode_Vector;
}
if (mStylusTool == UBStylusTool::Pen)
UBApplication::mainWindow->actionPen->setChecked(true);
else if (mStylusTool == UBStylusTool::Eraser)
else if (mStylusTool == UBStylusTool::Eraser){
UBApplication::mainWindow->actionEraser->setChecked(true);
mDrawingMode = eDrawingMode_Artistic;
}
else if (mStylusTool == UBStylusTool::Marker)
UBApplication::mainWindow->actionMarker->setChecked(true);
else if (mStylusTool == UBStylusTool::Selector)
......
......@@ -27,6 +27,8 @@ typedef enum{
eDrawingMode_Vector
}eDrawingMode;
#define DRAWING_MODE eDrawingMode_Artistic
class UBDrawingController : public QObject
{
Q_OBJECT;
......
......@@ -345,6 +345,27 @@ QPixmap UBFeaturesController::createThumbnail(const QString &path)
return QPixmap(thumbnailPath);
}
UBFeature UBFeaturesController::importImage( const QImage &image, const UBFeature &destination )
{
QDateTime now = QDateTime::currentDateTime();
QString fileName = tr("ImportedImage") + "-" + now.toString("dd-MM-yyyy hh-mm-ss") + ".png";
UBFeature dest = destination;
if ( !destination.getFullVirtualPath().startsWith( picturesElement.getFullVirtualPath(), Qt::CaseInsensitive ) )
{
dest = picturesElement;
}
QString filePath = dest.getFullPath().toLocalFile() + "/" + fileName;
image.save(filePath);
QPixmap thumb = createThumbnail( filePath );
return UBFeature( dest.getFullVirtualPath(), thumb, fileName,
QUrl::fromLocalFile( filePath ), FEATURE_ITEM );
}
UBFeature UBFeaturesController::newFolder( const QString &name )
{
QString path = currentElement.getFullPath().toLocalFile() + "/" + name;
......@@ -408,8 +429,39 @@ UBFeature UBFeaturesController::addDownloadedFile( const QUrl &sourceUrl, const
UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeature &destination )
{
UBFeature newElement = copyItemToFolder( url, destination );
/*UBFeature newElement = copyItemToFolder( url, destination );
deleteItem( url );
return newElement;*/
QString sourcePath = url.toLocalFile();
Q_ASSERT( QFileInfo( sourcePath ).exists() );
UBFeature possibleDest = getDestinationForItem( url );
UBFeature dest = destination;
if ( destination != trashElement &&
!destination.getFullVirtualPath().startsWith( possibleDest.getFullVirtualPath(), Qt::CaseInsensitive ) )
{
dest = possibleDest;
}
QString name = QFileInfo( sourcePath ).fileName();
QString destPath = dest.getFullPath().toLocalFile();
QString destVirtualPath = dest.getFullVirtualPath();
QString newFullPath = destPath + "/" + name;
if ( sourcePath.compare( newFullPath, Qt::CaseInsensitive ) )
{
QFile( sourcePath ).copy( newFullPath );
deleteItem( url );
}
QPixmap thumb = thumbnailForFile( newFullPath );
UBFeatureElementType type = FEATURE_ITEM;
if ( UBFileSystemUtils::mimeTypeFromFileName( newFullPath ).contains("application") )
type = FEATURE_INTERACTIVE;
UBFeature newElement( destVirtualPath, thumb, name, QUrl::fromLocalFile( newFullPath ), type );
return newElement;
}
......@@ -433,6 +485,7 @@ UBFeature UBFeaturesController::copyItemToFolder( const QUrl &url, const UBFeatu
QString destPath = dest.getFullPath().toLocalFile();
QString destVirtualPath = dest.getFullVirtualPath();
QString newFullPath = destPath + "/" + name;
if ( !sourcePath.compare( newFullPath, Qt::CaseInsensitive ) )
QFile( sourcePath ).copy( newFullPath );
QPixmap thumb = thumbnailForFile( newFullPath );
......
......@@ -86,6 +86,7 @@ public:
UBFeature newFolder( const QString &name );
UBFeature addToFavorite( const QUrl &path );
void removeFromFavorite( const QUrl &path );
UBFeature importImage( const QImage &image, const UBFeature &destination );
static QString fileNameFromUrl( const QUrl &url );
static QPixmap thumbnailForFile( const QString &path );
......
......@@ -71,9 +71,15 @@ UBDocumentController::UBDocumentController(UBMainWindow* mainWindow)
{
setupViews();
setupToolbar();
this->selectDocument(UBApplication::boardController->activeDocument());
connect(this, SIGNAL(exportDone()), mMainWindow, SLOT(onExportDone()));
connect(mMainWindow->actionNewPage, SIGNAL(triggered()), this, SLOT(reloadThumbs()));
}
void UBDocumentController::reloadThumbs()
{
mDocumentThumbs = UBThumbnailAdaptor::load(selectedDocumentProxy());
}
UBDocumentController::~UBDocumentController()
{
......
......@@ -75,6 +75,7 @@ class UBDocumentController : public QObject
void copy();
void paste();
void focusChanged(QWidget *old, QWidget *current);
void reloadThumbs();
protected:
virtual void setupViews();
......
......@@ -236,7 +236,7 @@ void UBGraphicsItemDelegate::setMimeData(QMimeData *mimeData)
bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if(NULL != mMimeData)
if((NULL != mMimeData) && ((event->pos() - mDragStartPosition).manhattanLength() < QApplication::startDragDistance()))
{
QDrag* mDrag = new QDrag(event->widget());
mDrag->setMimeData(mMimeData);
......@@ -255,8 +255,8 @@ bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
event->accept();
return true;
}
else
return false;
return true;
}
bool UBGraphicsItemDelegate::weelEvent(QGraphicsSceneWheelEvent *event)
......
......@@ -39,6 +39,7 @@ UBGraphicsPolygonItem::UBGraphicsPolygonItem (const QPolygonF & polygon, QGraphi
, mOriginalWidth(-1)
, mIsNominalLine(false)
, mStroke(0)
, mpGroup(NULL)
{
// NOOP
initialize();
......@@ -77,6 +78,10 @@ UBGraphicsPolygonItem::~UBGraphicsPolygonItem()
clearStroke();
}
void UBGraphicsPolygonItem::setStrokesGroup(UBGraphicsStrokesGroup *group)
{
mpGroup = group;
}
void UBGraphicsPolygonItem::setStroke(UBGraphicsStroke* stroke)
{
......@@ -156,7 +161,7 @@ UBGraphicsPolygonItem* UBGraphicsPolygonItem::deepCopy(const QPolygonF& pol) con
copy->mIsNominalLine = false;
copy->setStroke(this->stroke());
copy->setGroup(this->group());
copy->setStrokesGroup(this->strokesGroup());
copy->setBrush(this->brush());
copy->setPen(this->pen());
copy->mHasAlpha = this->mHasAlpha;
......
......@@ -19,6 +19,7 @@
#include "core/UB.h"
#include "UBItem.h"
#include "UBGraphicsStrokesGroup.h"
class UBItem;
class UBGraphicsScene;
......@@ -37,6 +38,8 @@ class UBGraphicsPolygonItem : public QGraphicsPolygonItem, public UBItem
void initialize();
void setStrokesGroup(UBGraphicsStrokesGroup* group);
UBGraphicsStrokesGroup* strokesGroup() const{return mpGroup;}
void setColor(const QColor& color);
QColor color() const;
......@@ -132,6 +135,7 @@ class UBGraphicsPolygonItem : public QGraphicsPolygonItem, public UBItem
QColor mColorOnLightBackground;
UBGraphicsStroke* mStroke;
UBGraphicsStrokesGroup* mpGroup;
};
......
......@@ -619,7 +619,7 @@ bool UBGraphicsScene::inputDeviceRelease()
}
}else if (mCurrentStroke)
{
if(eDrawingMode_Vector == dc->drawingMode()){
if(eDrawingMode_Vector == DRAWING_MODE){
UBGraphicsStrokesGroup* pStrokes = new UBGraphicsStrokesGroup();
// Remove the strokes that were just drawn here and replace them by a stroke item
......@@ -627,6 +627,7 @@ bool UBGraphicsScene::inputDeviceRelease()
mPreviousPolygonItems.removeAll(poly);
removeItem(poly);
UBCoreGraphicsScene::removeItemFromDeletion(poly);
poly->setStrokesGroup(pStrokes);
pStrokes->addToGroup(poly);
}
......@@ -808,37 +809,65 @@ void UBGraphicsScene::eraseLineTo(const QPointF &pEndPoint, const qreal &pWidth)
eraserPathVar.addPolygon(eraserPolygon);
const QPainterPath eraserPath = eraserPathVar;
// Get all the items that are intersecting with the eraser path
QList<QGraphicsItem*> collidItems = items(eraserBoundingRect, Qt::IntersectsItemBoundingRect);
if(eDrawingMode_Vector == UBDrawingController::drawingController()->drawingMode()){
// NOTE: I decided to reuse the 'artistic' eraser all the time in order to have a better eraser
// For this reason, the following code is not used but we will keep it for now, in case of
// futur requirements.
foreach(QGraphicsItem* poly, collidItems){
UBGraphicsStrokesGroup* pGroup = dynamic_cast<UBGraphicsStrokesGroup*>(poly);
if(NULL != pGroup){
// TODO: Ungroup the item, put back the polygons on the scene, deal with the
// eraser's bounding rect, remove the polygons that must be removed
// then create new groups.
// Get all substrokes and verify if they are part of the eraserpath then deal with it
foreach(QGraphicsItem* item, poly->childItems()){
UBGraphicsPolygonItem* polygon = dynamic_cast<UBGraphicsPolygonItem*>(item);
if(NULL != polygon){
if(eraserBoundingRect.intersects(polygon->boundingRect())){
pGroup->removeFromGroup(polygon);
removeItem(polygon);
}
}
}
}
}
}else{
QSet<QGraphicsItem*> toBeAddedItems;
QSet<QGraphicsItem*> toBeRemovedItems;
int collidItemsSize = collidItems.size();
toBeAddedItems.reserve(collidItemsSize);
toBeRemovedItems.reserve(collidItemsSize);
if (mShouldUseOMP)
{
#pragma omp parallel for
#pragma omp parallel for
for (int i = 0; i < collidItemsSize; i++)
{
UBGraphicsPolygonItem *collidingPolygonItem
= qgraphicsitem_cast<UBGraphicsPolygonItem*> (collidItems.at(i));
UBGraphicsPolygonItem *collidingPolygonItem = dynamic_cast<UBGraphicsPolygonItem*>(collidItems.at(i));
if (collidingPolygonItem)
if (NULL != collidingPolygonItem)
{
UBGraphicsStrokesGroup* pGroup = collidingPolygonItem->strokesGroup();
if(eraserInnerRect.contains(collidingPolygonItem->boundingRect()))
{
#pragma omp critical
#pragma omp critical
// Put the entire polygon into the remove list
toBeRemovedItems << collidingPolygonItem;
}
else
{
// Here we get the polygon of the colliding item
QPolygonF collidingPolygon = collidingPolygonItem->polygon();
QPainterPath collidingPath;
collidingPath.addPolygon(collidingPolygon);
// Then we substract the eraser path to the polygon and we simplify it
QPainterPath croppedPath = collidingPath.subtracted(eraserPath);
QPainterPath croppedPathSimplified = croppedPath.simplified();
......@@ -848,18 +877,26 @@ void UBGraphicsScene::eraseLineTo(const QPointF &pEndPoint, const qreal &pWidth)
}
else if (croppedPathSimplified.isEmpty())
{
#pragma omp critical
#pragma omp critical
// Put the entire polygon into the remove list if the eraser removes all its visible content
toBeRemovedItems << collidingPolygonItem;
}
else
{
// Then we convert the remaining path to a list of polygons that will be converted in
// UBGraphicsPolygonItems and added to the scene
foreach(const QPolygonF &pol, croppedPathSimplified.toFillPolygons())
{
UBGraphicsPolygonItem* croppedPolygonItem = collidingPolygonItem->deepCopy(pol);
#pragma omp critical
#pragma omp critical
// Add this new polygon to the 'added' list
toBeAddedItems << croppedPolygonItem;
if(NULL != pGroup){
croppedPolygonItem->setStrokesGroup(pGroup);
}
}
#pragma omp critical
#pragma omp critical
// Remove the original polygonitem because it has been replaced by many smaller polygons
toBeRemovedItems << collidingPolygonItem;
}
}
......@@ -914,9 +951,28 @@ void UBGraphicsScene::eraseLineTo(const QPointF &pEndPoint, const qreal &pWidth)
addItems(toBeAddedItems);
mAddedItems += toBeAddedItems;
if(eDrawingMode_Vector == DRAWING_MODE){
foreach(QGraphicsItem* item, toBeAddedItems){
UBGraphicsPolygonItem* poly = dynamic_cast<UBGraphicsPolygonItem*>(item);
if(NULL != poly && NULL != poly->strokesGroup()){
poly->strokesGroup()->addToGroup(poly);
}
}
}
removeItems(toBeRemovedItems);
mRemovedItems += toBeRemovedItems;
if(eDrawingMode_Vector == DRAWING_MODE){
foreach(QGraphicsItem* item, toBeRemovedItems){
UBGraphicsPolygonItem* poly = dynamic_cast<UBGraphicsPolygonItem*>(item);
if(NULL != poly && NULL != poly->strokesGroup()){
poly->strokesGroup()->removeFromGroup(poly);
}
}
}
}
mPreviousPoint = pEndPoint;
}
......
......@@ -16,6 +16,11 @@ public:
virtual UBItem* deepCopy() const;
virtual void remove();
virtual UBGraphicsItemDelegate* Delegate() const {return mDelegate;}
enum { Type = UBGraphicsItemType::StrokeItemType };
virtual int type() const
{
return Type;
}
protected:
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
......
......@@ -109,11 +109,6 @@ void UBGraphicsVideoItem::showOnDisplayChanged(bool shown)
void UBGraphicsVideoItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
// QDrag* mDrag = new QDrag(event->widget());
// QMimeData* pMime = new QMimeData();
// mDrag->setMimeData(pMime);
// mDrag->start();
mShouldMove = (event->buttons() & Qt::LeftButton);
mMousePressPos = event->scenePos();
mMouseMovePos = mMousePressPos;
......
......@@ -198,6 +198,7 @@ QRectF UBGeometryUtils::lineToInnerRect(const QLineF& pLine, const qreal& pWidth
qreal centerX = (pLine.x1() + pLine.x2()) / 2;
qreal centerY = (pLine.y1() + pLine.y2()) / 2;
// Please put a fucking comment here
qreal side = sqrt((pWidth * pWidth) / 2);
qreal halfSide = side / 2;
......
......@@ -66,8 +66,8 @@ UBFeaturesActionBar::UBFeaturesActionBar( UBFeaturesController *controller, QWid
mButtonGroup->addButton(mpRemoveFavoriteBtn);
mButtonGroup->addButton(mpNewFolderBtn);
// Connect signals & slots
/*connect(mpFavoriteAction,SIGNAL(triggered()), this, SLOT(onActionFavorite()));
connect(mpSocialAction,SIGNAL(triggered()), this, SLOT(onActionSocial()));
connect(mpFavoriteAction,SIGNAL(triggered()), this, SLOT(onActionFavorite()));
/*connect(mpSocialAction,SIGNAL(triggered()), this, SLOT(onActionSocial()));
connect(mpSearchAction,SIGNAL(triggered()), this, SLOT(onActionSearch()));
connect(mpDeleteAction,SIGNAL(triggered()), this, SLOT(onActionTrash()));
connect(mpCloseAction, SIGNAL(triggered()), this, SLOT(onActionClose()));
......@@ -170,6 +170,11 @@ void UBFeaturesActionBar::onActionNewFolder()
emit newFolderToCreate();
}
void UBFeaturesActionBar::onActionFavorite()
{
emit addElementsToFavorite();
}
/*
void UBFeaturesActionBar::dragMoveEvent(QDragMoveEvent *event)
{
......
......@@ -30,9 +30,11 @@ signals:
void deleteElements( const QMimeData &data );
void addToFavorite( const QMimeData &data );
void removeFromFavorite( const QMimeData &data );
void addElementsToFavorite();
private slots:
void onSearchTextChanged(QString txt);
void onActionNewFolder();
void onActionFavorite();
protected:
//void dragMoveEvent(QDragMoveEvent *event);
void dragEnterEvent( QDragEnterEvent *event );
......
......@@ -121,6 +121,7 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale
connect( mActionBar, SIGNAL( deleteElements(const QMimeData &) ), this, SLOT( deleteElements(const QMimeData &) ) );
connect( mActionBar, SIGNAL( addToFavorite(const QMimeData &) ), this, SLOT( addToFavorite(const QMimeData &) ) );
connect( mActionBar, SIGNAL( removeFromFavorite(const QMimeData &) ), this, SLOT( removeFromFavorite(const QMimeData &) ) );
connect ( mActionBar, SIGNAL( addElementsToFavorite() ), this, SLOT ( addElementsToFavorite() ) );
connect( pathListView, SIGNAL(clicked( const QModelIndex & ) ),
this, SLOT( currentPathChanged( const QModelIndex & ) ) );
connect( thumbSlider, SIGNAL( sliderMoved(int) ), this, SLOT(thumbnailSizeChanged( int ) ) );
......@@ -333,6 +334,20 @@ void UBFeaturesWidget::onAddDownloadedFileToLibrary(bool pSuccess, QUrl sourceUr
}
}
void UBFeaturesWidget::addElementsToFavorite()
{
QModelIndexList selected = featuresListView->selectionModel()->selectedIndexes();
for ( int i = 0; i < selected.size(); ++i )
{
UBFeature feature = selected.at(i).data( Qt::UserRole + 1 ).value<UBFeature>();
UBFeature elem = controller->addToFavorite( feature.getFullPath() );
if ( !elem.getVirtualPath().isEmpty() && !elem.getVirtualPath().isNull() )
featuresModel->addItem( elem );
}
QSortFilterProxyModel *model = dynamic_cast<QSortFilterProxyModel *>( featuresListView->model() );
model->invalidate();
}
void UBFeaturesWidget::switchToListView()
{
stackedWidget->setCurrentIndex(ID_LISTVIEW);
......@@ -404,13 +419,19 @@ void UBFeaturesListView::mouseReleaseEvent( QMouseEvent *event )
*/
void UBFeaturesListView::dragEnterEvent( QDragEnterEvent *event )
{
if ( event->mimeData()->hasUrls() )
if ( event->mimeData()->hasUrls() || event->mimeData()->hasImage() )
event->acceptProposedAction();
}
void UBFeaturesListView::dragMoveEvent( QDragMoveEvent *event )
{
if ( event->mimeData()->hasUrls() || event->mimeData()->hasImage() )
event->acceptProposedAction();
}
void UBFeaturesListView::dropEvent( QDropEvent *event )
{
if( event->source() || dynamic_cast<UBFeaturesListView *>( event->source() ) )
if( event->source() && dynamic_cast<UBFeaturesListView *>( event->source() ) )
{
event->setDropAction( Qt::MoveAction );
}
......@@ -775,7 +796,7 @@ bool UBFeaturesModel::dropMimeData(const QMimeData *mimeData, Qt::DropAction act
{
Q_UNUSED(row)
if ( !mimeData->hasUrls() )
if ( !mimeData->hasUrls() && !mimeData->hasImage() )
return false;
if ( action == Qt::IgnoreAction )
return true;
......@@ -794,6 +815,8 @@ bool UBFeaturesModel::dropMimeData(const QMimeData *mimeData, Qt::DropAction act
parentFeature = parent.data( Qt::UserRole + 1).value<UBFeature>();
}
if ( mimeData->hasUrls() )
{
QList<QUrl> urls = mimeData->urls();
foreach ( QUrl url, urls )
......@@ -810,13 +833,20 @@ bool UBFeaturesModel::dropMimeData(const QMimeData *mimeData, Qt::DropAction act
}
addItem( element );
}
}
else if ( mimeData->hasImage() )
{
QImage image = qvariant_cast<QImage>( mimeData->imageData() );
UBFeature element = dynamic_cast<UBFeaturesWidget *>(QObject::parent())->getFeaturesController()->importImage( image, parentFeature );
addItem( element );
}
return true;
}
void UBFeaturesModel::addItem( const UBFeature &item )
{
beginInsertRows( QModelIndex(), featuresList->size(), featuresList->size() );
featuresList->push_back( item );
featuresList->append( item );
endInsertRows();
}
......@@ -897,7 +927,7 @@ Qt::ItemFlags UBFeaturesModel::flags( const QModelIndex &index ) const
QStringList UBFeaturesModel::mimeTypes() const
{
QStringList types;
types << "text/uri-list";
types << "text/uri-list" << "image/png" << "image/tiff" << "image/gif" << "image/jpeg";
return types;
}
......
......@@ -101,6 +101,7 @@ private slots:
void thumbnailSizeChanged( int );
void onDisplayMetadata( QMap<QString,QString> );
void onAddDownloadedFileToLibrary(bool, QUrl, QString, QByteArray);
void addElementsToFavorite();
protected:
bool eventFilter(QObject *target, QEvent *event);
};
......@@ -114,6 +115,7 @@ public:
protected:
virtual void dragEnterEvent( QDragEnterEvent *event );
virtual void dropEvent( QDropEvent *event );
virtual void dragMoveEvent( QDragMoveEvent *event );
/*virtual void mousePressEvent( QMouseEvent *event );
virtual void mouseMoveEvent( QMouseEvent *event );
virtual void mouseReleaseEvent( QMouseEvent *event );*/
......
......@@ -423,7 +423,7 @@ void UBWebController::setupPalettes()
{
if(!(*mToolsCurrentPalette))
{
(*mToolsCurrentPalette) = new UBWebToolsPalette((*mCurrentWebBrowser),false);
(*mToolsCurrentPalette) = new UBWebToolsPalette(UBApplication::mainWindow, false);
#ifndef Q_WS_WIN
if (UBPlatformUtils::hasVirtualKeyboard() && UBApplication::boardController->paletteManager()->mKeyboardPalette)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment