ࡱ> ~5@ 2bjbj22 3XXt,8G8G8G8GRRR(R8(R ($RZ-R/8G8Gk)LL 8GR26ֵ< OR^ Ţ_ ,u<ii8j(R(R8G8G8G8GiRj@h]J<(R(RP9((R(R  Purpose In this lab you will learn how to define your own classes, with instance and class data members and instance methods. To prepare Wu: Review the vocabulary introduced in Chapter 4, Read Sections 4.1 4.5 Read through this laboratory session There are no files to copy for this lab. You will be using and submitting this code as part of the next assignment. To Complete This is an individual lab. You may ask the lab tutor for help and you may consult with your neighbor if you are having difficulties. In this lab, you will create two files, Rectangle.java and RectangleTest.java, that should be stored on your memory device. When done, copy the code and paste it into the file Lab05.txt followed by the output of the final run of the program.  5.1 Utility Class basics Review of terminology In Java, all application programs must be defined inside of a class that contains a main method. Let's categorize these classes as driver classes because they drive a program. We have also used some predefined classes that can be classified as utility classes, because they are utilized by programs and by other classes. Examples of utility classes that we have used from the Java API include classes that were instantiated, such as javax.swing.JFrame, java.lang.String, java.util.Scanner, and java.text.DecimalFormat. These classes were used to create objects that were utilized in our programs. Java API classes such as javax.swing.JOptionPane and java.lang.Math contain class methods that can be invoked without creating an object. A class is a template that describes an object's data values and methods that work with this data. Collectively, the data and methods are referred to as the members of the class. There are two categories of data members, those that belong to an object and those that belong to the class. In addition, for each of these categories there are constant and variable data members. Since an object is an instance of a class, a variable data member that belongs to an object is called an instance variable. Each object that is created from a class has its own version of an instance variable. Conversely, a class variable belongs to the class. There is only one version of a class variable that is shared by all objects created from the class. Similarly, there are two types of method members, instance methods and class methods. An instance method must be invoked on an object. A class method does not need to be invoked on an object but, instead, can be invoked on the name of the class. The Rectangle class As a first example, we will define a Rectangle object. This will not be a rectangle that we can see, but rather a rectangle that can be used for calculating area and perimeter. The class could, for example, be used by a program that calculates the number of gallons of paint that are needed to paint a room. A rectangle has a height and width, and given this data, the area and perimeter of a rectangle can be determined. Therefore, the class Rectangle should define data members height and width. Since each Rectangle object stores its own values for these variables, height and width are instance variables. The methods are the method's that determine the area and perimeter of a Rectangle object and are, therefore, instance methods. Pictured below is a diagram of a Rectangle object showing the instance variables width and height and the methods area and perimeter. The state of the object is determined by the values stored in its data members. Since the state of this object has been set, also illustrated are the values returned when the area and perimeter methods are invoked on the object.  Class definition A typical class definition has the form class className { data member declarations method member definitions } Defining instance variables We begin by declaring the instance variables, placing them at the top of the body of the class. class Rectangle { //instance variables double height, width; } Writing a method While we have written many different main methods, we have never written a method other than main. We have, however, used many methods other than main. And, in learning how to invoke methods on objects, we have looked at some method headers. Recall that a method header has the form optionalAccessModifiers returnType methodName( optionalParameterList ) To write the method that calculates and returns the area of a rectangle, we start with the method header. The methodName should indicate the method's purpose, so area is a good name. The parameterList represents information that the method needs to complete its task. We might conclude that the width and height should make up the parameter list. However, every instance method has access to the object's instance variables. Specifically, when the area method is invoked on a Rectangle object, it has access to the object's height and width variables. Since no additional information is needed, the method has no parameter list. The returnType is the data type of the value that is returned. Since height and width are of type double, the area of the rectangle is a double and, therefore, the return type is double. The only accessModifier needed is public. The modifier public allows any program that uses a Rectangle object to invoke the area method on a Rectangle object. Therefore, the method header is public double area(), and the form of the method is public double area() { method body } The body of a method consists of statements that are executed when the method is invoked. The statements that make up the body of the area method must calculate the area and return the area. A variable declared inside of a method is known as a local variable for the method and exists only during the execution of the method. These statements declare a local variable theArea and, assign to theArea the area of the rectangle. double theArea; theArea = height * width; Any method that returns a value must have a return statement. The term return is a Java reserved word. The statement that returns the area is: return theArea; Step 1: Place the code for the Rectangle class in a file called Rectangle.java. class Rectangle { //instance variables double height, width; public double area() { double theArea; theArea = height * width; return theArea; } } Compile the code. Try to execute, or run, this file. Record the error message. _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ Testing the utility class In order to use a Rectangle object, we must write a program. Therefore, we need two classes - the utility class Rectangle and a driver class RectangleTest that will be used to test our code. The two classes may be placed in the same file RectangleTest.java or they may be placed in two separate files, Rectangle.java and RectangleTest.java. We will choose the second option. A program that uses a Rectangle object must first declare and create (or instantiate) the object Rectangle myRect = new Rectangle(); Then, the area method can be invoked on the object as in double myArea = myRect.area(); which assigns to myArea the value returned by the method. Step 2: Enter and save this class definition in a file called RectangleTest.java. class RectangleTest { public static void main(String[] args) { Rectangle myRect = new Rectangle(); double myArea = myRect.area(); System.out.println("My rectangle has area " + myArea); } } Compile the program RectangleTest.java. Execute the program and record the results. ____________________________________________________________________________________ ____________________________________________________________________________________ Step 3: Currently, you can access the values of width and height directly by joining the variable to the name of the object using the dot operator. Add the following statements to the end of the main method. System.out.println("Width is " + myRect.width); System.out.println("Height is " + myRect.height); Predict the output of the new program. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Compile and execute the program. Was your prediction correct? If not, correct your answers. Step 4: Modify the program by adding these statements at an appropriate place in the main method so that the area of myRect is no longer 0. myRect.width = 2.0; myRect.height = 3.3; Compile and execute the program. Record the results. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Access Modifier: private Step 5: Being able to directly access the instance variables of an object (Rectangle) from an outside class (RectangleTest) is considered to be an inappropriate practice in object-oriented languages. To prevent this, the instance variables of a class should be modified by the access modifier private. Modify the Rectangle class by inserting the private modifier in the data member declaration statement: private double width, height; Compile the modified program. Record the compiler error messages. _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ _____________________________________________________________________________________________ The principle of making the data members of a class private and controlling access to the private data through the public methods is called encapsulation. Basically, this principle states that the integrity of an object is maintained by making the instance variables private and, thereby, not allowing the user of the object to directly access the data, as in System.out.println("Width is " + myRect.width); System.out.println("Height is " + myRect.height); or modify its data, as in myRect.width = 2.0; myRect.height = 3.3; Accessor Methods If the user of an object is to be allowed to access or get the value stored in a variable, an accessor method is needed. It is customary that the method is named get followed by the variable name. Therefore, we could choose to add the accessor methods getWidth and getHeight to our Rectangle class. Since the purpose of a get method is to allow the user to access the value stored in a data member, the method merely returns the required instance variable, a double. No information needs to be passed to a get method. Step 6: A. In the Rectangle class, insert the code for the method getWidth which has no parameters and returns a double public double getWidth() { return width; } Compile the code. Then, insert a similar method to give the user, or client, access to the height of a Rectangle. B. In the client class, any class that uses a Rectangle object, the illegal statement System.out.println("Width is " + myRect.width); should be modified to use the accessor method System.out.println("Width is " + myRect.getWidth()); Modify the client class, RectangleTest, to correctly access the width and height of the Rectangle object. Compile RectangleTest.java. Note: If Rectangle.java has not been compiled since changes to it were last made, it will be recompiled when RectangleTest is compiled, since RectangleTest uses Rectangle objects. Execute the RectangleTest program and record the results. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Mutator methods If the user of an object is allowed to modify or set the value stored in a variable, a set method is needed. It is customary that the method is named set followed by the name of the variable. Therefore, we could choose to add the methods setWidth and setHeight. The setWidth method should have a formal parameter that receives the value to which the width, a variable of type double, should be set. For now, the name of this formal parameter should be anything except width, since width is the name of the instance variable. The method does not need to return a value, so the return type is void. Methods with return type void do not need a return statement but, a simple return; may be included. The completed method should be added to the Rectangle class: public void setWidth(double w) { width = w; } The state of an object is defined by the values of its instance variables. Methods that set a variable to a new value change the state of the object or mutate the object. Therefore, set methods are called mutator methods. In the program that uses a Rectangle object, the illegal statement myRect.width = 2.0; should be modified to use the mutator method myRect.setWidth(2.0); The statement above assigns the argument 2.0 to the method's formal parameter w. In the body of the method, the value stored in w is assigned to the instance variable width. Step 7: Add the methods setWidth and setHeight to the Rectangle class. And, make changes to RectangleTest to correctly use these methods. Your Rectangle class should now be: class Rectangle { private double width, height; public double area() { double theArea; theArea = height * width; return theArea; } public double getWidth() { return width; } public double getHeight() { return height; } public double setWidth(double w) { return width; } public void setHeight(double h) { height = h; } } And, your RectangleTest class should now be: class RectangleTest { public static void main(String[] args) { Rectangle myRect = new Rectangle(); myRect.setWidth(2.0); myRect.setHeight(3.3); double theArea = myRect.area(); System.out.println("Width is " + myRect.getWidth()); System.out.println("Height is " + myRect.getHeight()); System.out.println("My rectangle has area " + theArea); } } Compile RectangleTest. Execute the program and record the results. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Writing a Constructor The second way to set the values of the instance variables is to set them at the time the object is created. The RectangleTest statement Rectangle myRect = new Rectangle(); uses the constructor Rectangle(), a default constructor. If a class does not define its own constructor, a default constructor , which has no parameters and sets all data members to the equivalent of zero, is automatically provided. To set the values of the instance variables when the object is created, we need to write a Rectangle constructor that has two parameters of type double that are used to initialize the Rectangle's width and height. A constructor is a special type of method. The form of a constructor is public className( optionalParameterList ) { body } A constructor must have the same name as the class name. Therefore, a constructor used to construct a Rectangle object, must be named Rectangle. We say that a constructor is a special type of method because it does not have a return type and because it can only be used in conjunction with the new operator. A constructor that initializes the height and width of a Rectangle object would take the form public Rectangle(double w, double h) { width = w; height = h; } The statement Rectangle myRect = new Rectangle(2.0, 3.3); constructs a new Rectangle object with width equal to 2.0 and height equal to 3.3. When executed, the argument 2.0 is assigned to the parameter w and the argument 3.3 is assigned to the parameter h. In the body of the constructor, the value stored in w is assigned to width and the value stored in h is assigned to height. The order in which the arguments are assigned to the parameters is determined by the order in which they are passed. Therefore, the statement Rectangle myRect = new Rectangle(3.3, 2.0); assigns 3.3 to w and 2.0 to h. Once we have a constructor that creates and initializes an object, the set methods are no longer needed, but may still be included. Whether to provide the user of an object with get and set methods is a design decision. Very often, get methods are provided to give the client access to an instance value, but set methods that allow the client to mutate the object are not. Step 8: Modify the Rectangle class by adding the constructor, placing it after the declaration of the instance variables, and before the definitions of the existing methods. This location is not mandatory, but it makes the code more readable. Also, do the following to modify the class RectangleTest class 1. Comment out the two statements in main that invoke the set methods. 2. Change the statement that creates the Rectangle object from Rectangle myRect = new Rectangle(); to Rectangle myRect = new Rectangle(12.5, 10); Compile and execute the modified program. Record the results. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Overloaded methods Overloaded methods are methods from the same class that have the same name but different parameter lists. That is, a class may define two methods with the same name as long as their signatures, name + parameter list, are different. For example, the String class contains the methods public String substring(int beginIndex, int endIndex) public String substring(int index) Constructors may also be overloaded. When the constructor public Rectangle(double w, double h) was added to the Rectangle class, the default constructor public Rectangle()became inaccessible. It is a good practice to always include a constructor that has no parameters. In this case, we should add public Rectangle() to the Rectangle class. This constructor could initialize both instance variables to 0, or to any other default value of the programmer's choosing. Assigning 1 as the default dimension would be one such choice. Step 9: Make two additions to the Rectangle class and modify RectangleTest. A. To store the default dimension, introduce another data member that is a class constant at the beginning of the class definition. Add the statement public static final double DEFAULT_DIMENSION = 1; and answer these questions: 1. What modifier makes this data member a constant instead of a variable? ____________________________________________________________________________________ 2. What modifier makes this data member a class constant instead of an instance constant? ____________________________________________________________________________________ 3. Why is the integrity of the class not compromised by modifying the data member with public? ____________________________________________________________________________________ ____________________________________________________________________________________ B. Modify the Rectangle class by adding a second constructor, placing it either before or after the first constructor. public Rectangle() { width = DEFAULT_DIMENSION; height = DEFAULT_DIMENSION; } C. Add code to RectangleTest to test the new constructor by creating a second Rectangle object named yourRect and printing its dimensions and area. Compile and execute the program. Record the results. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________  A state of memory diagram for the current RectangleTest program Writing a toString method Step 10: We know that we can print String and numeric values. What happens if we print an object other than a String? Add this statement to the end of the main method in RectangleTest. System.out.println(myRect); Compile and execute the program. Record the new print results. ____________________________________________________________________________________ ____________________________________________________________________________________ A utility class should define a method with header public String toString() that returns a String representation of the object. The String that is returned is determined by the programmer. Note that the method does not print a String, it returns the String. A toString method for the Rectangle class could be public String toString() { String s; s = "Rectangle: dimensions " + width + " x " + height; return s; } Step 11: Modify the two classes A. Add the toString method to the Rectangle class. B. To the end of the main method in RectangleTest, add the print statement System.out.println(myRect.toString()); that calls the toString method and prints the returned String. You should now have two print statements System.out.println(myRect); System.out.println(myRect.toString()); Compile and execute the program. Record the results of these two print statements. ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Make a conclusion: What is printed when an object is printed , as in System.out.println(myRect); if the class defines a toString method? ____________________________________________________________________________________ ____________________________________________________________________________________ ____________________________________________________________________________________ Completing the Rectangle class Now, complete the Rectangle class by Rewriting the area method Adding a method to find the perimeter of a Rectangle object Adding a third constructor Step 12: There is usually more than one way to write a method. The area method is such a method. This second version combines the declaration and initialization statements of the local variable theArea. public double area() { double theArea = height * width; return theArea; } In the third version, the local variable theArea is omitted. The calculation of the area can be done in the return statement. The parentheses surrounding the calculation are optional. public double area() { return (height * width); } Replace the body of the existing area method with one of the new versions. Compile the revised Rectangle class and execute RectangleTest to ensure that the new version works. Step 13: A. Modify the Rectangle class by adding a method with the header public double perimeter() that calculates and returns the perimeter of the rectangle. B. Modify the RectangleTest class by adding statements that print the perimeters of the two existing objects. Compile the revised RectangleTest and run it to ensure that the new version works. Step 14: A. Add a third constructor to the Rectangle class with the header public Rectangle(double side) that initializes both instance variables to side, i.e. this rectangle is a square. B. Also, make the following changes at the end of the main method in the RectangleTest class: 1. Declare and create another Rectangle object using the new constructor. 2. Add statements that print the dimensions, area, and perimeter of the third Rectangle object. Compile the revised RectangleTest and run it to ensure that the new version works. 5.2 Post-Laboratory Problems 1. Write a utility class Circle and a driver class CircleTest to test each constructor and method in the class. Recall that the Math class defines the constant public static final double PI. A Circle object should have one instance variable: double radius and one class constant that defines the default radius of 1. Include two constructors: public Circle(double r) initializes the radius to r public Circle() initializes the radius to the default radius Include the following methods: public double area() returns the area ((r2 ) of this object public double circumference() returns the circumference (2(r) of this object public double diameter() returns the diameter (2r) of this object public String toString() returns a String representation of this object such as "Circle with radius 2.5" public void setRadius(double r) sets the radius to r public double getRadius() returns the radius of this object 2. Write a program Area.java that uses both Rectangle and Circle objects to find the area of the shaded region. All of the cutout corners are squares with side 2. The area should be printed, rounded to one decimal place. 3. Write a program Area.java that uses the rectangle class to find the area shaded region. All of the cutout corners are squares with side 2.  4.Write a utility class Box and a driver class, BoxTest, used to test each constructor and method in the class. A Box object should have three instance variables: double height, width, depth; Include three constructors: public Box(double w, double h, double d) initializes the three instance variables public Box() initializes all instance variables to a default dimension of 1 public Box(double side) initializes all instance variables to side, that is this object is a cube. Include the methods: public double volume() returns the volume of this object public int surfaceArea() returns the surface area of this object public String toString() returns a String representation of this object such as "Box with dimensions 4.3 x 6.5 x 9.0" public double diagonalLength() returns the length of the diagonal, which is the square root of the sum of the squares of each dimension, of this object. Three accessor methods, one for each instance variable Three mutator methods, one for each instance variable 5. Write a program Wood.java. An open box with a square bottom and no top is to be constructed out of wood. Use the Box and Rectangle classes to determine the volume of the box and the surface area of the wood needed to construct the box.     6. Write a utility class Name and a driver class to test each constructor and method in the Name class. Each Name object should have three instance variables of type String, first, middle, and last. Include two constructors: public Name(String f, String m, String lt) that initializes the three instance variables. public Name(String wholeName) wholeName must be split into three strings to initialize the three instance variables. Include the methods: (For the examples that follow assume the name is John Ty Smith.) public String intials() returns a String containing the three initials of the name. For our example: "J. T. S." is returned. public String toString() returns a String containing the first name, middle initial and last name. For our example: "John T. Smith" is returned. public String toFullString() returns a String containing the first, middle and last names. For our example: "John Ty Smith" is returned. public String toLastString() returns a String containing the last name, a comma, and the first name. For our example: "Smith, John" is returned. public String toUpperCase() returns a String containing the full name in upper case letters. For our example: "JOHN TY SMITH" is returned. Three accessor methods, one for each instance variable. 7. Write a utility class BankAccount and a driver, BankAccountTest, that creates at least two BankAccount objects and fully tests all methods. A BankAccount has instance variables: double beginBalance, double balance, and String name and class constant representing the default opening balance of $100. Include two constructors: public BankAccount(String n, double begin) initializes the name and both balance and beginBalance. public BankAccount(String n) initializes the name. Other data members are initialized to zero. Include these methods: Three accessor methods, one for each instance variable. One mutator method that allows the owner's name to be changed public void deposit(double amount) adds amount onto the balance public void withdraw(double amount) subtracts amount from the balance public String toString() returns a String containing the name and balance. Use a java.text.DecimalFormat object to format the monetary value for printing. For example, "Mary Smith: Current balance is $450.75" Java Lab Manual Page 5. PAGE 14 Marian Manyo, Marquette University Marian Manyo, Marquette University page 5. PAGE 1 2 2 35.5 15.0 height width 2 When you have finished this lab, hand in a printed copy of your Lab05.txt document. This will be the grade for the lab. 1.0 Rectangle.DEFAULT_DIMENSION 2.5 2.5 5.2 7.5 2 2 35.5 yourRect myRect 1.0 1.0 Rectangle width height *+,-45 * K ] k p * »уxoof]h-h0Jhh-h]/A0Jhh]/Ah]/A0Jhh0J5@<CJh)~hllh0h- heh]/A#hk6h0J5@<CJOJQJh Ih ICJOJQJaJ heh heh Ih]/Ah7hh0J5@CJ *jh@CJUaJmHnHtHuh0J5@$*+,-5 * 5 * + . / 9gd]/Agd]/A^ & Fgd7^ & Fgd)~^gd]/A^gdgd ISgd)~gd*gd|~}* + - . / 0 1 2 3 K a b U d  > J K L O P g i $%6¾vvpi h% hd hd0JCh% hd0JChdOJQJhQ\2hdOJQJhIz h]hdh% hd0J[ hd6 hO{hdhEhIzhd>*hdhY8hh-hIh-CJaJh]/AhIh]/ACJaJ&jh]/ACJUaJmHnHtHuh7)/ 0 1 K a C1hgddgdgdgdIzgddgddgd]/A9gd-gd-1V_%1:;x} %8AhmrxOTXaj h]/A0J>*jh UmHnHtHuhhY hY 0JghY hEhIz0JhhEhIzhdOJQJh\4hdOJQJ h1RhdhOhd>* hd6hd<0FK{M v{+4[afk @T#'úúúúhdOJQJh*Shd6h hd0Jg h7hdh hd0Jh hhd hehdhOhd>*h1Rhd6hdh7hd0J>*@0MF^Eƀhogd7n^gddngddgddgddgdd  us-(gddF^Eƀhogd7F^Eƀhogd7F^Eƀhogd7u^IYs  f v x !! !"!s!TgdY RgdY gddngddgd7ngd7gddgdd"&-IWY`st     5 > V d ! !!!!! !6!W!Y!r!s!""""# #4#A#####޴޴޴ޡhOhd>* h?Khdh{K h*Shdhhd0Jh7huhd0Jhhuhd0JghuhY h h 0Jhh h@/hdh hY 0Jh?s!!/""""$$$$$9%%%%%%%!&^&c&f&&'f'tgddsgddgddgddgddngddgddgddgddtgdY sgdY #####!$"$+$8$A$I$$$$$$$$$$%%%9%@%A%U%f%x%%%% & &6&W&f&g&{&&f'g'n'''''*(/(**$*%*s*w***,!,(,˪hOhd>*hdOJQJ hd0J hu0J hd0J h}hdh1yGhd5hhd0JhuhY 0JhhY huhd0Jhhu h1yGhd h?Khdhd;f'g'7(g((()j))*****+]++,!,--.t.sgdY gddgddgddugd7gddtgddsgddgddgddgdd(,),k,l,u,w,,,,,F-M-N-Z-c-z-{--.t..0//////000(0)0+0000000]1c11111111122S2V222222222|333hOhd>*hdOJQJhJchd>*h_h_0Jhh_hd0Jhh_h_hd0Jgh7hOhY huhd0Jh hJchdhdh >hd0J?t..0//*00(1Z1u1111334L4N4_4a44+5[555(6gddgddgddngddgddgddngd_ugd7tgdY tgdO33333333344,42434444444444445 55556666606B6E6J6O6]666666666667757677788hOhd>*hO h HhdhOhd0Jhhy hd0Jh9phd0Jhh9phd0Jgh9p hO0JC h%hdh%hd0JCh_hhd0Jhdh_hd0Jh:(6667775888U;;;;;;<<<'====>>>>>>gddRgddgddugd7tgddtgdOsgddgdd8888888880939999999999::n:s:{::::::::; ;+;/;;;B;S;T;U;V;m;;;;;<<<<f=j=========> >h3Ihd0Jh9phd0Jgh9phd0JCh9phd0Jhhh7hOhdOJQJ hahd hO0JChOhO0JhhOhd0JChy hd>*hd> >>>#>,>5>;>J>W>>>>>>>? ???/?E?N?k?????@9@;@A@S@[@^@_@i@v@@@AAAA> ?/?G?M?N?k?q???????????@@@;@A@U@[@^@@@gddRgdd@@@@@AA=AeAlAAA(B.B0BtBBCsCCD6DAFkFgddgddngddgddugd7tgdOsgdOgddRgddsCCCDDDKDVDDDDDDEEEEE|EEEEEEEEEEEFFFFFGGGGGGGGG HLHMHQHHHHHHHHHHHHHII.I1I2IOIPIIIIIIIIIII\J hZ!$hd h @hd hd6 h.4WhdhOh9phO0Jhh9phd0JhhdhOhd>*LkFmFuFwF H.H0H?HOHQH_HH\JJJLMQMMMMM+NiNgddgdOgddngddTgdORgdO}gdOgddgdd\JJJJJJJJJJJJJJJJJL$L0L9L*hv hZ!$hdhhd0Jhhhd0Jh9phd0JCh9ph9pOJQJhdOJQJh9phd0Jhhd hOhd7iNNOhOOOP#QFQQQtRR_SSETwTTT3U4UUUsgd*gd Wgd*gd*gdvgddgdd ox`gddgddugd7tgdvsgdv[S\S_S`SgShSiSnSqSSSSSSSSTT0T6TDTETTTT3U4U8UUUUU=VCVDVEVVVVWW,WhWWWWWWWWWXX%X-XXYڼhhd0Jhhh*0Jh h*h* h*h Wh Wh*h hd0JCh*h*0Jhhhv0Jh h*0JC hv0JChA.=hd0JChhd0J h0Jhvhd8UUEVVViW|W~WWWWTXXX3YYYYYYYYYYZZgd Pgddtgd*gddgddugdfcsgd*gdvYYYYZZAZBZZZZZZZZ [[:[>[I[V[W[X[[[^\\\\\\\B]H]Y]_]e]m]}]]^^^ʺʨʛʟʟʓʌʟʅ~wwʅʅʱnhoIhd0JC hqhd hWWhd hahd hIZhdhLehd5h(Sh(Shd0Jhh(Sh(S0Jhhhd0Jh hd0J5>*OJQJhdhfch hd0J h 0J h*0J-jh5CJOJQJUmHnHtHu*ZX[t[[ \^\]]]]]^^)^]^^^;_W_~__'`|``a3agd ugddgddtgd sgd gddgdd^)^0^5^=^L^U^a^s^w^^^^^^^^^___;___`````aa3aKaSa[a\a]a\b]b¾wlh u0J5>*@h h 0JAh u h u0JCh hd0JChd0JCJOJQJhMihd0J5CJOJQJh hd0J h W0Jh hIZhdhd h(S0Jhh h(S0Jh h(S0JCh(Shd0Jh hd0JChoIhd0JC h 0JC&3a]aab\b|bbbbccccd,d.ddddeeeet^gddgddgdd & FQgds( & FQgd gd gds(tgd sgd gdd]b|bbbbbbbccVcZccccdd*dWd^ddddd{eeeeeeeeeee|ffffffff0g1g9g役ܹƹƹܹܹ}w hs(0Jhhs(hs(0JhhgRhd0JChWWhd0JC hd5hhd0J hs(0Jhs(hd0Jhhs(hdhh u0Jh uhs(0Jhhs(0J5@OJQJh uhd0Jhhd0J5@OJQJhs(hd0J5>*@-ef2fnff0g1g~gggOhhhNiOiPioi2j3jjjj ^`gd ugdagddmgdd3^gds(3gddt^gds(gddgdd9g:g;g?g@g^ggggggggggggg&h*h9hFh^hehmhvhhhhhhhiiiOiQiRioipiqisiiiiiiiiiiiiij.j/j۾۵۱۞ۚۏۚ hGhdhr}h_hE hs(0Jhhs(hs(0Jhhs(hqhd0JC hd5h u hahdh Wh uhd0JhhdhIZhd0JChLehd0JC hd0JhgRhd0J7/j1j3j5j;jRjSjdjfjsj|jjjjjjjjjjjjjjkkkk(k.k2k6kDkEkLkbkikkkkkkǾǸٕwp h1hdhdOJQJ ha0JChaha0JC hGhdh uhRq@hd0Jh:hd0JCh_hah u0JC hd0JChch_0Jghah_0JCh*h_0Jhhchd0Jghahd0JCh uhd0Jhhdhcha(jkEkkkkk6llllmmmmmmmmmmmmmgddgdagdd^ & F^`gd u ^`gda^$$ & F.@&a$gdd & F.gd ukkkkkkkkkkkkkkkkkkkk l ll*l.l5l6lNlOlYl_lrlvlwl}lllllllllm m mmmڽѽͬ|ĽڽĽڽĽh`hha0JCh`hh`h0Jh h`h0JCh`hh`h0JC h`h0Jhh uha0Jh hahd jph:hd h:hdh uhd0Jhh1h1hd0Jhh:hd0JCh uh1hdH* h1hd jph1hd/mmmmmm'm0m@mJmNmTm\m|mmmm]n^nnnnnnnnnnnnoooo o!o3o5oPoRoSoToaomoqoooooo۵䦠䗎~hahd0J hahdhchd0Jghahd0JC hr}0JChahd0JC h10JhhdOJQJh1jhr}UmHnHuhDh]/Ah*,h1hd0Jhhdhr}jhr}UmHnHtHuha1mmmnnRoSoooopspppppqoqq7rnrr8^8gd1 ^$ & F.@&gd1 & FSgdagdagd`h ^$ & F.@&gd`h^$$ & F.@&a$gddgddgdaoppp*p+pQpUp_pdpkppppppppppppppppppqqqq6q7qAqGqZq^q_qeqnqoqqqqq!r%r&r,r-rrrrrrrrr𕑕hDhch1h1CJOJQJh:hdCJOJQJ hmohd hNhdhahchd0JghE h`h0JC h`h0Jhh`hh`h0JCh1hd0JhhdhdOJQJh19rrssssssssstotptttZu[uu2vvQwwgdd ^$ & F.@&gdk^$$ & F.@&a$gddgdd gddgddgdcgddrrrssss$s-ssssssssssssssstttt3tEtVtethtntotptxt{t|ttttttttίyhchd0JChcha0JghRq@hd0J ha0JCh:hd0JC hd0JC hk0Jhhkhk0JC hk0JChchd0Jg hNhdhkhd0JhhDhkjhdUmHnHtHuh1hd0Jhh1hd,tuuuuu u1uZu[ufugunuouuuuuuuuuuv$v2vJvKvUv[vwvvvvvvvv3wCwQwmwxw~wwwwww xx1x@xSxbxpxxxxxx붯붯릶붦릶hD hhdhhd0JC hmohdhkhd0JhhdOJQJhchd0JChchd0JghRq@hd0Jh:hd0JChdhkhahkha0Jh*@CJh:"20J5@CJOJQJ#hPdh:"20J5@CJOJQJh]h:"2CJ`aJ`h:"2CJ`aJ`h:"25CJaJh]h:"25CJaJh hEh{Kh:"2hFGHINO[\bcjkqstuvwxyz{|}~$a$gdgd$a$gdE$a$gdHgdz9gdIgdzD8^8gd:"21 0&P/R :p,/ =!"#$%`@`@ 8NormalOJQJ_HmH sH tH `@` }# Heading 1$dxx@&5;@CJ KHOJQJaJ R@R \ Heading 2$d@&5@KHOJQJX@X }# Heading 3$x@&5OJQJ_HmH sH tH R@R & Heading 4$$@&a$;@CJOJQJ@ Heading 5,Heading 5 Char,$$I&#$/@&a$5@OJQJR@R & Heading 6$&#$@& CJOJQJ@ & Heading 7t<&#$$d %d &d 'd -D/@&M N O P Q 6@CJOJQJ@ Heading 8L$$d<D&#$$d&d@&NPa$;@<CJOJQJR @R & Heading 9 $P<@&56CJKHOJQJDA@D Default Paragraph FontViV  Table Normal :V 44 la (k(No List 6B@6 8 Body Text xxNON 8Body Text Char1OJQJ_HmH sH tH ZOZ \ Heading 2 Char1#5@KHOJQJ_HmH sH tH RO!R }#Heading 3 Char15OJQJ_HmH sH tH ^O1^ Heading 5 Char Char5@OJQJ_HmH sH tH <OB< & BodyText2$`a$FORF =BodyTextNoSpace aJDOaD =BodyTextNoSpace CharaJ@X@q@ Emphasis5@CJOJQJaJT T Index 1  x 0d^`0 CJOJQJL L Index 2 x d^ CJOJQJD D Index 3 x d^CJD D Index 4 xd^CJDD Index 5 xd^CJBB Index 6  `^``BB Index 7  ``^```BB Index 8  `^``@@@ TOC 1 d@ CJOJQJ&@& TOC 2!@@ TOC 3" d@ CJOJQJJJ TOC 4!# dh&dPCJJJ TOC 5!$ dh&dPCJ66 TOC 6%   ^ 66 TOC 7&  ^66 TOC 8'  `^`66 TOC 9(  ^VV  Comment Text$) Ed$x^`EL@L i`Header*$ !;>*@<CJOJQJ` @` naFooter!+$ !$dN;@(CJOJQJaJT!T  Index Heading ,$d ;B*CJ$KHphN"@N "Caption- @CJOJQJ_HmH sH tH T#T Table of Figures. ! 0^`0Z+Z  Endnote Text$/ Ed$x^`ECJT,T Table of Authorities0 ! CJF-F  Macro Text1$a$@CJOJQJt.t  TOA Heading/2$ d<<$dNa$5@CJOJQJH/@2H 4wList,List Char3 h^h4OA4 3wList Char CharD0@1RD List Bullet5 & F j1@1bj 7\}List Number,List Number Char6$ ^a$BOBqB 6\}List Number Char Char>2@1> wList 28 88^8CJ>O> VQHeading Section9CJHOH }#HeadingSectionSubtitle:|J@| *Subtitle$;$dx&dP.;@CJKHOJQJ\_HaJmH sH tH B6@QB  List Bullet 2<8x^8\Ob\ (18Titles FirstPage =xx;@CJOJQJaJl:@al ?(18 List Number 2,List Number 2 Char>((^FOrF >(18List Number 2 Char Char8O8 LCfontCode10Bold54O4 rfontCode CJOJQJ8O2!8 LCfontNormalBold58O18 O fontNormal CJOJQJLC@BL &Body Text IndentD]^BD@1RB List Continue E BE@QbB List Continue 2 F8^8BF@QrB List Continue 3 G^VOV z Title LabH$$$a$5@CJKHOJQJaJLOL 8 Title ManualId5;CJKH$aJD&D Footnote ReferenceCJH*>'> Comment ReferenceCJB*B Endnote ReferenceCJH*BB ] ! Footnote Text MxCJnOn OVQcodeSingleLine Char&N xx7$8$H$^OJQJ`O` NHGcodeSingleLine Char CharOJQJ_HmH sH tH 8O8 7CaptionDrawingPfOf  Response1LineQh^h @CJOJ QJ _HmH sH tH dO"d &codeMultiLinesR @7$8$H$^CJOJQJ^J.O2. )~Header2SCJ8O!8 & codeLastLineTLOBL GcodeIndentSingleLine U^.)@a. i Page NumberFOarF X(18 ListFirstPageW & F+((<Or< W FListFirstPage CharnOqn Z\}NumberedList Char!Y & F >h]h^CJOJQJaJHOH Y FNumberedList Char CharaJ<O< & fontItalic6CJOJQJHO2H LCfontNormalUnderlined>*aJNON IMNumberedListBlock] & F^POP _ListBulletClose Char ^ & F.xROR ^ListBulletClose Char CharOJQJFOF aQListBulletNext Char`(HOH `QListBulletNext Char CharTO"T cNumberedListLeftb$ ^a$BO1B b FNumberedListLeft CharDT@BD VG Block Textdx]^JOQRJ &codeIndentMultiLine eDOQbD &codeIndentLastLinef<Oq< fontItalicBold5@ @O@ VQ codeInLine@ CJOJ QJ aJO +h Part Label=i$d@&P#$-D./M a$B*CJOJQJphO k+hPart Title Char?j$$$d &P#$-D./M a$5@CJ$OJQJaJ$hOh j+hPart Title Char Char'5@CJ$OJQJ_HaJ$mH sH tH HOH Stepl x^ `OJQJnHtHFOF headingmh5CJOJQJnHtHDOD  paragraph1nxOJQJnHtHHOH  paragraph2 o ` OJQJnHtHVOqV X6 ListLaterPage!p & FH@xx^@`LOL  Experimentq5CJOJQJnHtHTOT Section Headingrd;@<CJOJQJJOBJ nU response1s ^ OJQJnHtHJOBJ nU response2t x^ OJQJnHtHNON 8x response3u x^ OJQJnHtHjcj ?Op Table Grid7:V}0v|O| xSection Label Charwdx]^!@B*CJ(EHOJQJaJ0phxOx wSection Label Char Char1@B*CJ(EHOJQJ_HaJ0mH phsH tH POBP codeSingleLineIndent y^aJ6O6 Italics6CJOJQJDOD FontUnderlined>*CJOJQJ6U@6 4 Hyperlink >*B*ph^O"^ I codeFirstLine"} x7$8$H$^OJQJDOD d BodyText3 ~$(a$ @CJaJXOX ~dBodyText3 Char$@CJOJQJ_HaJmH sH tH P3@1P dList 3$ ^a$@CJOJQJP4@1P dList 4$ ^a$@CJOJQJP5@1"P dList 5$ pp^pa$@CJOJQJl7@Q2l d List Bullet 3'$ & F h^`a$@CJOJQJl8@QBl d List Bullet 4'$ & F h^`a$@CJOJQJHObH d Objectives;@CJOJQJaJN;@abN d List Number 3 ^@CJOJQJN<@arN d List Number 4 ^@CJOJQJN=@aN d List Number 5 p^p@CJOJQJXG@QX dList Continue 4$^a$@CJOJQJXH@QX dList Continue 5$p^pa$@CJOJQJl>@l dTitle*$$dd&dPa$@B*CJ0KHOJQJphO dBlock Quotationq$XX$d %d &d 'd -D M N O P Q ]X^Xa$@CJOJQJO dBlock Quotation Firsta$<$d%d'd-D M NOQ]^`<@CJOJQJpOp d Chapter Title$$pdh]p@B*CJ,KHOJQJphVOV d Company Named<;CJ&KH$OJQJO dIcon 19$d`<&`#$+D-D/M a$ 5@B*CJOJQJaJphJO J d Index Base xd CJOJQJ\O\ d Part Subtitle$$hxa$6CJ KHOJQJDOD dPicture $$a$@CJOJQJjOj dSubtitle Cover $d $dN@CJ,KHOJQJ,OR , dTOC BaseB(@a B d Line NumberCJOJQJ^Jo(6Oq 6 d SuperscriptEHH*TO T *<+ Header Char&;>*@<CJOJQJ_HmH sH tH hOh dcodeSingleLine& xx7$8$H$^ OJQJaJdOd dDrawingFrameLeft&`#$/@7$8$H$CJOJQJaJTt T dTable Classic 3:V0    jj0  j0  QB* ph5B*\`JphB* `J ph56B*\]`Jphs  dTable Classic 2#:V0  j% j#j0 jjj%  :5\B*`JphB* `J ph5\br b dTable Classic 1:V0  j#j#j#jj 9B*`Jph6]5\56\]u  dTable Classic 4:V0  jj0 j0 jj X5\B* `J ph56B*\]`JphB* `J ph5\Rv R dTable Colorful 1:V0    j% j% jj%  <B*ph56\]56\]56\]Tw T dTable Colorful 2:V0 j% jj0  j @56\]56B*\]`Jph56\]4x 4 dTable Colorful 3:V0j;$ j0 j%  5B*\`Jph~# d Table Grid 1z:V0jj 6]6]3 d Table Grid 3:V0  jjj0  5\5\hOaB h dObjectiveListFirst @x^`x@CJOJQJ,OQ , dfont14CJaJjOb j d Underlined-DM '>*@CJOJQJ_HaJmH sH tH ^Oq ^ dUnderlined Char'>*@CJOJQJ_HaJmH sH tH XO X dHeading 2 Char$@CJKHOJQJ_HmH sH tH HOA H d BodyTextLeft]^CJB%@ B dEnvelope ReturnOJQJBO B dcode1@x^@CJOJ QJ ^JDO D d Code3Firstx^OJ QJ <Z@ < d Plain Text OJQJ^JRO R dPlain Text CharOJQJ^J_HmH sH tH >O > dCode3First CharOJ QJ ROR d Code3Lastx^OJ QJ _HmH sH tH O dNumberList2Numbers0$ h@xx]h^@`a$@CJOJQJaJFO " F dtitle1 $a$5CJ$OJQJ^JFO 2 F dtitle2 $a$5CJ$OJQJ^JFO B F d Code3Middle ^ OJ QJ ^J2OR 2 dStep2 `tH TOa T }dcodeFirstLine CharOJQJ_HmH sH tH NO q N qdExperiment Char5CJOJQJnHtH8O 8 afontBold5CJOJQJfOb f dObjectiveListFirst Char @CJOJQJ_HmH sH tH NO N ddBlock Text CharOJQJ_HmH sH tH ZO Z DdBody Text Indent CharOJQJ_HmH sH tH >O > dBodyTextLeft CharCJfOA f dBody Text Indent.4($]^`a$FO F dBody Text Indent.4 CharzOA z dBody Text Indent.6.8($]^`a$@CJOJQJ^O ^ d ObjectiveList ^ @CJOJQJ_HmH sH tH H H )3 Balloon TextCJOJ QJ ^J aJ\O! \ ]/AListBulletClose Char Char CharOJQJbO1 b <+Heading 1 Char.5;@CJ KHOJQJ_HaJ mH sH tH   "$&(*,./37=CNX^ ",49>Y_ek*wJ      !"#$%&'(:;<=>?@AB C D E F GHI)  "$&(*,./37=CNX^ ",49>Y_ek*.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKw *+,-5*5*+./01KaC 1 h  0M u^IYsfvx "s/"9!^cffg7 g !j!!"""""#]##$!$%%&t&&0''*((()Z)u))))+3,L,N,_,a,,+-[---(..6///5000U333333444'5=556666666 7/7G7M7N7k7q77777777777888;8A8U8[8^888888899=9e9l999(:.:0:t::;s;;<6<A>k>m>u>w> @.@0@?@O@Q@_@@\BBBDEQEEEEE+FiFFGhGGGH#IFIIItJJ_KKELwLLL3M4MMMMENNNiO|O~OOOOTPPP3QQQQQQQQQQRRXStSS T^TUUUUUVV)V]VVV;WWW~WW'X|XXY3Y]YYZ\Z|ZZZZ[[[[\,\.\\\\]]]]^2^n^^0_1_~___O```NaOaPaoa2b3bbbbcEckccc6ddddeeeeeeeeeeeeeeeffRgSgogghshhhhhioii7jnjjjkkkkkkkkklolplllZm[mm2nnQooppppp qGqHqqrrrrr2spsssttttttCuDu{u|u}u~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuTvUvVvWv[v\v]vzv{v|vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvww w wwwwwwwww$w%w1w2w8w9w@wAwGwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwcwdwewfwgwhwiwjwkwlwwwwwww*0*0*0*00*0*0*0S00*0S0. ^0. ^0. ^0^0*0S0. ^0. ^0^00900.900(010K0K(010 0 0 0 0 0 0 (01(0100000000(01000000(01n0n00. ^0. ^0. ^0. ^0000000000n00n00000R0R0R0R0R0R0R0T00s0t0t0(0100000n000000000000s0t000000s0t0t0000000s0t0u0(010$0$0$s0$t0$t0$u0$n0$n0$0$0$n0$0$0$(010)0)0)0)0)0)0)0)0)n0)0)0)0)0)s0)t0)t0)u0)(010000R00R00R00R0000000000000000R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R0000R00R00R00R00R00R00R00R00R00R00R00R00R00R00R0000s00t00u00(01n0s;0s;n0s;0s;0s;0s;0s;0s;}0s;R0s;R0s;R0s;T0s;n0s;0s;n0s;0s;n0s;0s;0s;0s;0s;0s;0s;0s;0s;0s;s0s;t0s;t0s;u0s;(01o0G0G0G0G0G0G0G0G0G0G0G0G0Gs0G0G0Gs0G0G0Gs0Gu0G0G0G0G0G0G0G0G0Gs0Gt0Gt0Gt0G0G0G0G0G0G0G0GP0G(010R0R0Rs0Rt0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0Rs0Rt0Rt0R0R0R0Rs0Rt0Rt0R(010\ZQ 0\ZQ 0\ZQ 0\Z0Z0Z0Z0Z0Z0Z0Z0Z0Z0Z0Zt0Z0Z0Z0Z0Z0Zt0Z0Z0Z0Z0Z0Z30Z30Zt0Z30Zm0Z00a0a0a0a0a. 0a. ^0a0Yc. ^0a. ^0a. ^0a. ^0a^0d. ^0a. ^0a0&e0&e0&e0&e0&e0&e0&e0&e0&e0&e0&e0&e0&e0&e00&e0&e0&e0&e. ^0a. ^0 a. ^0 a0ah0ah0ahS 0ah. ^0 a. ^0 a0ni. ^0 a. ^0a. ^0a0j00j0j0j0j0j0j0j0j00j0j0j. ^0a. ^0a07m07m. ^0a. ^0a. ^0a. ^0a. ^0a. ^0a0p0p00p0p0p0pD0pT D0pT D0pD0pU D0pU D0pU D0pU D0pU D00pD0@*0@0@0@+0@0@+0@0@00u(0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000H000000000000000000000000000000000000000000000000000000000000000000000000000000000000I090H0000*+,-5*5+./01KaC 1 h  0M u^IYsfvx "s/"9!^cffg7 g !j!!"""""#]##$!$%%&t&&0''*((()Z)u))))+3,L,N,_,a,,+-[---(..6///5000U333333444'5=556666666 7/7G7M7N7k7q77777777777888;8A8U8[8^888888899=9e9l999(:.:0:t::;s;;<6<A>k>m>u>w> @.@0@?@O@Q@_@@\BBBDEQEEEEE+FiFFGhGGGH#IFIIItJJ_KKELwLLL3M4MMMMENNNiO|O~OOOOTPPP3QQQQQQQQQQRRXStSS T^TUUUUUVV)V]VVV;WWW~WW'X|XXY3Y]YYZ\Z|ZZZZ[[[[\,\.\\\\]]]]^2^n^^0_1_~___O```NaOaPaoa2b3bbbbcEckccc6ddddeeeeeeeeeeeeeeeffRgSgogghshhhhhioii7jnjjjkkkkkkkkklolplllZm[mm2nnQooppppp qGqHqqrrrrr2spssstt~uuuTvvvvw9ww*0*0*0*00*0*0*0S00*0S0. ^0. ^0. ^0^0*0S0. ^0. ^00900f900(0i00(0i0U 0U 0U 0U 0U 0U 0U (0i(0i00000000(0i0L0L0L0L0L0L(0in0n00. ^0. ^0. ^0. ^0000000000n00n00000R0R0R0R0R0R0R0T00s0t0t0(0i00000n000000000000s0t000000s0t0t0000000s0t0u0(0i0@$0@$0@$s0@$t0@$t0@$u0@$n0@$n0@$0@$0@$n0@$0@$0@$(0i0)0)0)0)0)0)0)0)0)n0)0)0)0)0)s0)t0)t0)u0)(0i0000R00R00R00R0000000000000000R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R00R0000R00R00R00R00R00R00R00R00R00R00R00R00R00R00R0000s00t00u00(0in0;0;n0;0;0;0;0;0;}0;R0;R0;R0;T0;n0;0;n0;0;n0;0;0;0;0;0;0;0;0;0;s0;t0;t0;u0;(0io0G0G0G0G0G0G0G0G0G0G0G0G@0Gs0G0G0Gs0G0G0Gs0Gu0G0G0G0G0G0G0G0G0Gs0Gt0Gt0Gt0G0G0G0G0G0G0G0GP0G(0i0R0R0Rs0Rt0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0Rs0Rt0Rt0R0R0R0Rs0Rt0Rt0R(0i0ZQ 0ZQ 0ZQ 0Z0D^0D^0D^0D^0D^0D^0D^0D^0D^0D^0D^t0D^0D^0D^0D^0D^0D^t0D^0D^0D^0D^0D^0D^30D^30D^t0D^30D^m0D^00?e0?e}<0n10?e ^0?e ^0?eA. 0Z@0 \A. 0ZA. 0ZA. 0ZA. 0Z@0ZA. 0ZA. 0Z@ 0]@ 0]@0]@0]@0]@0]@0]@0]@0]@0]@0]@0]@0]@0]M901@0]@0]@0]@0]A. 0ZA. 0ZA. 0ZA. 0ZA. 0 ZA. 0 ZA. 0 ZA. 0 ZA. 0 ZA. 0 ZA. 0 ZA. 0 ZA. 0Z@ 02b@ 02b@0]@0]@0]@0]@0]@0]@0]@0]@ 0]@ 0]@ 0]@ 0]}|01}|01}|01}|01@ 0v}|01@0@0}<01@00}<01}<01}<01}<01}<01}<010M90100@0@000000|00hO<00hO@. \0|00<00d<00|<00d(O900"0x* #(,38 >sC\J[SY^]b9g/jkmortxz|.@CEFJLNPRSVXZ\^`bcefhjkmnpw/ us!f't.(6>@kFiNUZ3aejmrw|}}JFADGHIKMOQTUWY[]_adgiloqrstxyzB #!!`  # AA@I0L <(  b  C :"` :V  # L"` LV  # #"`  #.T  "?!+ #" b  C "`+ R$/c+V2  # "` %7) V  # "`*;c+ V  # "`+ *{ c+ V  # "`R$/%V  # "` R$o %fB  s *D+ ##h  3 )"`_"# )fB  s *D # +n  C 1"`GS&?!( 1t  S ("` $N}% (t  S '"`P%& 'ZB  S D'7' n  C &"`&_( &TB  c $DTB  c $DN  S Z? V  # $"`  $\  3 %"`  %TB @ c $D V  # "` b  C  "`  R@ +3 `B B c $D ,W, t  S 9 "`R+, 9lB  0DjJ  L.L. t  S 8 "`w,f. 8`B B c $D 00 t  S 7 "`Y/1 7n  C 6 "`&0}2 6Z  3 5 +3 5Z  3 4 -/ 4Z  3 3 h12 3ZB  S D r,r, lB  0DjJ N2Z2 h  3 "`,- h  3 "` /|t1 n@ M,$N5 Z  3 2O.65 2Z  3 001 0Z  3 /2d4 /Z  3 .m.$N5 .Z  3 - P0"1 -Z  3 , 3+#4 ,t X./ # #" J. 0b  # +"`X. / +ZB  S D //P   "` h. /t -`d/ # #" gz.60b  # *"`-d/ *ZB  S D.`.P   "`-\/n  C ""`q,hi. "T  # !iM, . !TB  C DLL/L/TB  C D/$/@ t -#6 b  C "`t /x!6V  # "`% g5u!6 V  # "`t 56V  # "`( /x!0V  # "`w y/0 fB  s *D d.u!d.h  3 "`-*/ fB  s *Dz".z"6n  C "`!z1#3 t  S "`/ 1 t  S "`0f!c2 B S  ?+,Qefkkkkkkkwl 6$ZtlNh*t']t *"t E t  t6 tDf tLLt8@l8tl0$t(Qt8t@t<tP~ܔ Q~d R~$ S~ܕ T~d U~|7V~d 3b3b.u.u8uRuRuw;b;b7uBuBu[u[uw:*urn:schemas-microsoft-com:office:smarttagsStreet;*urn:schemas-microsoft-com:office:smarttagsaddress9*urn:schemas-microsoft-com:office:smarttagsplace=*urn:schemas-microsoft-com:office:smarttags PlaceName=*urn:schemas-microsoft-com:office:smarttags PlaceType8*urn:schemas-microsoft-com:office:smarttagsCity ]kp%'79JPg')35J &-PWY` Vd4Ax '9U[{7 I X d g y """"""$$( ))%)():)J)W)u))))))********+,A,I,+-=-L-X-y--------0.B.O.].....//0011111133444455'5656 666J6W67 777>7E7`7h77777'808i8v888888899&969L9S9V9a9t999999999::%:8:E:;<<"<H>Q>S>h>i@o@fBlBIKKOO%P-PlRyRRRISVSXSjSkSqSTTeUmUUU5V=VVVVVVVVV;WMWNWTWWWiWjWyWY)Y*Y0YKYSY[[[\#\*\W\^\]]|^^^^9`F`aaaaDdLddddd'e0effffhhhh,i4iii=jEjtj{jjjlllmm mmmmm@nHnnn:o-[-a---..13:3333345'575666666677777=7R7X7x7~7777777888!8I8O888888899&979E9K9t99999:)<3<6<:<<<A>G>p>t> @@4@9@C@I@v@@@@sB}BBBEEEEF FHH#I)IIIIItJzJJJELKLwLzLiOoOOOOOXSkSTTUUUUUVVVVV;WNWWWjWYYY*Y4Y6Y[[[[\"\\\]]^^2^6^~____``QaZaffhhiillllmm2n8nnnQoWoooppqqr%rrrssttt}u~uuuuuvvvvvvvvvvvw%w0w9w?ww3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332K'!!/5000/7K7t:;;<iFG3LDLL4MMMOOPQQQUUV-VW;WZZZ[\\]]1_?_bbEckcddee[ffshhpll n2nnn"oQoooApoprrrrtttttBuzu{u}u~uuuuuuuuuuuuuuu0vUvWv[v]vzv|vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwww wwwww#w%w0w2w7w9w?wAwHwwt}u~uw Marian ManyomarianK|ڬ}dg~vhtu>*@$#_<v6ޔ536HK5D }7P,V??^ vBLvuFfprVģ%xwָI B[' y<+-DȆo^upȧRhC ƠV!>C%\8Jg& E&0|&.&5J(*`@yo2*D-Of8*/*/PU-2xCpUw.`@\3R gJ3j[<6FMx|<}B >AG*4-%+HF;,J8lhAm1JP,V?QL8GD O$@f40V46I WxwָEZНu[jp\&1R)]j_d!aC_fq5waX! 3b+  TbxwָvbL$b4%S:dg6Yn%eZ:f²"+yik[i0vD%m@qnd!uyFvX :Zy0&^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo( ^`hH*h88^8`OJQJo(hHh^`OJQJ^Jo(hHoh  ^ `OJQJo(hHh  ^ `OJQJo(hHhxx^x`OJQJ^Jo(hHohHH^H`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh888^8`789;<CJH*OJQJS*TXaJo(hH.h ^`hH.h  L ^ `LhH.h   ^ `hH.h xx^x`hH.h HLH^H`LhH.h ^`hH.h ^`hH.h L^`LhH. hh^h`hH) ^`hH) 88^8`hH) ^`hH() ^`hH() pp^p`hH()   ^ `hH. @ @ ^@ `hH.   ^ `hH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h @^`o(hH1.:h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.8^`789;<CJH*OJQJS*TXaJo(hH. 88^8`hH. L^`LhH.   ^ `hH.   ^ `hH. xLx^x`LhH. HH^H`hH. ^`hH. L^`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h @@^@`o(hH1.:h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.@h]^`CJOJQJhH. hh^h`hH) ^`hH) 88^8`hH) ^`hH() ^`hH() pp^p`hH()   ^ `hH. @ @ ^@ `hH.   ^ `hH.h8^`789;<CJH*OJQJS*TXaJo(hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h hh^h`hH.h 88^8`hH.h L^`LhH.h   ^ `hH.h   ^ `hH.h xLx^x`LhH.h HH^H`hH.h ^`hH.h L^`LhH.hhh^h`OJQJo(hHh88^8`OJQJ^Jo(hHoh^`OJQJo(hHh  ^ `OJQJo(hHh  ^ `OJQJ^Jo(hHohxx^x`OJQJo(hHhHH^H`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh ^`o(hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h^`5o(hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h+@^@`3*G@CJsHtHaJ_Ho(hH3. h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`o(hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH. hh^h`hH) ^`hH) 88^8`hH) ^`hH() ^`hH() pp^p`hH()   ^ `hH. @ @ ^@ `hH.   ^ `hH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h888^8`789;<CJH*OJQJS*TXaJo(hH.h ^`hH.h  L ^ `LhH.h   ^ `hH.h xx^x`hH.h HLH^H`LhH.h ^`hH.h ^`hH.h L^`LhH.h x@^`xo(hH3. h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h^`OJQJ^Jo(hHohpp^p`OJQJ^Jo(hHoh@ @ ^@ `OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHhPP^P`OJQJ^Jo(hHoh  ^ `OJQJo(hHh(^`3*G@CJsHtHaJ_HhH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`o(hH1.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h x@^`xo(hH2. h^`OJQJo(hHh pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h 88^8`hH.h ^`hH.h  L ^ `LhH.h   ^ `hH.h xx^x`hH.h HLH^H`LhH.h ^`hH.h ^`hH.h L^`LhH.h^`3*G@CJsHtHaJ_H.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`o(hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h88^8`OJQJo(hHh^`OJQJ^Jo(hHoh  ^ `OJQJo(hHh  ^ `OJQJo(hHhxx^x`OJQJ^Jo(hHohHH^H`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hH ^`hH. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`o(hH1. h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h @^`o(hH1.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h @@^@`o(hH1.:h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH. hhh]h^h`OJQJo(hHh^`OJQJo(hHoh^`OJQJ^Jo(hHoh  ^ `OJQJo(hHh` ` ^` `OJQJo(hHh00^0`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh<^`789;<CJH*CJOJQJS*TXaJo(hH.h ^`hH.h pLp^p`LhH.h4@ @ ^@ `789;<CJH*CJS*TXaJo(hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.@h]^`CJOJQJhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h^`OJQJ^Jo(hHohpp^p`OJQJ^Jo(hHoh@ @ ^@ `OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHhPP^P`OJQJ^Jo(hHoh  ^ `OJQJo(hHh88^8`OJQJ^Jo(hHoh^`OJQJ^Jo(hHoh  ^ `OJQJo(hHh  ^ `OJQJo(hHhxx^x`OJQJ^Jo(hHohHH^H`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHhpp^p`OJQJ^Jo(hHoh@ @ ^@ `OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHhPP^P`OJQJ^Jo(hHoh  ^ `OJQJo(hH8^`789;<CJH*OJQJS*TXaJo(hH. 88^8`hH. L^`LhH.   ^ `hH.   ^ `hH. xLx^x`LhH. HH^H`hH. ^`hH. L^`LhH. hhh]h^h`OJQJo(hHh(^`3*G@CJsHtHaJ_HhH.h3^`3*G@CJsHtHaJ_HOJQJo(hHh pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h x@^`xo(hH1. h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.@h]^`CJOJQJhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`o(hH5.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h(^`3*G@CJsHtHaJ_HhH.h7^`3*G@CJsHtHaJ_HOJQJ^Jo(hHoh pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h^`3*G@CJsHtHaJ_H.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h7^`3*G@CJsHtHaJ_HOJQJ^Jo(hHoh7^`3*G@CJsHtHaJ_HOJQJ^Jo(hHoh pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h^`OJQJo(hHh^`OJQJo(hHh pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h hh^h`hH.h 88^8`hH.h L^`LhH.h   ^ `hH.h   ^ `hH.h xLx^x`LhH.h HH^H`hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.8^`789;<CJH*OJQJS*TXaJo(hH. 88^8`hH. L^`LhH.   ^ `hH.   ^ `hH. xLx^x`LhH. HH^H`hH. ^`hH. L^`LhH.h x@^`xo(hH1. h^`OJQJo(hHh pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h (^`(o(hH1.:h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h 88^8`hH.h ^`hH.h  L ^ `LhH.h   ^ `hH.h xx^x`hH.h HLH^H`LhH.h ^`hH.h ^`hH.h L^`LhH.YaC_aC_xQLQLx~}|xxxxhxxXx%%ГxI WI Wܓx Tb TbxS:d36R)]j[<6*Am1J}7|<Uw.EZD%m O5\3Dg&PU-%up<+-RhC gJ3S:dxn%eS:dxg,4/* >AGFvr;,J?^ %+Hf40V+yi0[pB.&Kj_qnuPU- x:Zy 3bOf8*I O}BV!J(vbwap\u[yo2*E&bu:f x @hhh]h^h`CJOJQJhH1x0|@hhh]h^h`CJOJQJhH!x0|@hhh]h^h`CJOJQJhH:tx0|@hhh]h^h`CJOJQJhH&x @h]^`CJOJQJhHdx0|@h]^`CJOJQJhH%"KK         _d                 _d                 8                 _d                 |8                                                     _d                                            _d                 85r                                                     am UfxvV[ K+gvm3V  *k \ Y NG$`z2/8m$;VQfx *J+k[ulj`d4cy9K> T` l !] !F!ax!)""P"g#}#9$($V$n%&Q&Mj&4f'S|'3(JF(y"){):*pb*<+*,[y,)-E.@//0512:"2\$2)3p>3v3 4 4=4,5I6n61p67 77.7l78(18:F;<<(=]=~?D@R@]/A7GAJAB3)B+ABgCDdD`}D=EGGH;HI I7IJ2K{K8L RLzLIM5NDN0\NoOvO R(S*S U;U4V8V$XiXzZ"W\c\G]G]O]_^_^"_(_J_=d_0L`ar'apZabbb-c e?e^fqfg Zg hh94hX@hOh*dhmhhnhJ}h i2l3l:l.`lVjnpn?OpA rsRPt|tzuv4wwv&wKw8xsxx{r}~)~:~?~+-Kem_am0nIz0uR|b[9pze+HnWksX(HT_^muqTV`bs$})$U0#!D5BOzL}e nUhteDna30*15+h,1W (X6lW:LNfc-i`ISnQ2!(VGtc W3Uc5{Xgn`h}ll ;]3E5gT_| a-$9k:aulC` xFsqt& /WYxjk7'd 1V*o;?F~ uo=5ET Z\w|  Ec ** FYu,$Jt9MwLC~i R/u~<d8@Ubep|Y8{,0b_u  HG$;\Q) Bp1?O\4=jy r6 ]k~ry,kx4S6{DQwZ . u\}as(rR kthwz op~uuWvwal@@W"(uvw@~@UnknownPearson Technology Support Gz Times New Roman5Symbol3& z Arial7Century?& Arial Black?5 z Courier NewE& Century Gothic]Century SchoolbookCentury;Wingdings7&  VerdanaO1 CourierCourier New5& zaTahoma#qh  fFz`%`%!24dss  3Q[H)lManual Marian Manyomarian8K                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J Oh+'0  8 D P \hpxManualanu Marian Manyooariari Normal.dotomariand23iMicrosoft Word 10.0@\'@x?@}_@$<`՜.+,D՜.+,4 hp|  LC%sA Manual Title0lt|UseDefaultLanguageVersionLCID hM7w   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmopqrstuwxyz{|}Root Entry FP_Data |1TableWordDocument3SummaryInformation(nDocumentSummaryInformation8vCompObjj  FMicrosoft Word Document MSWordDocWord.Document.89q