[r315]: / trunk / Library / POUs / FB_TestSuite / AssertEquals / svnobj  Maximize  Restore  History

Download this file

335 lines (335 with data), 37.1 kB

Gx_lԐ!0…jüoôplà[¦¸'|DÐSystem.StringL{f8a58466-d7f6-439f-bbb8-d4600e41d099}ImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocumentL{f3878285-8e4f-490b-bb1b-9acbb7eb04db}TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}	Id
longTagText
HIF GVL_CfUnit.IgnoreCurrentTest THEN    RETURN;END_IFNAnyComparator(AnyValueOne := Expected, 4			AnyValueTwo := Actual);Ì(* First check whether the input data are any of the standard data types that are supported by TcUnit.Ô   In this case call the standard Assert-methods for that data. But before doing that we need to make sureJ   that both the expected and actual:B   - Have both the same data typeB   - Both have the same data size*)¨IF NOT AnyComparator.DataTypesNotEquals AND NOT AnyComparator.DataSizeNotEquals THEN    (* BOOL *)ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_BOOL THEN®		MEMCPY(destAddr := ADR(boolExpected), srcAddr := Expected.pValue, n := SIZEOF(BOOL));²        MEMCPY(destAddr := ADR(boolActual), srcAddr := Actual.pValue, n := SIZEOF(BOOL));¼        AssertEquals_BOOL(Expected := boolExpected, Actual := boolActual, Message := Message);        RETURN;     END_IF!    (* BYTE *)"ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_BYTE THEN#º        MEMCPY(destAddr := ADR(byteExpected), srcAddr := Expected.pValue, n := SIZEOF(BYTE));$²        MEMCPY(destAddr := ADR(byteActual), srcAddr := Actual.pValue, n := SIZEOF(BYTE));%¼        AssertEquals_BYTE(Expected := byteExpected, Actual := byteActual, Message := Message);&    (* DATE *)'ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DATE THEN(º        MEMCPY(destAddr := ADR(dateExpected), srcAddr := Expected.pValue, n := SIZEOF(DATE));)²        MEMCPY(destAddr := ADR(dateActual), srcAddr := Actual.pValue, n := SIZEOF(DATE));*¼        AssertEquals_DATE(Expected := dateExpected, Actual := dateActual, Message := Message);+.    (* DATE_AND_TIME *),¬    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DATEANDTIME THEN-Ú        MEMCPY(destAddr := ADR(dateAndTimeExpected), srcAddr := Expected.pValue, n := SIZEOF(DATE_AND_TIME));.Ò        MEMCPY(destAddr := ADR(dateAndTimeActual), srcAddr := Actual.pValue, n := SIZEOF(DATE_AND_TIME));/ê        AssertEquals_DATE_AND_TIME(Expected := dateAndTimeExpected, Actual := dateAndTimeActual, Message := Message);0    (* DINT *)1ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DINT THEN2º        MEMCPY(destAddr := ADR(dintExpected), srcAddr := Expected.pValue, n := SIZEOF(DINT));3²        MEMCPY(destAddr := ADR(dintActual), srcAddr := Actual.pValue, n := SIZEOF(DINT));4¼        AssertEquals_DINT(Expected := dintExpected, Actual := dintActual, Message := Message);5    (* DWORD *)6     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DWORD THEN7¾        MEMCPY(destAddr := ADR(dwordExpected), srcAddr := Expected.pValue, n := SIZEOF(DWORD));8¶        MEMCPY(destAddr := ADR(dwordActual), srcAddr := Actual.pValue, n := SIZEOF(DWORD));9        AssertEquals_DWORD(Expected := dwordExpected, Actual := dwordActual, Message := Message);:    (* INT *);œ    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_INT THEN<¶        MEMCPY(destAddr := ADR(intExpected), srcAddr := Expected.pValue, n := SIZEOF(INT));=®        MEMCPY(destAddr := ADR(intActual), srcAddr := Actual.pValue, n := SIZEOF(INT));>¶        AssertEquals_INT(Expected := intExpected, Actual := intActual, Message := Message);?    (* LINT *)@ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LINT THENAº        MEMCPY(destAddr := ADR(lintExpected), srcAddr := Expected.pValue, n := SIZEOF(LINT));B²        MEMCPY(destAddr := ADR(lintActual), srcAddr := Actual.pValue, n := SIZEOF(LINT));C¼        AssertEquals_LINT(Expected := lintExpected, Actual := lintActual, Message := Message);D    (* LREAL *)E     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LREAL THENF¾        MEMCPY(destAddr := ADR(lrealExpected), srcAddr := Expected.pValue, n := SIZEOF(LREAL));G¶        MEMCPY(destAddr := ADR(lrealActual), srcAddr := Actual.pValue, n := SIZEOF(LREAL));HÞ        AssertEquals_LREAL(Expected := lrealExpected, Actual := lrealActual, Delta := 0.0, Message := Message);I    (* LTIME *)J     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LTIME THENK¾        MEMCPY(destAddr := ADR(ltimeExpected), srcAddr := Expected.pValue, n := SIZEOF(LTIME));L¶        MEMCPY(destAddr := ADR(ltimeActual), srcAddr := Actual.pValue, n := SIZEOF(LTIME));M        AssertEquals_LTIME(Expected := ltimeExpected, Actual := ltimeActual, Message := Message);N    (* LWORD *)O     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LWORD THENP¾        MEMCPY(destAddr := ADR(lwordExpected), srcAddr := Expected.pValue, n := SIZEOF(LWORD));Q¶        MEMCPY(destAddr := ADR(lwordActual), srcAddr := Actual.pValue, n := SIZEOF(LWORD));R        AssertEquals_LWORD(Expected := lwordExpected, Actual := lwordActual, Message := Message);S    (* REAL *)Tž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_REAL THENUº        MEMCPY(destAddr := ADR(realExpected), srcAddr := Expected.pValue, n := SIZEOF(REAL));V²        MEMCPY(destAddr := ADR(realActual), srcAddr := Actual.pValue, n := SIZEOF(REAL));WØ        AssertEquals_REAL(Expected := realExpected, Actual := realActual, Delta := 0.0, Message := Message);X    (* SINT *)Yž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_SINT THENZº        MEMCPY(destAddr := ADR(sintExpected), srcAddr := Expected.pValue, n := SIZEOF(SINT));[²        MEMCPY(destAddr := ADR(sintActual), srcAddr := Actual.pValue, n := SIZEOF(SINT));\¼        AssertEquals_SINT(Expected := sintExpected, Actual := sintActual, Message := Message);]     (* STRING *)^¢    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_STRING THEN_â        MEMCPY(destAddr := ADR(stringExpected), srcAddr := Expected.pValue, n := DINT_TO_UDINT(Expected.diSize));`Ö        MEMCPY(destAddr := ADR(stringActual), srcAddr := Actual.pValue, n := DINT_TO_UDINT(Actual.diSize));aÈ        AssertEquals_STRING(Expected := stringExpected, Actual := stringActual, Message := Message);b    (* TIME *)cž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_TIME THENdº        MEMCPY(destAddr := ADR(timeExpected), srcAddr := Expected.pValue, n := SIZEOF(TIME));e²        MEMCPY(destAddr := ADR(timeActual), srcAddr := Actual.pValue, n := SIZEOF(TIME));f¼        AssertEquals_TIME(Expected := timeExpected, Actual := timeActual, Message := Message);g*    (* TIME_OF_DAY *)h¨    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_TIMEOFDAY THENiÒ        MEMCPY(destAddr := ADR(timeOfDayExpected), srcAddr := Expected.pValue, n := SIZEOF(TIME_OF_DAY));jÊ        MEMCPY(destAddr := ADR(timeOfDayActual), srcAddr := Actual.pValue, n := SIZEOF(TIME_OF_DAY));kÞ        AssertEquals_TIME_OF_DAY(Expected := timeOfDayExpected, Actual := timeOfDayActual, Message := Message);l    (* UDINT *)m     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_UDINT THENn¾        MEMCPY(destAddr := ADR(udintExpected), srcAddr := Expected.pValue, n := SIZEOF(UDINT));o¶        MEMCPY(destAddr := ADR(udintActual), srcAddr := Actual.pValue, n := SIZEOF(UDINT));p        AssertEquals_UDINT(Expected := udintExpected, Actual := udintActual, Message := Message);q    (* UINT *)rž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_UINT THENsº        MEMCPY(destAddr := ADR(uintExpected), srcAddr := Expected.pValue, n := SIZEOF(UINT));t²        MEMCPY(destAddr := ADR(uintActual), srcAddr := Actual.pValue, n := SIZEOF(UINT));u¼        AssertEquals_UINT(Expected := uintExpected, Actual := uintActual, Message := Message);v    (* ULINT *)w     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_ULINT THENx¾        MEMCPY(destAddr := ADR(ulintExpected), srcAddr := Expected.pValue, n := SIZEOF(ULINT));y¶        MEMCPY(destAddr := ADR(ulintActual), srcAddr := Actual.pValue, n := SIZEOF(ULINT));z        AssertEquals_ULINT(Expected := ulintExpected, Actual := ulintActual, Message := Message);{    (* USINT *)|     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_USINT THEN}¾        MEMCPY(destAddr := ADR(usintExpected), srcAddr := Expected.pValue, n := SIZEOF(USINT));~¶        MEMCPY(destAddr := ADR(usintActual), srcAddr := Actual.pValue, n := SIZEOF(USINT));        AssertEquals_USINT(Expected := usintExpected, Actual := usintActual, Message := Message);€    (* WORD *)ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_WORD THEN‚º        MEMCPY(destAddr := ADR(wordExpected), srcAddr := Expected.pValue, n := SIZEOF(WORD));ƒ²        MEMCPY(destAddr := ADR(wordActual), srcAddr := Actual.pValue, n := SIZEOF(WORD));„¼        AssertEquals_WORD(Expected := wordExpected, Actual := wordActual, Message := Message);…è(* If we've come to this row, it means that the data input is not any of the standard primitive data types, and thus†H   we need to do special handling *)‡¾TestInstancePath := AddTestNameToInstancePath(TestInstancePath := FINDTestSuiteInstancePath());ˆPIF AnyComparator.DataTypesNotEquals THEN‰â    ExpectedDataString := CONCAT(STR1 := '(Type class = ', STR2 := F_AnyTypeClassToString((Expected.TypeClass)));Š”    ExpectedDataString := CONCAT(STR1 := ExpectedDataString, STR2 := ')');‹Ö    ActualDataString := CONCAT(STR1 := '(Type class = ', STR2 := F_AnyTypeClassToString(Actual.TypeClass));ŒŒ    ActualDataString := CONCAT(STR1 := ActualDataString, STR2 := ')');TELSIF AnyComparator.DataSizeNotEquals THENŽÄ    ExpectedDataString := CONCAT(STR1 := 'Data size = ', STR2 := DINT_TO_STRING(Expected.diSize));¼    ActualDataString := CONCAT(STR1 := 'Data size = ', STR2 := DINT_TO_STRING(Actual.diSize));ZELSIF AnyComparator.DataContentNotEquals THEN‘ü    FOR Count := 0 TO MIN(Expected.diSize-1, 38) BY 1 DO // One byte will equal two characters (example: 255 = 0xff, 1 = 0x01)’€        ExpectedDataString := CONCAT(STR1 := ExpectedDataString,“Ì                                                  STR2 := BYTE_TO_HEXSTR(in := Expected.pValue[Count],”Î                                                                                       iPrecision := 2,•Ô                                                                                       bLoCase := FALSE));–    END_FOR—–    ExpectedDataString := CONCAT(STR1 := '0x', STR2 := ExpectedDataString);˜ø    FOR Count := 0 TO MIN(Actual.diSize-1, 38) BY 1 DO // One byte will equal two characters (example: 255 = 0xff, 1 = 0x01)™x        ActualDataString := CONCAT(STR1 := ActualDataString,šÄ                                                STR2 := BYTE_TO_HEXSTR(in := Actual.pValue[Count],›Ê                                                                                     iPrecision := 2,œÐ                                                                                     bLoCase := FALSE));Ž    ActualDataString := CONCAT(STR1 := '0x', STR2 := ActualDataString);žæIF (AnyComparator.DataTypesNotEquals OR AnyComparator.DataSizeNotEquals OR AnyComparator.DataContentNotEquals) THENŸh    AssertResults.ReportResult(Expected := Expected, `                               Actual := Actual,¡d                               Message := Message,¢ˆ                               TestInstancePath := TestInstancePath,£†                               AlreadyReported => AlreadyReported);¤–IF NOT AlreadyReported AND (AnyComparator.DataTypesNotEquals OR AnyComparator.DataSizeNotEquals OR AnyComparator.DataContentNotEquals) THEN¥x    SetTestFailed(AssertionType := E_AssertionType.Type_ANY,¦^                  AssertionMessage := Message);§–    AssertMessageFormatter.LogAssertFailure(Expected := ExpectedDataString,¨Ž                                            Actual := ActualDataString,©~                                            Message := Message,ª¤                                            TestInstancePath := TestInstancePath);«Interface¬L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}­Ì// | Asserts that two objects (of any type) are equal. If they are not, an assertion error is created.®Ò// | For REAL and LREAL it s recommended to use the AssertEquals_REAL or AssertEquals_LREAL respectively ¯¸// | as these give the possibility to specify a delta between the expected and actual value.°//±// Parameters:²D//     | Expected   Expected value³<//     | Actual   Actual value´„//     | Message   The identifying message for the assertion errorµ(// Positive example:¶4// .. code-block:: codesys·//     VAR¸0//         a : INT := 5;¹0//         b : INT := 5;º//     END_VAR»>//     TEST('Test_ANY_Equals');¼D//     AssertEquals(Expected := a,½@//                  Actual := b,¾`//                  Message := 'Values differ');¿.//     TEST_FINISHED();À&// Failing example:Á2//         b : UINT := 5;ÂP//     TEST('Test_ANY_Differ_DataType');Ã4METHOD PUBLIC AssertEqualsÄVAR_INPUTÅJ    Expected : ANY; // Expected valueÆp    Actual : ANY; // The value to check against expectedÇš    Message : T_MaxString; // The identifying message for the assertion errorÈEND_VARÉVARÊ"    Count : DINT;ËH    ExpectedDataString : STRING(80);ÌD    ActualDataString : STRING(80);ÍF    TestInstancePath : T_MaxString;Î6    AlreadyReported : BOOL;ÏJ    AnyComparator : FB_AnyComparator;Ð0    boolExpected : BOOL;Ñ,    boolActual : BOOL;Ò0    byteExpected : BYTE;Ó,    byteActual : BYTE;Ô0    dateExpected : DATE;Õ,    dateActual : DATE;ÖP    dateAndTimeExpected : DATE_AND_TIME;×L    dateAndTimeActual : DATE_AND_TIME;Ø0    dintExpected : DINT;Ù,    dintActual : DINT;Ú4    dwordExpected : DWORD;Û0    dwordActual : DWORD;Ü,    intExpected : INT;Ý(    intActual : INT;Þ0    lintExpected : LINT;ß,    lintActual : LINT;à4    lrealExpected : LREAL;á0    lrealActual : LREAL;â4    ltimeExpected : LTIME;ã0    ltimeActual : LTIME;ä4    lwordExpected : LWORD;å0    lwordActual : LWORD;æ0    realExpected : REAL;ç,    realActual : REAL;è0    sintExpected : SINT;é,    sintActual : SINT;êB    stringExpected : T_MaxString;ë>    stringActual : T_MaxString;ì0    timeExpected : TIME;í,    timeActual : TIME;îH    timeOfDayExpected : TIME_OF_DAY;ïD    timeOfDayActual : TIME_OF_DAY;ð4    udintExpected : UDINT;ñ0    udintActual : UDINT;ò0    uintExpected : UINT;ó,    uintActual : UINT;ô4    ulintExpected : ULINT;õ0    ulintActual : ULINT;ö4    usintExpected : USINT;÷0    usintActual : USINT;ø0    wordExpected : WORD;ù,    wordActual : WORD;ÐÐÐEëÐÐ	
­ÚÐ-
ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­(ÚÐ-ÐÐ	
­	ÚÐ-ÐÐ	
­
ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­
ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­)ÚÐ-ÐÐ	
­*ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ- ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-!ÐÐ	
­ÚÐ-"ÐÐ	
­ÚÐ-#ÐÐ	
­ÚÐ-$ÐÐ	
­ÚÐ-%ÐÐ	
­ÚÐ-ÐÐ	
­ ÚÐ- ÐÐ	
­!ÚÐ-ÐÐ	
­"ÚÐ-&ÐÐ	
­#ÚÐ-'ÐÐ	
­$ÚÐ-(ÐÐ	
­%ÚÐ-)ÐÐ	
­&ÚÐ-*ÐÐ	
­'ÚÐ-ÐÐ	
­(ÚÐ- ÐÐ	
­)ÚÐ-ÐÐ	
­*ÚÐ-+ÐÐ	
­+ÚÐ-,ÐÐ	
­,ÚÐ--ÐÐ	
­-ÚÐ-.ÐÐ	
­.ÚÐ-/ÐÐ	
­/ÚÐ-ÐÐ	
­0ÚÐ- ÐÐ	
­1ÚÐ-ÐÐ	
­2ÚÐ-0ÐÐ	
­3ÚÐ-1ÐÐ	
­4ÚÐ-2ÐÐ	
­5ÚÐ-3ÐÐ	
­6ÚÐ-4ÐÐ	
­7ÚÐ-ÐÐ	
­8ÚÐ- ÐÐ	
­9ÚÐ-ÐÐ	
­:ÚÐ-5ÐÐ	
­;ÚÐ-6ÐÐ	
­<ÚÐ-7ÐÐ	
­=ÚÐ-8ÐÐ	
­>ÚÐ-9ÐÐ	
­?ÚÐ-ÐÐ	
­@ÚÐ- ÐÐ	
­AÚÐ-ÐÐ	
­BÚÐ-:ÐÐ	
­CÚÐ-;ÐÐ	
­DÚÐ-<ÐÐ	
­EÚÐ-=ÐÐ	
­FÚÐ->ÐÐ	
­GÚÐ-ÐÐ	
­HÚÐ- ÐÐ	
­IÚÐ-ÐÐ	
­JÚÐ-?ÐÐ	
­KÚÐ-@ÐÐ	
­LÚÐ-AÐÐ	
­MÚÐ-BÐÐ	
­NÚÐ-CÐÐ	
­OÚÐ-ÐÐ	
­PÚÐ- ÐÐ	
­QÚÐ-ÐÐ	
­RÚÐ-DÐÐ	
­SÚÐ-EÐÐ	
­TÚÐ-FÐÐ	
­UÚÐ-GÐÐ	
­VÚÐ-HÐÐ	
­WÚÐ-ÐÐ	
­XÚÐ- ÐÐ	
­YÚÐ-ÐÐ	
­ZÚÐ-IÐÐ	
­[ÚÐ-JÐÐ	
­\ÚÐ-KÐÐ	
­]ÚÐ-LÐÐ	
­^ÚÐ-MÐÐ	
­_ÚÐ-ÐÐ	
­`ÚÐ- ÐÐ	
­aÚÐ-ÐÐ	
­bÚÐ-NÐÐ	
­cÚÐ-OÐÐ	
­dÚÐ-PÐÐ	
­eÚÐ-QÐÐ	
­fÚÐ-RÐÐ	
­gÚÐ-ÐÐ	
­hÚÐ- ÐÐ	
­iÚÐ-ÐÐ	
­jÚÐ-SÐÐ	
­kÚÐ-TÐÐ	
­lÚÐ-UÐÐ	
­mÚÐ-VÐÐ	
­nÚÐ-WÐÐ	
­oÚÐ-ÐÐ	
­pÚÐ- ÐÐ	
­qÚÐ-ÐÐ	
­rÚÐ-XÐÐ	
­sÚÐ-YÐÐ	
­tÚÐ-ZÐÐ	
­uÚÐ-[ÐÐ	
­vÚÐ-\ÐÐ	
­wÚÐ-ÐÐ	
­xÚÐ- ÐÐ	
­yÚÐ-ÐÐ	
­zÚÐ-]ÐÐ	
­{ÚÐ-^ÐÐ	
­|ÚÐ-_ÐÐ	
­}ÚÐ-`ÐÐ	
­~ÚÐ-aÐÐ	
­ÚÐ-ÐÐ	
­€ÚÐ- ÐÐ	
­ÚÐ-ÐÐ	
­‚ÚÐ-bÐÐ	
­ƒÚÐ-cÐÐ	
­„ÚÐ-dÐÐ	
­…ÚÐ-eÐÐ	
­†ÚÐ-fÐÐ	
­‡ÚÐ-ÐÐ	
­ˆÚÐ- ÐÐ	
­‰ÚÐ-ÐÐ	
­ŠÚÐ-gÐÐ	
­‹ÚÐ-hÐÐ	
­ŒÚÐ-iÐÐ	
­ÚÐ-jÐÐ	
­ŽÚÐ-kÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ- ÐÐ	
­‘ÚÐ-ÐÐ	
­’ÚÐ-lÐÐ	
­“ÚÐ-mÐÐ	
­”ÚÐ-nÐÐ	
­•ÚÐ-oÐÐ	
­–ÚÐ-pÐÐ	
­—ÚÐ-ÐÐ	
­˜ÚÐ- ÐÐ	
­™ÚÐ-ÐÐ	
­šÚÐ-qÐÐ	
­›ÚÐ-rÐÐ	
­œÚÐ-sÐÐ	
­ÚÐ-tÐÐ	
­žÚÐ-uÐÐ	
­ŸÚÐ-ÐÐ	
­ ÚÐ- ÐÐ	
­¡ÚÐ-ÐÐ	
­¢ÚÐ-vÐÐ	
­£ÚÐ-wÐÐ	
­¤ÚÐ-xÐÐ	
­¥ÚÐ-yÐÐ	
­¦ÚÐ-zÐÐ	
­§ÚÐ-ÐÐ	
­¨ÚÐ- ÐÐ	
­©ÚÐ-ÐÐ	
­ªÚÐ-{ÐÐ	
­«ÚÐ-|ÐÐ	
­¬ÚÐ-}ÐÐ	
­­ÚÐ-~ÐÐ	
­®ÚÐ-ÐÐ	
­¯ÚÐ-ÐÐ	
­°ÚÐ- ÐÐ	
­±ÚÐ-ÐÐ	
­²ÚÐ-€ÐÐ	
­³ÚÐ-ÐÐ	
­´ÚÐ-‚ÐÐ	
­µÚÐ-ƒÐÐ	
­¶ÚÐ-„ÐÐ	
­·ÚÐ-ÐÐ	
­¸ÚÐ- ÐÐ	
­¹ÚÐ-ÐÐ	
­ºÚÐ-ÐÐ	
­»ÚÐ-ÐÐ	
­¼ÚÐ-…ÐÐ	
­½ÚÐ-†ÐÐ	
­¾ÚÐ-‡ÐÐ	
­¿ÚÐ-ÐÐ	
­ÀÚÐ-ˆÐÐ	
­ÁÚÐ-‰ÐÐ	
­ÂÚÐ-ŠÐÐ	
­ÃÚÐ-‹ÐÐ	
­ÄÚÐ-ŒÐÐ	
­ÅÚÐ-ÐÐ	
­ÆÚÐ-ŽÐÐ	
­ÇÚÐ-ŠÐÐ	
­ÈÚÐ-ÐÐ	
­ÉÚÐ-ŒÐÐ	
­ÊÚÐ-ÐÐ	
­ËÚÐ-‘ÐÐ	
­ÌÚÐ-’ÐÐ	
­ÍÚÐ-“ÐÐ	
­ÎÚÐ-”ÐÐ	
­ÏÚÐ-•ÐÐ	
­ÐÚÐ-–ÐÐ	
­ÑÚÐ-—ÐÐ	
­ÒÚÐ-ÐÐ	
­ÓÚÐ-˜ÐÐ	
­ÔÚÐ-™ÐÐ	
­ÕÚÐ-šÐÐ	
­ÖÚÐ-›ÐÐ	
­×ÚÐ-œÐÐ	
­ØÚÐ-–ÐÐ	
­ÙÚÐ-ÐÐ	
­ÚÚÐ-ÐÐ	
­ÛÚÐ-ÐÐ	
­ÜÚÐ-žÐÐ	
­ÝÚÐ-ŸÐÐ	
­ÞÚÐ- ÐÐ	
­ßÚÐ-¡ÐÐ	
­àÚÐ-¢ÐÐ	
­áÚÐ-£ÐÐ	
­âÚÐ-ÐÐ	
­ãÚÐ-ÐÐ	
­äÚÐ-¤ÐÐ	
­cÚÐ-¥ÐÐ	
­åÚÐ-¦ÐÐ	
­æÚÐ-ÐÐ	
­çÚÐ-§ÐÐ	
­èÚÐ-¨ÐÐ	
­éÚÐ-©ÐÐ	
­êÚÐ-ªÐÐ	
­ÚÐ-Ы¬ÐE`ÐÐ	
­=ÚÐ-­ÐÐ	
­>ÚÐ-®ÐÐ	
­?ÚÐ-¯ÐÐ	
­@ÚÐ-°ÐÐ	
­AÚÐ-±ÐÐ	
­BÚÐ-²ÐÐ	
­CÚÐ-³ÐÐ	
­DÚÐ-´ÐÐ	
­EÚÐ-°ÐÐ	
­FÚÐ-µÐÐ	
­GÚÐ-°ÐÐ	
­HÚÐ-¶ÐÐ	
­IÚÐ-°ÐÐ	
­JÚÐ-·ÐÐ	
­KÚÐ-¸ÐÐ	
­LÚÐ-¹ÐÐ	
­MÚÐ-ºÐÐ	
­NÚÐ-°ÐÐ	
­OÚÐ-»ÐÐ	
­PÚÐ-¼ÐÐ	
­QÚÐ-½ÐÐ	
­RÚÐ-¾ÐÐ	
­SÚÐ-¿ÐÐ	
­TÚÐ-°ÐÐ	
­UÚÐ-ÀÐÐ	
­VÚÐ-°ÐÐ	
­WÚÐ-¶ÐÐ	
­XÚÐ-°ÐÐ	
­YÚÐ-·ÐÐ	
­ZÚÐ-¸ÐÐ	
­[ÚÐ-ÁÐÐ	
­\ÚÐ-ºÐÐ	
­]ÚÐ-°ÐÐ	
­^ÚÐ-ÂÐÐ	
­_ÚÐ-¼ÐÐ	
­`ÚÐ-½ÐÐ	
­aÚÐ-¾ÐÐ	
­<ÚÐ-¿ÐÐ	
­bÚÐ-ÐÐ	
­ðÚÐ-ÃÐÐ	
­ñÚÐ-ÄÐÐ	
­òÚÐ-ÅÐÐ	
­óÚÐ-ÆÐÐ	
­ôÚÐ-ÇÐÐ	
­õÚÐ-ÈÐÐ	
­öÚÐ-ÉÐÐ	
­÷ÚÐ-ÊÐÐ	
­øÚÐ-ËÐÐ	
­ùÚÐ-ÌÐÐ	
­úÚÐ-ÍÐÐ	
­ûÚÐ-ÎÐÐ	
­üÚÐ-ÏÐÐ	
­ýÚÐ-ÐÐ	
­þÚÐ-ÐÐÐ	
­ÿÚÐ-ÑÐÐ	
­ÚÐ-ÒÐÐ	
­ÚÐ-ÓÐÐ	
­ÚÐ-ÔÐÐ	
­ÚÐ-ÕÐÐ	
­ÚÐ-ÖÐÐ	
­ÚÐ-×ÐÐ	
­ÚÐ-ØÐÐ	
­ÚÐ-ÙÐÐ	
­ÚÐ-ÚÐÐ	
­	ÚÐ-ÛÐÐ	
­
ÚÐ-ÜÐÐ	
­ÚÐ-ÝÐÐ	
­ÚÐ-ÞÐÐ	
­
ÚÐ-ßÐÐ	
­ÚÐ-àÐÐ	
­ÚÐ-áÐÐ	
­ÚÐ-âÐÐ	
­ÚÐ-ãÐÐ	
­ÚÐ-äÐÐ	
­ÚÐ-åÐÐ	
­ÚÐ-æÐÐ	
­ÚÐ-çÐÐ	
­ÚÐ-èÐÐ	
­ÚÐ-éÐÐ	
­ÚÐ-êÐÐ	
­ÚÐ-ëÐÐ	
­ÚÐ-ìÐÐ	
­ÚÐ-íÐÐ	
­ÚÐ-îÐÐ	
­ÚÐ-ïÐÐ	
­ÚÐ-ðÐÐ	
­ÚÐ-ñÐÐ	
­ ÚÐ-òÐÐ	
­!ÚÐ-óÐÐ	
­"ÚÐ-ôÐÐ	
­#ÚÐ-õÐÐ	
­$ÚÐ-öÐÐ	
­%ÚÐ-÷ÐÐ	
­&ÚÐ-øÐÐ	
­'ÚÐ-ùÐÐ	
­ÚÐ-È