œ_#ÁÕ§TE NAŒ“KeÉ:”(åŽÖJÞùY’‚ñùž7; «]Û ý`8g“¯B© jdÖÖ¸ðzœ¸¦4Ç3Kó^(ÍÖ¼ Õ€pvìwšõB4df$Èü^0˜…åÌC$#2FŽÑ§±¦ÛZ/÷š&m£ñzÒÖ ’.Î]!Î;ƒ(Õ–¢d/—#Kª+tZyuÏB>NÛÖ†(¸ŒSà'³„Y˜´-_•¦¼´˜OlNK§¶ÒàŠˆTHµƒeTPå·fïM’…þuÏÍüp6دªE£åü‡ZØ'CKF#â«;‹eyO Qp„†l"ö1èíÙP ÏŒúl! BÝ2ñª•_VÁÉ÷3eu`–F¸ìI--ö<¿žë¯4õ캿¢)34Å{wMÉ2ÆÖFŸ¥`e9Ú¶¸P‡.”FÔï rY ‚²ÈTB,{ÛœéJ}«àQ4¹0Rû4D‚B§S‘ dO•v¾„™Sן¯3FeŸ™«+ÓâwH dÕÛÌì·P4ë&¥#rÜÉ Ù¦ê†ý·xòqk¯2,¹§™E\ék‚×Sá”ÚºÙ⺷ö£6…à ʾ qSá³Å|;àû}4Ÿ($â¹VY~óÍ!èÜÒŒËX½Ù1j‚VíÍŸš³+œ]«½g{_{/vµ½\¢¶vÉWKÿ:ñám½ ¥ S²x‘t ŽšÝÙÿÀÇ^ný PK IW™k‚½÷ á _rels/.relsUT dìd dìd dìd’ÏNÃ0‡ï{ŠÈ÷ÕÝ@¡¥» ¤Ý*`%îÑ&QâÁöö‚J£ì°cœŸ¿|¶²ÙÆA½rL½wVE Šñ¶w†çúay * 9Kƒw¬áÈ ¶ÕbóÄIîI]’Ê—4t"á1™ŽGJ…ìòMããH’±Å@æ…ZÆuYÞ`üÍ€jÂT;«!îì T}|Û7MoøÞ›ýÈNN<|v–í2ÄÜ¥ÏèšbË¢Ázó˜Ë )„"£OÏ7ú{ZYÈ’yÞç#1'tuÉM?6o>Z´_å9›ëKÚ˜}?þ³žÏÌ·N>fµx PK IWª½e ¢ U € word/document.xmlUT dìdPK IWþË3” z €J¢ word/settings.xmlUT dìdPK IWC‡{š' ƒ €¤ docProps/custom.xmlUT dìdPK IW츱=Œ €‡¥ [Content_Types].xmlUT dìdPK IWV%ë±" €U§ docProps/app.xmlUT dìdPK IW€RŒ 3 €¶¨ docProps/core.xmlUT dìdPK IWkòDn ô €ª word/_rels/document.xml.relsUT dìdPK IW;$î €Î« word/fontTable.xmlUT dìdPK IW+åäz] ÷. €ý¬ word/numbering.xmlUT dìdPK IW¤2×r- ¿ €›° word/styles.xmlUT dìdPK IWMFÒ ø €´ word/header1.xmlUT dìdPK IWF— T e €· word/media/image1.jpegUT dìdPK IW!Yéáå €°Ë word/media/image2.pngUT dìdPK IW°Àºë ú €ÙÌ word/media/image3.pngUT dìdPK IW$“†ª L €Î word/footer1.xmlUT dìdPK IWzaGôM €ñÑ word/footer2.xmlUT dìdPK IW–µâº P €}Õ word/theme/theme1.xmlUT dìdPK IW™k‚½÷ á €{Û _rels/.relsUT PK ! bîh^ [Content_Types].xml ¢( ¬”ËNÃ0E÷HüCä-Jܲ@5í‚Ç*Q>Àēƪc[žiiÿž‰ûB¡j7±ÏÜ{2ñÍh²nm¶‚ˆÆ»R‹ÈÀU^7/ÅÇì%¿’rZYï @1__f› ˜q·ÃR4DáAJ¬h>€ãÚÇV߯¹ªZ¨9ÈÛÁàNVÞ8Ê©ÓãÑÔji){^óã-I‹"{Üv^¥P!XS)bR¹rú—K¾s(¸3Õ`cÞ0†½ÝÎß»¾7M4²©ŠôªZÆk+¿|\|z¿(Ž‹ôPúº6h_-[ž@!‚ÒØ Pk‹´2nÏ}Ä?£LËð Ýû%áÄßdºždN"m,à¥ÇžDO97*‚~§Èɸ8ÀOíc|n¦Ñ äEøÿöéºóÀBÉÀ!$}‡íàÈé;{ìÐå[ƒîñ–é2þ ÿÿ PK ! µU0#ô L _rels/.rels ¢( ¬’MOÃ0†ïHü‡È÷ÕÝBKwAH»!T~€Iܵ£$Ý¿'TƒG½~üÊÛÝ<êÈ!öâ4¬‹;#¶w†—úqu *&r–Fq¬áÄvÕõÕö™GJy(v½*«¸¨¡KÉß#FÓñD±Ï.W ¥†=™ZÆMYÞbø®ÕBS톰·7 ê“Ï›×–¦é ?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñËyÄ7 ëÈðÉ‚‹¨Þ ÿÿ PK ! Q48wÛ — xl/workbook.xml¤UÙnâ0}iþ!cñ‡ *–¢AšVU×$dC¬&vÆv UÕŸë@XÊK§/¹p|Žï¹N÷b“¥Ö •Š ÞC¸î"‹òHÄŒ¯zèá~b·‘¥4á1I§=ôJºèÿüÑ] ù¼âÙ ®z(Ñ:GE ͈ª‹œrˆ,…̈†©\9*—”Ä*¡Tg©ã¹nàd„q´Eåg0ÄrÉ":Q‘Q®· ’¦D}•°\UhYô¸ŒÈç"·#‘å ±`)Ó¯%(²²(œ®¸d‘‚ì nZ w v¡ñª• t¶TÆ")”Xê:@;[Ògú±ë`|²›ó=ø’ïHúÂL÷¬dðEVÁ+8€a÷Ûh¬Uz%„Íû"ZsÏÍCýî’¥ôqk]‹äù5ÉL¦Rd¥Dé˘i÷P ¦bM/|dÉ",…¨çãFNoçiûéë>aêiçsó#ðÄ ÕTr¢éHp ÜIú®ÝJìQ"ÀÜÖ-ý[0I¡¦ÀZ Z…d¡nˆN¬B¦=4 g %PDF-1.4 %âãÏÓ 3 0 obj << /Linearized 1 /L 422775 ÿØÿà JFIF ÿÛ C ÿÛ C ÿÀ X" ÿÄ ÿÄ H !1A"Qaq2‘¡#±ÁBRÑ3Cbrá$S‚¢²ð4ñ%6DTc’ÂsÿÄ ÿÄ = !1AQ"aq‘Á2R¡±BÑð#3br’²4á$‚¢ÂñÿÚ ? áHBßÝ`„! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! ! stream
/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
* A lightweight representation of an HTML element.
* @param {String} name The element name.
* @param {Object} attributes And object holding all attributes defined for
* this element.
* @constructor
* @example
*/
CKEDITOR.htmlParser.element = function( name, attributes )
{
/**
* The element name.
* @type String
* @example
*/
this.name = name;
/**
* Holds the attributes defined for this element.
* @type Object
* @example
*/
this.attributes = attributes || {};
/**
* The nodes that are direct children of this element.
* @type Array
* @example
*/
this.children = [];
// Reveal the real semantic of our internal custom tag name (#6639),
// when resolving whether it's block like.
var realName = name || '',
prefixed = realName.match( /^cke:(.*)/ );
prefixed && ( realName = prefixed[ 1 ] );
var isBlockLike = !!( CKEDITOR.dtd.$nonBodyContent[ realName ]
|| CKEDITOR.dtd.$block[ realName ]
|| CKEDITOR.dtd.$listItem[ realName ]
|| CKEDITOR.dtd.$tableContent[ realName ]
|| CKEDITOR.dtd.$nonEditable[ realName ]
|| realName == 'br' );
this.isEmpty = !!CKEDITOR.dtd.$empty[ name ];
this.isUnknown = !CKEDITOR.dtd[ name ];
/** @private */
this._ =
{
isBlockLike : isBlockLike,
hasInlineStarted : this.isEmpty || !isBlockLike
};
};
/**
* Object presentation of CSS style declaration text.
* @param {CKEDITOR.htmlParser.element|String} elementOrStyleText A html parser element or the inline style text.
*/
CKEDITOR.htmlParser.cssStyle = function()
{
var styleText,
arg = arguments[ 0 ],
rules = {};
styleText = arg instanceof CKEDITOR.htmlParser.element ? arg.attributes.style : arg;
// html-encoded quote might be introduced by 'font-family'
// from MS-Word which confused the following regexp. e.g.
//'font-family: "Lucida, Console"'
( styleText || '' )
.replace( /"/g, '"' )
.replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,
function( match, name, value )
{
name == 'font-family' && ( value = value.replace( /["']/g, '' ) );
rules[ name.toLowerCase() ] = value;
});
return {
rules : rules,
/**
* Apply the styles onto the specified element or object.
* @param {CKEDITOR.htmlParser.element|CKEDITOR.dom.element|Object} obj
*/
populate : function( obj )
{
var style = this.toString();
if ( style )
{
obj instanceof CKEDITOR.dom.element ?
obj.setAttribute( 'style', style ) :
obj instanceof CKEDITOR.htmlParser.element ?
obj.attributes.style = style :
obj.style = style;
}
},
toString : function()
{
var output = [];
for ( var i in rules )
rules[ i ] && output.push( i, ':', rules[ i ], ';' );
return output.join( '' );
}
};
};
(function()
{
// Used to sort attribute entries in an array, where the first element of
// each object is the attribute name.
var sortAttribs = function( a, b )
{
a = a[0];
b = b[0];
return a < b ? -1 : a > b ? 1 : 0;
};
CKEDITOR.htmlParser.element.prototype =
{
/**
* The node type. This is a constant value set to {@link CKEDITOR.NODE_ELEMENT}.
* @type Number
* @example
*/
type : CKEDITOR.NODE_ELEMENT,
/**
* Adds a node to the element children list.
* @param {Object} node The node to be added. It can be any of of the
* following types: {@link CKEDITOR.htmlParser.element},
* {@link CKEDITOR.htmlParser.text} and
* {@link CKEDITOR.htmlParser.comment}.
* @function
* @example
*/
add : CKEDITOR.htmlParser.fragment.prototype.add,
/**
* Clone this element.
* @returns {CKEDITOR.htmlParser.element} The element clone.
* @example
*/
clone : function()
{
return new CKEDITOR.htmlParser.element( this.name, this.attributes );
},
/**
* Writes the element HTML to a CKEDITOR.htmlWriter.
* @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
* @example
*/
writeHtml : function( writer, filter )
{
var attributes = this.attributes;
// Ignore cke: prefixes when writing HTML.
var element = this,
writeName = element.name,
a, newAttrName, value;
var isChildrenFiltered;
/**
* Providing an option for bottom-up filtering order ( element
* children to be pre-filtered before the element itself ).
*/
element.filterChildren = function()
{
if ( !isChildrenFiltered )
{
var writer = new CKEDITOR.htmlParser.basicWriter();
CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call( element, writer, filter );
element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml(), 0, element.clone() ).children;
isChildrenFiltered = 1;
}
};
if ( filter )
{
while ( true )
{
if ( !( writeName = filter.onElementName( writeName ) ) )
return;
element.name = writeName;
if ( !( element = filter.onElement( element ) ) )
return;
element.parent = this.parent;
if ( element.name == writeName )
break;
// If the element has been replaced with something of a
// different type, then make the replacement write itself.
if ( element.type != CKEDITOR.NODE_ELEMENT )
{
element.writeHtml( writer, filter );
return;
}
writeName = element.name;
// This indicate that the element has been dropped by
// filter but not the children.
if ( !writeName )
{
// Fix broken parent refs.
for ( var c = 0, length = this.children.length ; c < length ; c++ )
this.children[ c ].parent = element.parent;
this.writeChildrenHtml.call( element, writer, isChildrenFiltered ? null : filter );
return;
}
}
// The element may have been changed, so update the local
// references.
attributes = element.attributes;
}
// Open element tag.
writer.openTag( writeName, attributes );
// Copy all attributes to an array.
var attribsArray = [];
// Iterate over the attributes twice since filters may alter
// other attributes.
for ( var i = 0 ; i < 2; i++ )
{
for ( a in attributes )
{
newAttrName = a;
value = attributes[ a ];
if ( i == 1 )
attribsArray.push( [ a, value ] );
else if ( filter )
{
while ( true )
{
if ( !( newAttrName = filter.onAttributeName( a ) ) )
{
delete attributes[ a ];
break;
}
else if ( newAttrName != a )
{
delete attributes[ a ];
a = newAttrName;
continue;
}
else
break;
}
if ( newAttrName )
{
if ( ( value = filter.onAttribute( element, newAttrName, value ) ) === false )
delete attributes[ newAttrName ];
else
attributes [ newAttrName ] = value;
}
}
}
}
// Sort the attributes by name.
if ( writer.sortAttributes )
attribsArray.sort( sortAttribs );
// Send the attributes.
var len = attribsArray.length;
for ( i = 0 ; i < len ; i++ )
{
var attrib = attribsArray[ i ];
writer.attribute( attrib[0], attrib[1] );
}
// Close the tag.
writer.openTagClose( writeName, element.isEmpty );
if ( !element.isEmpty )
{
this.writeChildrenHtml.call( element, writer, isChildrenFiltered ? null : filter );
// Close the element.
writer.closeTag( writeName );
}
},
writeChildrenHtml : function( writer, filter )
{
// Send children.
CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.apply( this, arguments );
}
};
})();