ĐĎॹá>ţ˙ ‘“ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěĽÁU@ đżCYbjbjŹ›Ź› "†ÎńÎńCQ˙˙˙˙˙˙ˆ2222222FŽAŽAŽAŽAŞA”Fć`śJBJBJBJBJBJBJBJBe`g`g`g`g`g`g`$œaRîcd‹`2ËBJBJBËBËB‹`22JBJB `Ů_Ů_Ů_ËBB2JB2JBe`Ů_ËBe`Ů_Ů_ń_22ń_JB>B Ճ$ŁwĂŽA Yţń_e`ś`0ć`ń_Rd _XRdń_FF2222Rd2ń_tJB^BŮ_lB xBSJBJBJB‹`‹`FFÄ= ?„c_vFF ? Sub ReD() ' Dim dupCol As Range, currentCell As Range, nextCell As Range Dim dupColAddress As String, dupColstart As String Dim response As Integer Dim colCount As Integer Dim msg As String, boxButtons As Integer ' Application.Windows("PERSONAL.XLS").Visible = False Hides ‘Personal.xls’ If Not CheckProc("Remove Duplicates") Then Exit Sub Do msg = "Select ONE cell in column of duplicates" Show message with statement above Set dupCol = Application.InputBox(prompt:=msg, _ Title:="Selection of Duplicates Column", Type:=8) Let the dupCol= The Column of the cell selected. colCount = dupCol.Columns.Count If colCount <> 1 Then MsgBox "Too many columns selected. Select only ONE" End If Loop Until colCount = 1 Count number of columns in dupCol, If it isn’t 1 show message box with statement above, continue until only 1 column is selected. dupColAddress = Mid(dupCol.Address, 2, 2) If Mid(dupColAddress, 2, 1) = "$" Then dupColAddress = Left(dupColAddress, 1) End If ' boxButtons = vbYesNo + vbDefaultButton1 + vbQuestion msg = "Duplicate entries in Column " & dupColAddress response = MsgBox(prompt:=msg, Title:="Duplicates Column", _ Buttons:=boxButtons) If response = vbNo Then Exit Sub ' Show message box with the above statement, If response is No, exit the macro. ' MsgBox "Sort Key = " & dupCol.Address dupColstart = dupColAddress & "1" ActiveSheet.UsedRange.Sort _ key1:=ActiveSheet.Range(dupColstart), header:=xlYes Set currentCell = ActiveSheet.Range(dupColstart) Application.ScreenUpdating = False ' Do While Not IsEmpty(currentCell) Set nextCell = currentCell.Offset(1, 0) If nextCell.Value = currentCell.Value Then currentCell.EntireRow.Delete End If Set currentCell = nextCell Loop Only do the following function when the current cell isn’t empty. Let the next cell be one row down from the current cell. If the next cell equals the current cell, delete the entire row. Continue doing this. Application.ScreenUpdating = True ActiveSheet.UsedRange.Sort _ key1:=ActiveSheet.Range(dupColstart), header:=xlYes Application.ScreenUpdating = True MsgBox "Duplicate removals finished" ' End Sub Sort the range used before using dupColstart as the first Key. Show message box with statement above. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' General declarations Option Explicit Option Base 1 ' Dim masterBook As Workbook ' starting workbook object Dim slaveBook As Workbook 'slave workbook Dim masterFile As String ' Store master file Dim slaveFile As String Dim moduleName As String Dim moduleFile As String Dim myRange As Range, database As Range Dim myCol As Object Dim myRow As Object Dim tempObject As Object Dim foundCell As Range Dim foundCellAddress As String Dim msg As String Dim response As Integer ' response from msgBox or InputBox Dim boxButtons As Integer 'number for box buttons Dim newRow As Integer, oldRow As Integer Dim firstRow As Integer, lastRow As Integer, rowCount As Integer Dim firstCol As Integer, lastCol As Integer, colCount As Integer Dim iCol As Integer, iRow As Integer Dim xTemp As Variant Dim itemp As Integer ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub LMR() Dim lastChart As Object Dim printRange As Range Dim listFile As String, listName As String Dim histRange As Range Dim r1 As Range, r2 As Range, r3 As Range, r4 As Range Dim iCol As Integer, printRow As Integer, printCol As Integer Dim histRow As Integer Dim foundCellx As Single, foundCelly As Single Dim endCellx As Single, endCelly As Single Dim chartWidth As Single, chartHeight As Single, chartIndex As Integer Dim sortMode As String, colourMark As String Dim colOk As Boolean, colourMode As Boolean ' msg = "Run procedure to list module results?" boxButtons = vbYesNo + vbDefaultButton1 + vbQuestion response = MsgBox(prompt:=msg, Title:="Run Procedure", _ Buttons:=boxButtons) If response = vbNo Then Exit Sub Show message box with above statement, including Yes and No buttons. SetDirectory Set masterBook = ActiveWorkbook masterFile = UCase(masterBook.Name) moduleName = Left(masterFile, 8) Set myRange = masterBook.ActiveSheet.Range("A1").CurrentRegion rowCount = myRange.Rows.Count lastCol = myRange.Columns.Count Let rowCount= number of rows in myRange and colCount=number of columns in myRange listFile = "LIST" & Mid(masterFile, 5) listName = Left(listFile, 8) colourMark = Mid(masterFile, 5, 1) If FileExists(listFile) Then Set slaveBook = Workbooks.Open(filename:=listFile) slaveBook.ActiveSheet.UsedRange.ClearContents If ActiveSheet.ChartObjects.Count > 0 Then _ ActiveSheet.ChartObjects.Delete slaveFile = UCase(slaveBook.Name) Clears data/formulas of ‘used range’. If there are any chart objects; delete them. Converts slaveFile to uppercase. Else Set slaveBook = Workbooks.Add With slaveBook .ActiveSheet.Cells.Font.Size = 8 .Title = listName .Subject = listName & " listing of " & masterFile & _ " results file" .Author = "D.N.Tovee" .Keywords = listName & " results" .SaveAs filename:=listName, FileFormat:=xlNormal, _ CreateBackup:=True ' MsgBox "SaveAs " & listName slaveFile = UCase(.Name) End With Specifies slaveBook with the above statements e.g. Font size=8 Shows Message box to prompt saving the file. End If Windows(masterFile).Activate Activates Masterfile window. Application.ScreenUpdating = False With masterBook.ActiveSheet .Range(Cells(1, 12), Cells(rowCount, 12)).Copy slaveBook.ActiveSheet.Range("A1").PasteSpecial Copy cells stated and pastes them in A1 in the slaveFile .Range(Cells(1, 15), Cells(rowCount, 16)).Copy slaveBook.ActiveSheet.Range("B1").PasteSpecial .Range(Cells(1, 21), Cells(rowCount, 21)).Copy slaveBook.ActiveSheet.Range("D1").PasteSpecial .Range(Cells(1, 11), Cells(rowCount, 11)).Copy slaveBook.ActiveSheet.Range("E1").PasteSpecial .Range(Cells(1, 10), Cells(rowCount, 10)).Copy slaveBook.ActiveSheet.Range("F1").PasteSpecial .Range(Cells(1, 4), Cells(rowCount, 4)).Copy slaveBook.ActiveSheet.Range("G1").PasteSpecial .Range("AC1").Select End With Does the same for columns B1-G1 Application.ScreenUpdating = True Do Set foundCell = Application.InputBox( _ prompt:="Select cell in last column to be printed" _ & Chr(10) & "( > AB )", _ Title:="Final Print Column Selection", Type:=8) printCol = foundCell.Column colOk = True If printCol < 29 Or printCol > lastCol Then MsgBox "Invalid column selected. Try again" colOk = False End If Loop Until colOk Asks user to select cell in last column to be printed. The printCol must be less than 29 and more than lastCol otherwise it retries the If function. masterBook.ActiveSheet.Range(Cells(1, 29), _ Cells(rowCount, printCol)).Copy slaveBook.ActiveSheet.Range("H1").PasteSpecial Paste:=xlValues Copies from first cell in last column and pastes them in slaveBook Windows(slaveFile).Activate Windows.Arrange ArrangeStyle:=xlCascade Application.ScreenUpdating = False Range("A1").Select Set database = ActiveSheet.Range("A1").CurrentRegion rowCount = database.Rows.Count colCount = database.Columns.Count Set r1 = ActiveSheet.Range("A1").Range(Cells(1, 1), _ Cells(rowCount - 1, colCount)) Set r2 = ActiveSheet.Range(Cells(2, 10), _ Cells(rowCount, colCount)) Selects range of A1. Let database= the region previously selected, let rowCount = number of rows in database and colCount = number of columns in database. r2.NumberFormat = "0.0" With database .Rows(rowCount).EntireRow.NumberFormat = "0.0" .Font.Size = 8 .Columns.AutoFit .Columns("A").ColumnWidth = 4.86 'Poscode .Columns("B").ColumnWidth = 3.57 'Qualcode .Columns("C").ColumnWidth = 1.57 'Yrcode .Columns("D").ColumnWidth = 3.57 'studmode ' For iCol = 10 To colCount ' .Columns(iCol).NumberFormat = "0.0" ' Next iCol End With Specifies formatting of database; Format numbers to 1 decimal place, make the font size 8. Adjust the column widths and add titles to the column. Do msg = "C = Sort by Candno" & Chr(10) & _ "P = Sort by Poscode, Surname, Inits" & Chr(10) & _ "S = Sort by Surname, Inits" & Chr(10) & _ "M = Sort by Mark order" sortMode = InputBox(prompt:=msg, Title:="Sort Mode") Loop Until sortMode <> "" sortMode = UCase(sortMode) If sortMode <> "C" Then If sortMode = "P" Then r1.Sort key1:=r1.Range("A1"), order1:=xlAscending, _ key2:=r1.Range("F1"), order2:=xlAscending, _ Key3:=r1.Range("E1"), Order3:=xlAscending, _ header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom If sort mode is P i.e. P is pressed, sort the data with the first key being A1 ascending, second key F1 ascending and third key E1 ascending. ElseIf sortMode = "S" Then r1.Sort key1:=r1.Range("F1"), order1:=xlAscending, _ key2:=r1.Range("E1"), order2:=xlAscending, _ header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom ElseIf sortMode = "M" Then r1.Sort key1:=r1.Range("I1"), order1:=xlDescending, _ key2:=r1.Range("F1"), order2:=xlAscending, _ Key3:=r1.Range("E1"), Order3:=xlAscending, _ header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom Else MsgBox "Invalid sort selection, NO sorting done" End If If P,C,M or S isn’t selected show above message box. End If Columns("I:I").Select Selection.FormatConditions.Delete Deletes the formatting on columns ‘I:I’ If colourMark = "1" Or colourMark = "2" Then Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="25", Formula2:="34" With Selection.FormatConditions(1).Font .Bold = True .Italic = True .ColorIndex = 5 End With Changes formatting conditions to those stated above e.g. bold, italic and color index 5. Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="25" With Selection.FormatConditions(2).Font .Bold = True .Italic = False .ColorIndex = 3 End With Else Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="35" With Selection.FormatConditions(1).Font .Bold = True .Italic = False .ColorIndex = 3 End With End If Columns("H:H").Select Does a similar process of changing the formatting for columns ‘H:H’ Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, _ Formula1:="=LEFT(H1,1)=""F""" With Selection.FormatConditions(1).Font .Bold = True .Italic = False .ColorIndex = 3 End With Selection.FormatConditions.Add Type:=xlExpression, _ Formula1:="=LEFT(H1,1)=""H""" With Selection.FormatConditions(2).Font .Bold = True .Italic = True .ColorIndex = 5 End With Adds a formula to show the contents of the cell on the left, also changes formatting conditions. Set foundCell = Range(Cells(rowCount + 2, 1), _ Cells(rowCount + 2, 1)) With foundCell .Select histRow = .Row .Value = 4 itemp = .Value .Offset(10, 0).Value = 100 foundCelly = .Top foundCellx = .Offset(0, 2).Left endCelly = .Offset(12, 0).Top endCellx = .Offset(0, 10).Left For iRow = 1 To 9 .Offset(iRow, 0) = itemp + 10 * iRow Next iRow End With Set r1 = foundCell.Offset(0, 1).Range(Cells(1, 1), Cells(11, 1)) r1.FormulaArray = _ "=FREQUENCY(R2C9:R" & rowCount - 1 & _ "C9,R" & histRow & "C[-1]:R" & histRow + 10 & "C[-1])" Set r2 = foundCell.Range(Cells(1, 1), Cells(11, 2)) chartHeight = endCelly - foundCelly chartWidth = endCellx – foundCellx Specifies chartHeight and chartWidth in terms of previously defined quantities. ActiveSheet.ChartObjects.Add(foundCellx, _ foundCelly, chartWidth, chartHeight).Select ' Application.CutCopyMode = False ActiveChart.ChartWizard Source:=r2, Gallery:=xlColumn, _ Format:=6, PlotBy:=xlColumns, CategoryLabels:=1, _ HasLegend:=2, CategoryTitle:="Final mark" Create a Column chart titled Final mark using date from ‘r2’ Set foundCell = foundCell.Offset(12, 0) With foundCell .Select histRow = .Row .Value = 24 foundCelly = .Top foundCellx = .Offset(0, 2).Left endCelly = .Offset(10, 0).Top endCellx = .Offset(0, 10).Left For iRow = 1 To 6 Select Case iRow Case 1 .Offset(iRow, 0) = 34 Case 2 To 5 .Offset(iRow, 0) = 19 + 10 * iRow Case 6 .Offset(iRow, 0) = 100 End Select Next iRow End With Set r1 = foundCell.Offset(0, 1).Range(Cells(1, 1), Cells(7, 1)) r1.FormulaArray = _ "=FREQUENCY(R2C9:R" & rowCount - 1 & _ "C9,R" & histRow & "C[-1]:R" & histRow + 6 & "C[-1])" ' Set r2 = foundCell.Range(Cells(1, 1), Cells(7, 2)) chartHeight = endCelly - foundCelly chartWidth = endCellx - foundCellx ActiveSheet.ChartObjects.Add(foundCellx, _ foundCelly, chartWidth, chartHeight).Select ' Application.CutCopyMode = False ActiveChart.ChartWizard Source:=r2, Gallery:=xlColumn, _ Format:=6, PlotBy:=xlColumns, CategoryLabels:=1, _ HasLegend:=2, CategoryTitle:="Degree class" Create a Column chart with source data from r2 titled degree class. ActiveCell.Select Application.ScreenUpdating = True CalcAutomatic foundCell.Offset(-12, 0).Select ' Application.ScreenUpdating = False ActiveSheet.Range("A1").Select printRow = rowCount + 23 ' boxButtons = vbYesNo + vbDefaultButton1 + vbQuestion response = MsgBox(prompt:="Make Exam/Coursework scatter plot?", _ Buttons:=boxButtons) Show message box If response = vbYes Then ' iCol = Application.InputBox(prompt:="Enter maximum coursework" _ & Chr(10) & "10, 15 or 20", Title:="Coursework maximum", _ Type:=1) ' Set foundCell = foundCell.Offset(11, 0) With foundCell .Select .Value = 0 .Offset(1, 0).Value = iCol / 2 .Offset(2, 0).Value = iCol .Offset(0, 1).Value = 0 .Offset(1, 1).Value = 50 .Offset(2, 1).Value = 100 foundCelly = .Top endCelly = .Offset(21, 0).Top foundCellx = .Offset(0, 2).Left endCellx = .Offset(0, 10).Left End With chartHeight = endCelly - foundCelly chartWidth = endCellx - foundCellx Set r3 = ActiveSheet.Range("A1").Range(Cells(1, 10), _ Cells(rowCount - 1, 11)) ' Set lastChart = ActiveSheet.ChartObjects.Add(foundCellx, foundCelly, _ chartWidth, chartHeight) lastChart.Select chartIndex = lastChart.Index ' MsgBox " chartIndex = " & chartIndex Application.CutCopyMode = False ActiveChart.ChartWizard Source:=r3, Gallery:=xlXYScatter, Format:=3, _ PlotBy:=xlColumns, CategoryLabels:=1, SeriesLabels:=1, _ HasLegend:=2, Title:="Exam/Coursework correlation", _ CategoryTitle:="Coursework", ValueTitle:="Exam%" If response to message box is yes, create a scatter chart titled Exam/Coursework correlation. If no is selected, don’t. Set r4 = foundCell.Range(Cells(1, 1), Cells(3, 2)) r4.Copy ' ActiveSheet.DrawingObjects("Chart chartIndex").Select ActiveSheet.ChartObjects(chartIndex).Select ActiveChart.SeriesCollection.Paste Rowcol:=xlColumns, _ SeriesLabels:=False, CategoryLabels:=True, Replace:=False, _ NewSeries:=True Paste the values of r4 into chartIndex (scatter plot) as a new series. Application.CutCopyMode = False ActiveSheet.ChartObjects(chartIndex).Activate ActiveChart.SeriesCollection(2).Select With Selection .MarkerSize = 2 .MarkerStyle = xlCircle End With ActiveChart.SeriesCollection(2).Trendlines.Add(Type:=xlLinear, _ Forward:=0, Backward:=0, DisplayEquation:=False, _ DisplayRSquared:=False).Select ActiveChart.Axes(xlCategory).Select Add a linear trendline which doesn’t display the equation or the r2 value. With ActiveChart.Axes(xlCategory) .MinimumScaleIsAuto = True .MaximumScale = iCol .MinorUnitIsAuto = True .MajorUnit = iCol / 5 .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear End With Defines the Category axes of the chart selected (scatter plot) ActiveChart.Axes(xlValue).Select With ActiveChart.Axes(xlValue) .MinimumScaleIsAuto = True .MaximumScale = 100 .MinorUnitIsAuto = True .MajorUnitIsAuto = True .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear End With Defines the Value axes of the selected scatter plot Application.CutCopyMode = False ActiveWindow.Visible = False Windows(slaveFile).Activate ActiveCell.Offset(-26, 0).Range("A1").Select ' printRow = rowCount + 45 End If ' Application.ScreenUpdating = True boxButtons = vbYesNo + vbDefaultButton1 response = MsgBox(prompt:="Display preview of printout?", _ Buttons:=boxButtons) Show message box If response = vbYes Then With ActiveSheet.PageSetup ' .PrintTitleRows = "1:1" .PrintTitleColumns = "" ' .PrintArea = "$1:$16384" ' MsgBox "printRow " & printRow .PrintArea = "$1:$" & printRow ' .PrintArea = ActiveSheet.UsedRange .LeftHeader = "&10&D" & Chr(10) & "No. of Candidates = " & _ rowCount - 2 .CenterHeader = "&10Physics and Astronomy" & Chr(10) & _ "BSc. and MSci. degrees " & exyear .RightHeader = "&10CONFIDENTIAL" & Chr(10) & "Module " _ & moduleName ' .LeftFooter = "" .CenterFooter = "&10Page &P of &N" .RightFooter = "&10Module" & moduleName .LeftMargin = Application.InchesToPoints(0.75) ' .RightMargin = Application.InchesToPoints(0.75) ' .TopMargin = Application.InchesToPoints(1) ' .BottomMargin = Application.InchesToPoints(1) ' .HeaderMargin = Application.InchesToPoints(0.5) ' .FooterMargin = Application.InchesToPoints(0.5) ' .PrintHeadings = False .PrintGridlines = True ' .PrintNotes = False ' .PrintQuality = 360 ' .CenterHorizontally = False ' .CenterVertically = False .Orientation = xlPortrait If printCol > 35 Then .Orientation = xlLandscape ' .Draft = False .PaperSize = xlPaperA4 ' .FirstPageNumber = xlAutomatic ' .Order = xlDownThenOver ' .BlackAndWhite = False ' .Zoom = 100 .PrintTitleRows = "$1:$1" End With ActiveSheet.PrintPreview If response to message box is yes, show page setup of the usedRange and properties as specified above. End If Application.ScreenUpdating = True End Sub & ; ˛ ž Ó Ô W ‡ ˆ 9 Z z  ş ť ź Z [ ¨ ŁtPľśćstşÄë0;Œ- ĄŞéB^_ H I —"ˇ"Ś$:%;%ë%.&%(Ŕ(ž*üôüďęôüďôüôďęďôćüŢÖüÎüĆžüş˛şüşŞşĽ˛şĽ˛şĽ˛şĽ˛şĽ˛ş˛ş ˜ş˜şşhlĽhlĽ>*h4\]h4\]>* h4\]>* hö|ş>*hJ3hJ3>*hö|şhö|ş>*h7îh[D˙hČFĺ>*h[D˙h[D˙>*hP>hP>>*hni•hni•>*hni•hČFĺ>*hÇiĄ h[D˙>* hÇiĄ>*hÇiĄhÇiĄ>*hČFĺ8 P‡Łżěî& ; s z ˛ Ô W ˆ ° Î   9 ť ź ę úúúőőőőőőőőőőőőőőőőőőőőőőđőőgdÇiĄgdČFĺgd7îCYţę  D O ‰   4 Y Š Ô ú WŒłśÜ ?hwšŁtšť÷FúúúúúúúúúúúúúúúúúúúúúúúúúúúúúgdČFĺFHPśĺć˙!#^ŽÂŢűD\t‘ŹĎĺ)aŽÓAúúúőőőőőőőőőőőőőőőőőőőőőőőőőgd7îgdČFĺAZstşťź˝Çă˙.I„ĆáCŽżďń#\™Ćë0Aeúúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îe˛ő;¸Ů!\’Ç-ĄŞĐç2t”śä$Gt™úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7é!B_†˘Ů I € ˇ î %!\!“!Ę!"6"m"Š"—"ˇ"Ý"ä"#Y#ƒ#úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îƒ#Ă#ç#ü#0$h$‚$‘$Ś$;%l%¨%ë%.&N&z&Ą&¸&ń&':'t'ˇ'ć'%(Ŕ(Ü(î(%)<)úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7î<)U)Š)Ŕ)ô)**M*~*‘*ž*0+7+h+¨+ß+,A,_,~,š,š,ú,3-l-´-B.e.Ś.ß.úúúúúúúúúőúúúúúúúúúúúúúúúúúúgdlĽgd7îž*/+0+´-A.B.Ÿ0Ó0Ô01F1G1…2Ţ2ţ4A5B5A7Ą7˘7Ű:Ü:č:7;8;<˝<ž<ŠAíAvC‡CaIŘIŮILK’K“KwMšMşMÁMĹMĆMçMčMŇNODPúňîéáîéáîéáîáîÜÔîÜÔîĐîËĂîËťîłîłîŽŚîŽžî™™î‹îƒî{îh˙râh˙râ>*h<Ĺh7î>*h<Ĺh<Ĺh<Ĺ>*H* h<Ĺ>*h›\9h›\9>*h›YBh7î>* h›\9>*hĆphĆp>*h{sh7î>*h{sh{s>* h{s>*h{shč8ühč8ü>* hč8ü>*hÂ6hÂ6>* hÂ6>*h7îhlĽhlĽ>* hlĽ>*0ß.'/J/Œ/Ĺ/ţ/F0S00Ÿ0Ô0ß0ů01G1x1É1ô1$2=2X2t2…2Ţ2,3G3w33Ź3Č3úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îČ3Ů3â304K4{4”4°4Ě4Ý4č4ţ4B5h5Ą5Ë5÷56,6H6U6Ž6¸6ä6ý6747A7˘7Ö7úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îÖ78!818H8[8r8•8Ż8×8ý8$9>9o99Ž9Ó9ë9:a:™:Á:č:8;g;§;Ď; <K<<úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7î<ž<ę<ý< =$=8=R=z= =Ç=á=ţ=>?>[>‘>¨>Ó>ę>ü> ?M?e?˜?Ú?@:@a@@úúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7î@Đ@ő@2AqAŠAíAB)B;B_B‡BŞBÇBĘBCICvC‡C¤CîCADbD“DŞDžDŐDE'EKEúúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îKEpE–E´EŢE F5FFFrFFÜF!GqGŽGÇGěGHBH‘HÚH IaIŮIJ$JcJ—J×J(KLKúúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îLK“KťKńK L7LSLwLˆLŃLMKMwMĆMčM N(NHNfN…N§NĹNŇNO6OYO|O˜O¸OŘOúúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îŘO÷OP7PDPxP PĹPéPQ"Q?QJQqQQÝQ RR9R\RRĽRĘRěRSCSŒS˛S÷S2Túúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7îDPUPwPxP RRR˘XĺXY Y8Y9YCYúőíéäÜéä×ÜéÓéh›YB hŃ.Ň>*hkChkC>* hkC>*h7îh˙râh˙râ>* hě,4>* h˙râ>* 2TwTœTśTĺTUTUUÁUřU1VjVŠV­VĘVçV W/WUW’WŞWÍWôWX5XJXpXX˘X Yúúúúúúúúúúúúúúúúúúúúúúúúúúúúúgd7î YY:YBYCYúúúúgd7î 1h°‚. °ĆA!°"°# $ %°œ@@ń˙@ NormalCJ_HaJmH sH tH DAň˙ĄD Default Paragraph FontRió˙łR  Table Normalö4Ö l4Öaö (kô˙Á(No ListCQ†˙˙˙˙ P‡Łżěî&;sz˛Ô Wˆ°Î9ťźęDO‰Â4YŠÔúWŒłśÜ ?hwšŁtšť÷ F H P ś ĺ ć ˙  ! # ^ Ž Â Ţ ű  D \ t ‘ Ź Ď ĺ ) a Ž Ó  A Z s t ş ť ź ˝ Ç ă ˙ .I„ĆáCŽżďń#\™Ćë0Ae˛ő;¸Ů!\’Ç-ĄŞĐç2t”śä$Gt™Şé!B_†˘ŮI€ˇî%\“Ę6mŠ—ˇÝäYƒĂçü0h‚‘Ś;l¨ë.NzĄ¸ń:tˇć% Ŕ Ü î %!1o11Ž1Ó1ë12a2™2Á2č283g3§3Ď3 4K44ž4ę4ý4 5$585R5z5 5Ç5á5ţ56?6[6‘6¨6Ó6ę6ü6 7M7e7˜7Ú78:8a88Đ8ő829q9Š9í9:):;:_:‡:Ş:Ç:Ę:;I;v;‡;¤;î;A<b<“<Ş<ž<Ő<='=K=p=–=´=Ţ= >5>F>r>>Ü>!?q?Ž?Ç?ě?@B@‘@Ú@ AaAŮAB$BcB—B×B(CLC“CťCńC D7DSDwDˆDŃDEKEwEĆEčE F(FHFfF…F§FĹFŇFG6GYG|G˜G¸GŘG÷GH7HDHxH HĹHéHI"I?IJIqIIÝI JJ9J\JJĽJĘJěJKCKŒK˛K÷K2LwLœLśLĺLMTMMÁMřM1NjNŠN­NĘNçN O/OUO’OŞOÍOôOP5PJPpPP˘P QQ:QBQEQ˜0€€˜0€€x˜0€€x˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€x˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€x˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€€˜0€€ €˜0€€ €˜0€€˜0€€0€˜0€€ €˜0€€ €˜0€€ €˜0€€ř€˜0€€(€˜0€€(€˜0€€ €˜0€€ €˜0€€ €˜0€€˜0€€ €˜0€€ €˜0€€˜0€€x˜0€€°˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€x˜0€€x˜0€€x˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€˜0€€˜0€€ €˜0€€˜0€€ €˜0€€˜0€€€˜0€€ €˜0€€˜0€€ €˜0€€ €˜0€€x˜0€€ €˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€x˜0€€˜0€€˜0€€ €˜0€€˜0€€ €˜0€€ř€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ř€˜0€€˜0€€˜0€€(˜0€€ €˜0€€x˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ř€˜0€€˜0€€˜0€€˜0€€˜0€€x˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€€˜0€€˜0€€˜0€€ €˜0€€ €˜0€€˜0€€ř€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ ˜0€€˜0€€˜0€€˜0€€ €˜0€€˜0€€ €˜0€€ €˜0€€˜0€€˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€˜0€€ €˜0€€˜0€€˜0€€0˜0€€0€˜0€€˜0€€˜0€€(˜0€€(˜0€€ ˜0€€0˜0€€ ˜0€€ €˜0€€˜0€€ €˜0€€˜0€€(˜0€€˜0€€ ˜0€€ €˜0€€˜0€€ €˜0€€ ˜0€€8˜0€€˜0€€ €˜0€€˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€˜0€€(˜0€€(˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€ €˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€ř€˜0€€ ˜0€€˜0€€˜0€€˜0€€ ˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€˜0€€˜0€€˜0€€ €˜0€€0˜0€€0˜0€€ ˜0€€ ˜0€€ ˜0€€ ˜0€€ ˜0€€ ˜0€€˜0€€˜0€€ ˜0€€(˜0€€(˜0€€˜0€€(˜0€€(˜0€€˜0€€(˜0€€(˜0€€˜0€€˜0€€ř€˜0€€(˜0€€(˜0€€(˜0€€(˜0€€(˜0€€(˜0€€(˜0€€(˜0€€(˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€8˜0€€x˜0€€ €˜0€€€˜0€€€˜0€€˜0€€˜0€€ €˜0€€€˜0€€(˜0€€(˜0€€(˜0€€8˜0€€˜0€€(˜0€€˜0€€˜0€€(˜0€€(˜0€€(˜0€€˜0€€0˜0€€˜0€€0˜0€€ř€˜0€€˜0€€0˜0€€0˜0€€˜0€€0˜0€€0˜0€€˜0€€˜0€€ €˜0€€0˜0€€0˜0€€ €˜0€€ €˜0€€˜0€€ €˜0€€ €˜0€€0˜0€€0˜0€€ ˜0€€ €˜0€€@˜0€€@˜0€€0˜0€€ ˜0€€ €˜0€€ €˜0€€0˜0€€8˜0€€@˜0€€@˜0€€ €˜0€€˜0€€0˜0€€0˜0€€0˜0€€0˜0€€0˜0€€0˜0€€0˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€8˜0€€8˜0€€˜0€€˜0€€8˜0€€8˜0€€ €˜0€€˜0€€˜0€€ř€˜0€€8˜0€€8˜0€€8˜0€€8˜0€€˜0€€˜0€€8˜0€€H˜0€€H˜0€€8˜0€€8˜0€€˜0€€8˜0€€0˜0€€˜0€€8˜0€€8˜0€€˜0€€8˜0€€H˜0€€H˜0€€˜0€€8˜0€€8˜0€€˜0€€ř€˜0€€8˜0€€ €˜0€€8˜0€€˜0€€ €˜0€€8˜0€€8˜0€€8˜0€€8˜0€€8˜0€€8˜0€€8˜0€€8˜0€€˜0€€8˜0€€8˜0€€@˜0€€˜0€€@˜0€€@˜0€€@˜0€€@˜0€€ř€˜0€€˜0€€@˜0€€@˜0€€@˜0€€@˜0€€@˜0€€@˜0€€@˜0€€@˜0€€@˜0€€@˜0€€P˜0€€P˜0€€ €˜0€€x˜0€€ €˜0€€x ť÷ F H ś ˙  A Z t ş Ç P QQ:QBQEQš@0€€€;0d…üĂG ;0 ;0 ;0€˜@0€€€š@0€€€˜@0€€€ ;0d…Äۆ ;0€ ;0€;0€ ;0€š@0€€€;0d…ôJÉ;0€ ;0€;0€ ;0€ ;0€ž*DPCY-7@ę FAe™ƒ#<)ß.Č3Ö7<@KELKŘO2T YCY.012345689:;<=>?ABCY/˙˙ž‘tŞžEQ˘EQ9*€urn:schemas-microsoft-com:office:smarttags€place€ ÇÎ%(9Kg+ 5 f o –   Ę Ó ć đ  ' L Q d i | † ™ ˘ ´ Ä   ( i o | ‚ – ž Ť ˛ ż Ç Ű ă đ ÷ $ 1 5 I N b g Ď Ř ë ő #6?ŒĽ˛şÎŐéó˙ $08KUalx‚–žŞ´ÇĚŮă4@ISVdisv{|‹‘›Ł­şÁÄŕçôů"%:?G[bgo…Œ‘™ŠłźÄĚÔÝçîř-69GRZd‘ťă +‰’śżÂĎÝćô)1IQeoŤ´ÎÖń÷   4@`fks€‰Œ‘´˝-7LVc}‹ĄĹÍáü?HltˆŁŞśÚâö$HPd†’śžŇíô#+>Y`lťŐđůknËÓÖćďô #*ty Ľáé ?[Ž–˜ ŹÇÎÚâę$-:CRabnpyăđőý#9žŚ  l t – ž ü !!!.!7!E!T!k!v!‚!‰! !Ť!ˇ!ż!Ö!á!í!ó! ""!")"7";"c"g"i"u"Œ""?#B#R#X#\#_##ˆ#“#˜#œ#Ÿ#Ę#Ď#Ó#Ö# $$$$P$X$c$k$n$s$t$|$…$$Ľ$­$ë$ö$$%/%]%h%‡%%Ś%ł%J&P&Q&Y&—&˘&Đ&Ű&ú&''&'/'5'6'>'|'ˆ'ś'Á'ď'ú'("(8(E(ý()N)X)b)l)€)ž)Ľ)°)ź)Ĺ)**e*o*Ď*Ô*ć*+ ++"+(+T+n+š+Ă+ę+,,,&,,,X,r,˝,Ç,F-g-l-Š-‘--Ô-î-9.C.Y.w.~.Š.Á.Ű.%///Ş/ł/Â/Ę/ü/00 090@0c0h00§0ˇ0Á0ß0ç01 10141R1V1]1b1j1n1|1€1›1Ť1 2232:2I2P2n2}22¨2Ť2ł2ś2Ŕ2Ĺ2Ď2Ň2Ú2Ý2ç2ň2ý23 3<3X3Y3c3{3…3‡3‘3“3ž3Ż3Ć3Ó3ę344#4)4+44464D4W4`4e4r4Ć4Ď4Ň4â4ó4ü455@5J5Z5d5‚5Š5¨5°5Ó5×5ů5ý51656w6{6Œ66Ä6Č6÷6ű67&7‡77­7´7Ă7Ę7č7÷78!8$8,8/898>8H8K8S8V8`8e88‚8Œ8¤8Ž8°8ş8ź8Ç8Ő8ě8ů89&9.9I9O9Q9Z9\9j9}9†9‹9˜9ń9::!:-:::?:O:Ž:ś:š:Á:™;ž;­;ą;< <o<x<{<‹< <Š<÷<ű<"=&=˘=Ź=Ŕ=Č=ę=ô=>>N>Y>\>d>g>q>z>„>‡>>’>œ>??.?7?:?V?W?a?c?m?•?Ÿ?Ą?Ź?ś?Ć?Ď?Ů?Ü?ë?ţ?@@@"@9@J@a@w@‚@Ą@§@Š@˛@´@Â@Ç@Ó@ę@ó@0A=AMAWAęAůA-BGBOBYBkBƒB„BŽBŸBÁBÂBČBĘBÓBëB÷BCCœ>ŘAŘAÜPÝPáPâPĺPQ8Q9QBQEQ’>œ>ŇA×AÜPĺPćPéPęPôPőP÷PřPQQQ5Q9QEQ˙˙dntzaĺJ3{sÂ6ě,4›\9P>›YBkC4\]ĆpEQzni•ÇiĄlĽ‚'ľö|ş<ĹŃ.Ň˙râČFĺ7îč8ü[D˙˙@€p>‘CQ`@˙˙Unknown˙˙˙˙˙˙˙˙˙˙˙˙G‡z €˙Times New Roman5€Symbol3& ‡z €˙Arial"qˆđĐhˇSyfˇSyf #E)“ #E)“!đ ´´4QQ2ƒđH đ˙?ä˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙7î˙˙' General declarationsdntzaţ˙ŕ…ŸňůOhŤ‘+'łŮ0t˜źČÔŕěü  0 < HT\dlä' General declarations. dntntntNormalezam2mMicrosoft Word 10.0@¤“Ö@’1 ŁwĂ@’1 ŁwĂ #Eţ˙ŐÍ՜.“—+,ůŽ0 hp|„Œ” œ¤Ź´ ź áäUCL“)Q{ ' General declarations Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCţ˙˙˙EFGHIJKţ˙˙˙MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ţ˙˙˙€‚ƒ„…†ţ˙˙˙ˆ‰Š‹ŒŽţ˙˙˙ý˙˙˙ý˙˙˙’ţ˙˙˙ţ˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Root Entry˙˙˙˙˙˙˙˙ ŔF°ľŽ$ŁwĂ”€Data ˙˙˙˙˙˙˙˙˙˙˙˙D1Table˙˙˙˙LRdWordDocument˙˙˙˙"†SummaryInformation(˙˙˙˙˙˙˙˙˙˙˙˙DocumentSummaryInformation8˙˙˙˙˙˙˙˙‡CompObj˙˙˙˙˙˙˙˙˙˙˙˙j˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙ ˙˙˙˙ ŔFMicrosoft Word Document MSWordDocWord.Document.8ô9˛q