Diff of /trunk/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj [r35] .. [r36]  Maximize  Restore

Switch to unified view

a/trunk/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj b/trunk/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj
1
Gx_lM~!0…jüoüK}”&þ)2(Ñ#1System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument    L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
1
Gx_li!0…jüoiL)x~Ø2ðæ.:System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument    L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
2
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN N UM            (    sName := 'Normal Operation', ì                    dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô                    dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö                    dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \                   eInitialState := PACK_ML.State.Aborted,2                     xActive := TRUE);  xInit := TRUE; END_IF4IF Client.bReadyToPLC THEN:   CASE Client.iCommandToPLC OF" 0 :    //Handshake   1 :    //Lock       IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN       0       //First Lock Function!         ;"–     ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN    #2       //Second Lock Function$
2
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN N UM            (    sName := 'Normal Operation', ì                    dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô                    dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö                    dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \                   eInitialState := PACK_ML.State.Aborted,2                     xActive := TRUE);  xInit := TRUE; END_IF4IF Client.bReadyToPLC THEN:   CASE Client.iCommandToPLC OF" 0 :    //Handshake   1 :    //Lock       IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN       0       //First Lock Function!         ;"–     ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN    #2       //Second Lock Function$
3
          ; %    END_IF& 2 :    //Key'   3 :    //IO( 4 :    //Media)   5 :    //Hint* 6 :    //State +p    IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN      ,&       StateComplete();-x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN      .       Start();/v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN    0       Stop();1x      ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN      2       Reset();3x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN      4       Abort();5x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN      6       Clear();7v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN    8       Hold();9z      ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN    :       Unhold(); ;|    ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN      <       Suspend();=€       ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN      >       UnSuspend();?    @ END_CASEA6 Client.iCommandToPLC := 0;B8 Client.sCommandToPLC := '';C:   Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F   ;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I2PACK_ML.State.Complete : J.PACK_ML.State.Execute :Kˆ    // Work out the angle FROM the x horizontal winding anti-clockwise L(   //in screen space. M   // Nr   // The value returned from the following should be 315. O // <pre>P* // x,y -------------Q //     |  1,1R   //     |    \S   //     |     \T" //     |     2,2U // </pre>V W’  // NOTE: Remember that most math has the Y axis as positive above the X.X”    // However, for screens we have Y as positive below. For this reason, Yz    // the Y values are inverted to get the expected results.ZT    //final double deltaY = (p1.y - p2.y);[T    //final double deltaX = (p2.x - p1.x);\    //final double result = Math.toDegrees(Math.atan2(deltaY, deltaX)); ]j    //return (result < 0) ? (360d + result) : result;^d   actualPositionLinear1 :=  AI_DistanceRight - 244;_b   actualPositionLinear2 :=  AI_DistanceLeft - 244;`& deltaY := 250 - 0;ar deltaX := actualPositionLinear1 - actualPositionLinear2;bV angle := OSCAT_BASIC.ATAN2(deltaY,deltaX);c\ targetPositionBoat := angle * 180 / 3.1415;    d@ IF targetPositionBoat <= 0 THENe4      targetPositionBoat := 0;fJ ELSIF targetPositionBoat >= 360 THENg8    targetPositionBoat := 360;h END_IFiD BoatAngle :=  targetPositionBoat;jB   IF Client.ActualStep >= 300 THENkN    AO_AnalogRefrence := AI_DistanceLeft;l
3
          ; %    END_IF& 2 :    //Key'   3 :    //IO( 4 :    //Media)   5 :    //Hint* 6 :    //State +p    IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN      ,&       StateComplete();-x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN      .       Start();/v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN    0       Stop();1x      ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN      2       Reset();3x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN      4       Abort();5x    ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN      6       Clear();7v    ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN    8       Hold();9z      ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN    :       Unhold(); ;|    ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN      <       Suspend();=€       ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN      >       UnSuspend();?    @ END_CASEA6 Client.iCommandToPLC := 0;B8 Client.sCommandToPLC := '';C:   Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F   ;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I2PACK_ML.State.Complete : J.PACK_ML.State.Execute :Kˆ    // Work out the angle FROM the x horizontal winding anti-clockwise L(   //in screen space. M   // Nr   // The value returned from the following should be 315. O // <pre>P* // x,y -------------Q //     |  1,1R   //     |    \S   //     |     \T" //     |     2,2U // </pre>V W’  // NOTE: Remember that most math has the Y axis as positive above the X.X”    // However, for screens we have Y as positive below. For this reason, Yz    // the Y values are inverted to get the expected results.ZT    //final double deltaY = (p1.y - p2.y);[T    //final double deltaX = (p2.x - p1.x);\    //final double result = Math.toDegrees(Math.atan2(deltaY, deltaX)); ]j    //return (result < 0) ? (360d + result) : result;^d   actualPositionLinear1 :=  AI_DistanceRight - 244;_b   actualPositionLinear2 :=  AI_DistanceLeft - 244;`& deltaY := 250 - 0;ar deltaX := actualPositionLinear1 - actualPositionLinear2;bV angle := OSCAT_BASIC.ATAN2(deltaY,deltaX);c\ targetPositionBoat := angle * 180 / 3.1415;    d@ IF targetPositionBoat <= 0 THENe4      targetPositionBoat := 0;fJ ELSIF targetPositionBoat >= 360 THENg8    targetPositionBoat := 360;h END_IFiD BoatAngle :=  targetPositionBoat;jB   IF Client.ActualStep >= 300 THENkN    AO_AnalogRefrence := AI_DistanceLeft;l
4
    ELSEm4    AO_AnalogRefrence := 0; n4 IF CMMT_ST.AxisError THENo      Abort();pX IF BoatAngle >= 85 AND BoatAngle <= 95 THENq"      Steady := TRUE;r$      Steady := FALSE;s´    AO_Spare2 := REAL_TO_WORD(817 -((TIME_TO_REAL(SteadyTimer.ET)/TIME_TO_REAL(T#25S))*817));t,   IF SteadyTimer.Q THENu$      StateComplete();vD IF puzzleTimer.iProcess = 10 THENw‚     SendCommand(Command := CommandType.Media ,Value := 'Ballast');   xB IF Client.Mode = Mode.Mode1 THENyF    IF puzzleTimer.iProcess = 50 THENzê        SendCommand(Command := CommandType.Hint ,Value := 'Use the terminal to control the right axis to ballast tank.'); {       |8 CASE Client.ActualStep OF    }
4
    ELSEm4    AO_AnalogRefrence := 0; n4 IF CMMT_ST.AxisError THENo      Abort();pX IF BoatAngle >= 85 AND BoatAngle <= 95 THENq"      Steady := TRUE;r$      Steady := FALSE;s´    AO_Spare2 := REAL_TO_WORD(817 -((TIME_TO_REAL(SteadyTimer.ET)/TIME_TO_REAL(T#25S))*817));t,   IF SteadyTimer.Q THENu$      StateComplete();vD IF puzzleTimer.iProcess = 10 THENw‚     SendCommand(Command := CommandType.Media ,Value := 'Ballast');   xB IF Client.Mode = Mode.Mode1 THENyF    IF puzzleTimer.iProcess = 50 THENzê        SendCommand(Command := CommandType.Hint ,Value := 'Use the terminal to control the right axis to ballast tank.'); {       |8 CASE Client.ActualStep OF    }
5
       0:   ~,       CASE Client.Mode OFP            Mode.Mode1: // Updown diffrent speed€2                CASE Client.Level OF,                   Level.Beginner: ‚4                      speed := 100;                ƒ2                   Level.Placeholder1:„(                    speed := 200;…2                 Level.Intermediate:†(                    speed := 300;‡2                 Level.Placeholder2:ˆ(                    speed := 400;‰*                 Level.Advanced:Š(                    speed := 500;‹              END_CASEŒ<                Client.ActualStep := 100;:           Mode.Mode2: // Location    Ž                END_CASE      <                Client.ActualStep := 200;<           Mode.Mode3: // Analog             ‘H                Client.ActualStep := 300;            ’                   “          END_CASE      ”       //10:•<     //   IF CMMT_ST.AxisError THEN–<     //      Client.ActualStep := 11;—       //   ELSE˜D       //      Client.ActualStep := 20;            ™       //   END_IF         š       //11:›*     //   CMMT_ST.Reset();œ@       //   Client.ActualStep := 10;                //20: ž@       //   IF NOT CMMT_ST.Enabled THENŸB     //      Client.ActualStep := 21;          D       //      Client.ActualStep := 30;            ¡       //   END_IF¢       //21:£J     //   enable := CMMT_ST.EnableDrive();¤&       //   IF enable THEN¥<       //      Client.ActualStep := 20;¦<       //      Client.ActualStep := 10;§       //30: ¨H       //   IF NOT CMMT_ST.HomingValid THEN©<     //      Client.ActualStep := 31;ªD       //      Client.ActualStep := 40;            «       //31:¬v     //   home := CMMT_ST.Home(Position := 0,HomingMethod := 0);­*       //   IF home THEN            ®h       //      Client.ActualStep := Client.ActualStep := 32; ¯       //32:°H     //   IF CMMT_ST.HomingValid THEN          ±>       //      Client.ActualStep := 40;   ²       //   END_IF      ³
5
       0:   ~,       CASE Client.Mode OFP            Mode.Mode1: // Updown diffrent speed€2                CASE Client.Level OF,                   Level.Beginner: ‚4                      speed := 100;                ƒ2                   Level.Placeholder1:„(                    speed := 200;…2                 Level.Intermediate:†(                    speed := 300;‡2                 Level.Placeholder2:ˆ(                    speed := 400;‰*                 Level.Advanced:Š(                    speed := 500;‹              END_CASEŒ<                Client.ActualStep := 100;:           Mode.Mode2: // Location    Ž                END_CASE      <                Client.ActualStep := 200;<           Mode.Mode3: // Analog             ‘H                Client.ActualStep := 300;            ’                   “          END_CASE      ”       //10:•<     //   IF CMMT_ST.AxisError THEN–<     //      Client.ActualStep := 11;—       //   ELSE˜D       //      Client.ActualStep := 20;            ™       //   END_IF         š       //11:›*     //   CMMT_ST.Reset();œ@       //   Client.ActualStep := 10;                //20: ž@       //   IF NOT CMMT_ST.Enabled THENŸB     //      Client.ActualStep := 21;          D       //      Client.ActualStep := 30;            ¡       //   END_IF¢       //21:£J     //   enable := CMMT_ST.EnableDrive();¤&       //   IF enable THEN¥<       //      Client.ActualStep := 20;¦<       //      Client.ActualStep := 10;§       //30: ¨H       //   IF NOT CMMT_ST.HomingValid THEN©<     //      Client.ActualStep := 31;ªD       //      Client.ActualStep := 40;            «       //31:¬v     //   home := CMMT_ST.Home(Position := 0,HomingMethod := 0);­*       //   IF home THEN            ®h       //      Client.ActualStep := Client.ActualStep := 32; ¯       //32:°H     //   IF CMMT_ST.HomingValid THEN          ±>       //      Client.ActualStep := 40;   ²       //   END_IF      ³
6
                ´       //40:µH     //   Client.ActualStep := tempStep;   ¶       100:·d          bMove := CMMT_ST.MoveAbsolute(Position:= 150 , ¸,           Velocity:= speed, ¹0             Acceleration:= 500, º0             Deceleration:= 500, »"             Jerk:= 1000, ¼X           BufferMode:= MC_BUFFER_MODE.mcBuffered, ½              ErrorID=> , ¾(             ErrorString=> );¿           IF bMove THENÀ^           Client.ActualStep := Client.ActualStep + 1;Á        END_IFÂ       101:Ã@          IF CMMT_ST.TargetReached THENÄ        END_IF         Å       102:Æd          bMove := CMMT_ST.MoveAbsolute(Position:= 400 , Ç     103:È:             Client.ActualStep := 100;É        END_IF      Ê       200:Ër          CASE OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4) OFÌ             1:ÍF                Client.ActualStep := 210;             Î             2:Ï>                Client.ActualStep := 220; Ð             3:Ñ>                Client.ActualStep := 230; Ò             4:Ó>                Client.ActualStep := 240; Ô          END_CASEÕ"       210: // Point 1Öd        bMove := CMMT_ST.MoveAbsolute(Position:= 100 , ×0        DO_Balance_1 := TRUE;Ø     211:Ù:             Client.ActualStep := 200;Ú4           DO_Balance_1 := FALSE;Û          END_IF   Ü"       220: // Point 2Ýd        bMove := CMMT_ST.MoveAbsolute(Position:= 200 , Þ0        DO_Balance_2 := TRUE;ß     221:à4             DO_Balance_2 := FALSE;á"       230: // Point 3âd        bMove := CMMT_ST.MoveAbsolute(Position:= 300 , ã0        DO_Balance_3 := TRUE;ä     231:å4             DO_Balance_3 := FALSE;æ&       240: // Point 4    ç2             DO_Balance_4 := TRUE;è     241:éB       300: // Move to random locationê       bMove := CMMT_ST.MoveAbsolute(Position:= OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400) , ë`             Client.ActualStep := Client.ActualStep + 10;ì       310:í:             Client.ActualStep := 300;î  END_CASE   ï2PACK_ML.State.Resetting :ð*   CMMT_ST.ResetHalt();ñ&    StateComplete();      ò0PACK_ML.State.Starting :ó<       IF NOT CMMT_ST.Enabled THENô@           Client.ActualStep := 100;       õ          ELSEö@             Client.ActualStep := 10;            ÷       10: øD          IF NOT CMMT_ST.HomingValid THENù:           Client.ActualStep := 110;úB           Client.ActualStep := 300;          ûF          enable := CMMT_ST.EnableDrive();ü"          IF enable THENý6             Client.ActualStep := 0;þ           Abort();ÿ       110:€r          home := CMMT_ST.Home(Position := 0,HomingMethod := 0);&          IF home THEN            ‚b             Client.ActualStep := Client.ActualStep + 10;   ƒ       120:„D          IF CMMT_ST.HomingValid THEN          …:             Client.ActualStep := 10;   †       300:‡(          StateComplete();   ˆ4PACK_ML.State.Completing :‰$ Steady :=  False;Š$  StateComplete();   ‹0PACK_ML.State.Aborting :Œ0 CMMT_ST.DisableDrive();"  StateComplete();Ž.PACK_ML.State.Stopping:4   CASE Client.ActualStep OF     0:‘>          StopLinear.Execute := FALSE;’6          Client.ActualStep := 10;“
6
                ´       //40:µH     //   Client.ActualStep := tempStep;   ¶       100:·d          bMove := CMMT_ST.MoveAbsolute(Position:= 150 , ¸,           Velocity:= speed, ¹0             Acceleration:= 500, º0             Deceleration:= 500, »"             Jerk:= 1000, ¼X           BufferMode:= MC_BUFFER_MODE.mcBuffered, ½j             Direction:= Festo_PtP_Base.MC_DIRECTION.mcNormal,¾            ErrorID=> , ¿(             ErrorString=> );À           IF bMove THENÁ^           Client.ActualStep := Client.ActualStep + 1;        END_IFÃ       101:Ä@          IF CMMT_ST.TargetReached THENÅ        END_IF         Æ       102:Çd          bMove := CMMT_ST.MoveAbsolute(Position:= 400 , È     103:É:             Client.ActualStep := 100;Ê        END_IF      Ë       200:Ìr          CASE OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4) OFÍ             1:ÎF                Client.ActualStep := 210;             Ï             2:Ð>                Client.ActualStep := 220; Ñ             3:Ò>                Client.ActualStep := 230; Ó             4:Ô>                Client.ActualStep := 240; Õ          END_CASEÖ"       210: // Point 1×d        bMove := CMMT_ST.MoveAbsolute(Position:= 100 , Ø0        DO_Balance_1 := TRUE;Ù     211:Ú:             Client.ActualStep := 200;Û4           DO_Balance_1 := FALSE;Ü          END_IF   Ý"       220: // Point 2Þd        bMove := CMMT_ST.MoveAbsolute(Position:= 200 , ß0        DO_Balance_2 := TRUE;à     221:á4             DO_Balance_2 := FALSE;â"       230: // Point 3ãd        bMove := CMMT_ST.MoveAbsolute(Position:= 300 , ä0        DO_Balance_3 := TRUE;å     231:æ4             DO_Balance_3 := FALSE;ç&       240: // Point 4    è2             DO_Balance_4 := TRUE;é     241:êB       300: // Move to random locationë       bMove := CMMT_ST.MoveAbsolute(Position:= OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400) , ì`             Client.ActualStep := Client.ActualStep + 10;í       310:î:             Client.ActualStep := 300;ï  END_CASE   ð2PACK_ML.State.Resetting :ñ*   CMMT_ST.ResetHalt();ò&    StateComplete();      ó0PACK_ML.State.Starting :ô<       IF NOT CMMT_ST.Enabled THENõ@           Client.ActualStep := 100;       ö          ELSE÷@             Client.ActualStep := 10;            ø       10: ùD          IF NOT CMMT_ST.HomingValid THENú:           Client.ActualStep := 110;ûB           Client.ActualStep := 300;          üF          enable := CMMT_ST.EnableDrive();ý"          IF enable THENþ6             Client.ActualStep := 0;ÿ           Abort();€       110:r          home := CMMT_ST.Home(Position := 0,HomingMethod := 0);‚&          IF home THEN            ƒb             Client.ActualStep := Client.ActualStep + 10;   „       120:…D          IF CMMT_ST.HomingValid THEN          †:             Client.ActualStep := 10;   ‡       300:ˆ(          StateComplete();   ‰4PACK_ML.State.Completing :Š$ Steady :=  False;‹$  StateComplete();   Œ0PACK_ML.State.Aborting :0 CMMT_ST.DisableDrive();Ž"  StateComplete();.PACK_ML.State.Stopping:4   CASE Client.ActualStep OF‘     0:’>          StopLinear.Execute := FALSE;“6          Client.ActualStep := 10;”
7
       10:<        StopLinear.Execute := TRUE;6        Client.ActualStep := 20;
7
       10:<        StopLinear.Execute := TRUE;6        Client.ActualStep := 20;
8
       20:6        IF StopLinear.Done THEN;˜H             StopLinear.Execute := FALSE;            :             Client.ActualStep := 30;   š
8
       20:˜6        IF StopLinear.Done THEN;H             StopLinear.Execute := FALSE;            š:             Client.ActualStep := 30;   
9
       30:›.PACK_ML.State.Clearing:œ8       IF CMMT_ST.AxisError THEN&        CMMT_ST.Reset();ž:          Client.ActualStep := 0;       ŸEND_CASE LClient.ActualState := UM.CurrentState;¡>messageQueue(Client := Client);¢fIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN£(    // Emergency Abort.¤  Abort();   ¥END_IF ¦HAntiJitter(IN:=NOT Steady,PT:=T#1S);§^SteadyTimer(IN:=NOT AntiJitter.Q, PT:= T#25S );¨äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);©PClient.Progress := puzzleTimer.iProcess;ªHIF puzzleTimer.iProcess >= 100 THEN  «    //Stop();¬J// couple axis to functionblocks here­^LinearStatus (Axis := CMMT_ST, Enable := TRUE);®:StopLinear (Axis := CMMT_ST);¯Interface°L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}±VFUNCTION_BLOCK BalastTankPuzzleStateMachine²VAR_IN_OUT³.   Client : PuzzleClient;´END_VARµVAR0  UM   : PACK_ML.UnitMode; ·j    xInit          : BOOL := FALSE; // Flag for initialization¸8  puzzleTimer    : PuzzleTimer;¹P   moveAbsolute  : MC_MoveAbsolute_Festo;º<    StopLinear     : MC_Stop_Festo;»H    LinearStatus   : MC_ReadStatus_Festo;¼*    //tempStep : INT;½$   enable        : BOOL;¾   home        : BOOL;¿"  bMove          : BOOL;À  speed          :INT;Á<  actualPositionLinear1 : REAL;Â<  actualPositionLinear2 : REAL;Ã6  actualPositionBoat : REAL;Ä    deltaY : REAL;Å    deltaX : REAL;Æ    angle : REAL;Ç6  targetPositionBoat : REAL;È~    //GenRdn : OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400);Éx    //GenRdn2 : OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4);Ê0  Steady : BOOL := FALSE;Ë(  SteadyTimer : TON ;Ì&  AntiJitter : TON ;Í    bl : BLINK;Î  ii: INT;Ï:    messageQueue : MessageQueue;Ð"UniqueIdGeneratorÑ2066ÒPOULevelÓL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÔStandardÕ ChildObjectGuidsÖ8System.Collections.ArrayList×,AddAttributeSubsequentØboolÐÐ-ÐÐ E
9
       30:œ.PACK_ML.State.Clearing:8       IF CMMT_ST.AxisError THENž&        CMMT_ST.Reset();Ÿ:          Client.ActualStep := 0;        END_CASE¡LClient.ActualState := UM.CurrentState;¢>messageQueue(Client := Client);£fIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN¤(    // Emergency Abort.¥  Abort();   ¦END_IF §HAntiJitter(IN:=NOT Steady,PT:=T#1S);¨^SteadyTimer(IN:=NOT AntiJitter.Q, PT:= T#25S );©äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);ªPClient.Progress := puzzleTimer.iProcess;«HIF puzzleTimer.iProcess >= 100 THEN  ¬    //Stop();­J// couple axis to functionblocks here®^LinearStatus (Axis := CMMT_ST, Enable := TRUE);¯:StopLinear (Axis := CMMT_ST);°Interface±L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}²VFUNCTION_BLOCK BalastTankPuzzleStateMachine³VAR_IN_OUT´.   Client : PuzzleClient;µEND_VARVAR·0  UM   : PACK_ML.UnitMode; ¸j    xInit          : BOOL := FALSE; // Flag for initialization¹8  puzzleTimer    : PuzzleTimer;ºP   moveAbsolute  : MC_MoveAbsolute_Festo;»<    StopLinear     : MC_Stop_Festo;¼H    LinearStatus   : MC_ReadStatus_Festo;½*    //tempStep : INT;¾$   enable        : BOOL;¿   home        : BOOL;À"  bMove          : BOOL;Á  speed          :INT;Â<  actualPositionLinear1 : REAL;Ã<  actualPositionLinear2 : REAL;Ä6  actualPositionBoat : REAL;Å    deltaY : REAL;Æ    deltaX : REAL;Ç    angle : REAL;È6  targetPositionBoat : REAL;É~    //GenRdn : OSCAT_BASIC.RDM2(last :=0, low := 100,high := 400);Êx    //GenRdn2 : OSCAT_BASIC.RDM2(last :=0, low := 1,high := 4);Ë0  Steady : BOOL := FALSE;Ì(  SteadyTimer : TON ;Í&  AntiJitter : TON ;Î    bl : BLINK;Ï  ii: INT;Ð:    messageQueue : MessageQueue;Ñ"UniqueIdGeneratorÒ2073ÓPOULevelÔL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÕStandardÖ ChildObjectGuids×8System.Collections.ArrayListØ,AddAttributeSubsequentÙboolÐÐ-ÐÐ E
10
ÚÐÐ
­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ÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­ŒÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ºÚÐ-VÐÐ
­¹ÚÐ-ÐÐ
­ÚÐ-WÐÐ
­’ÚÐ-XÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­–ÚÐ-\ÐÐ
­—ÚÐ-]ÐÐ
­™ÚÐ-ÐÐ
­¬ÚÐ-^ÐÐ
­›ÚÐ-_ÐÐ
­¸ÚÐ-ÐÐ
­œÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-bÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-cÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-dÐÐ
­¤ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­¦ÚÐ-gÐÐ
­§ÚÐ-hÐÐ
­¨ÚÐ-ÐÐ
­«ÚÐ-iÐÐ
­¶ÚÐ-jÐÐ
­&ÚÐ-kÐÐ
­(ÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­'ÚÐ-hÐÐ
­$ÚÐ-ÐÐ
­KÚÐ-nÐÐ
­MÚÐ-oÐÐ
­NÚÐ-hÐÐ
­LÚÐ-ÐÐ
­“ÚÐ-pÐÐ
­–ÚÐ-qÐÐ
­™ÚÐ-lÐÐ
­šÚÐ-rÐÐ
­—ÚÐ-hÐÐ
­›ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¥ÚÐ-sÐÐ
­£ÚÐ-ÐÐ
­œÚÐ-tÐÐ
­ÚÐ-uÐÐ
­žÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-vÐÐ
­µÚÐ-wÐÐ
­¶ÚÐ-hÐÐ
­
10
áÐÐ
­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ÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­ŒÚÐ-KÐÐ
­½ÚÐ-LÐÐ
­¾ÚÐ-MÐÐ
­¿ÚÐ-NÐÐ
­ÀÚÐ-OÐÐ
­ÁÚÐ-PÐÐ
­ÂÚÐ-QÐÐ
­ÃÚÐ-RÐÐ
­ÄÚÐ-SÐÐ
­ÅÚÐ-TÐÐ
­ÆÚÐ-UÐÐ
­ºÚÐ-VÐÐ
­¹ÚÐ-ÐÐ
­ÚÐ-WÐÐ
­’ÚÐ-XÐÐ
­“ÚÐ-YÐÐ
­”ÚÐ-ZÐÐ
­•ÚÐ-[ÐÐ
­–ÚÐ-\ÐÐ
­—ÚÐ-]ÐÐ
­™ÚÐ-ÐÐ
­¬ÚÐ-^ÐÐ
­›ÚÐ-_ÐÐ
­¸ÚÐ-ÐÐ
­œÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-bÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-cÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-dÐÐ
­¤ÚÐ-eÐÐ
­¥ÚÐ-fÐÐ
­¦ÚÐ-gÐÐ
­§ÚÐ-hÐÐ
­¨ÚÐ-ÐÐ
­«ÚÐ-iÐÐ
­¶ÚÐ-jÐÐ
­&ÚÐ-kÐÐ
­(ÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­'ÚÐ-hÐÐ
­$ÚÐ-ÐÐ
­KÚÐ-nÐÐ
­MÚÐ-oÐÐ
­NÚÐ-hÐÐ
­LÚÐ-ÐÐ
­“ÚÐ-pÐÐ
­–ÚÐ-qÐÐ
­™ÚÐ-lÐÐ
­šÚÐ-rÐÐ
­—ÚÐ-hÐÐ
­›ÚÐ-ÐÐ
­¢ÚÐ-ÐÐ
­¤ÚÐ-ÐÐ
­¥ÚÐ-sÐÐ
­£ÚÐ-ÐÐ
­œÚÐ-tÐÐ
­ÚÐ-uÐÐ
­žÚÐ-hÐÐ
­­ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­³ÚÐ-ÐÐ
­´ÚÐ-vÐÐ
­µÚÐ-wÐÐ
­¶ÚÐ-hÐÐ
­
11
ÚÐ-xÐÐ
­
ÚÐ-yÐÐ
­ÚÐ-zÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-hÐÐ
­¹ÚÐ-ÐÐ
­¯ÚÐ-{ÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-|ÐÐ
­¸ÚÐ-}ÐÐ
­UÚÐ-~ÐÐ
­ºÚÐ-ÐÐ
­»ÚÐ-€ÐÐ
­¼ÚÐ-ÐÐ
­½ÚÐ-‚ÐÐ
­¾ÚÐ-ƒÐÐ
­¿ÚÐ-„ÐÐ
­ÀÚÐ-…ÐÐ
­ÁÚÐ-†ÐÐ
­ÂÚÐ-‡ÐÐ
­ÃÚÐ-ˆÐÐ
­ÄÚÐ-‰ÐÐ
­ÅÚÐ-ŠÐÐ
­ÆÚÐ-‹ÐÐ
­ÇÚÐ-ŒÐÐ
­ÉÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-ŽÐÐ
­ÊÚÐ-ÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-‘ÐÐ
­ÍÚÐ-’ÐÐ
­ÎÚÐ-“ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-”ÐÐ
­XÚÐ-•ÐÐ
­ZÚÐ-–ÐÐ
­[ÚÐ-—ÐÐ
­\ÚÐ-˜ÐÐ
­]ÚÐ-™ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-šÐÐ
­`ÚÐ-›ÐÐ
­aÚÐ-œÐÐ
­’ÚÐ-ÐÐ
­dÚÐ-žÐÐ
­eÚÐ-ŸÐÐ
­fÚÐ-—ÐÐ
­gÚÐ- ÐÐ
­hÚÐ-¡ÐÐ
­‚ÚÐ-{ÐÐ
­…ÚÐ-¢ÐÐ
­†ÚÐ-£ÐÐ
­‡ÚÐ-¤ÐÐ
­ˆÚÐ-¥ÐÐ
­‰ÚÐ-—ÐÐ
­‹ÚÐ-¦ÐÐ
­ƒÚÐ-¡ÐÐ
­„ÚÐ-{ÐÐ
­iÚÐ-§ÐÐ
­jÚÐ-¨ÐÐ
­kÚÐ-©ÐÐ
­lÚÐ-—ÐÐ
­mÚÐ-ªÐÐ
­nÚÐ-™ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-«ÐÐ
­xÚÐ-¬ÐÐ
­yÚÐ-­ÐÐ
­zÚÐ-®ÐÐ
­{ÚÐ-¡ÐÐ
­|ÚÐ-¯ÐÐ
­}ÚÐ-°ÐÐ
­~ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­€ÚÐ-³ÐÐ
­ÚÐ-´ÐÐ
­bÚÐ-µÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-¶ÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-·ÐÐ
­ÒÚÐ-¸ÐÐ
­ÓÚÐ-¹ÐÐ
­ÔÚÐ-ºÐÐ
­ÕÚÐ-»ÐÐ
­ÖÚÐ-¼ÐÐ
­×ÚÐ-½ÐÐ
­ØÚÐ-¾ÐÐ
­ÙÚÐ-¿ÐÐ
­ÚÚÐ-ÀÐÐ
­ÛÚÐ-ÁÐÐ
­ÜÚÐ-ÂÐÐ
­ÝÚÐ-ÃÐÐ
­ÞÚÐ-ÀÐÐ
­ßÚÐ-ÄÐÐ
­àÚÐ-ÅÐÐ
­áÚÐ-ÆÐÐ
­âÚÐ-¸ÐÐ
­ãÚÐ-¹ÐÐ
­äÚÐ-ºÐÐ
­åÚÐ-»ÐÐ
­æÚÐ-¼ÐÐ
­çÚÐ-½ÐÐ
­èÚÐ-¾ÐÐ
­éÚÐ-¿ÐÐ
­êÚÐ-ÀÐÐ
­ëÚÐ-ÁÐÐ
­ìÚÐ-ÇÐÐ
­íÚÐ-ÃÐÐ
­îÚÐ-ÈÐÐ
­ïÚÐ-ÉÐÐ
­ðÚÐ-ÊÐÐ
­ÊÚÐ-ËÐÐ
­AÚÐ-ÌÐÐ
­GÚÐ-ÍÐÐ
­CÚÐ-ÎÐÐ
­HÚÐ-ÏÐÐ
­DÚÐ-ÐÐÐ
­IÚÐ-ÑÐÐ
­EÚÐ-ÒÐÐ
­JÚÐ-ÓÐÐ
­BÚÐ-ÔÐÐ
­ËÚÐ-{ÐÐ
­ÍÚÐ-ÕÐÐ
­ÓÚÐ-ÖÐÐ
­ÔÚÐ-¸ÐÐ
­ÕÚÐ-¹ÐÐ
­ÖÚÐ-ºÐÐ
­×ÚÐ-»ÐÐ
­ØÚÐ-¼ÐÐ
­ÙÚÐ-½ÐÐ
­ÚÚÐ-¾ÐÐ
­ÚÐ-×ÐÐ
­ÛÚÐ-¿ÐÐ
­ÜÚÐ-ÀÐÐ
­ÒÚÐ-ÁÐÐ
­ÝÚÐ-ØÐÐ
­ßÚÐ-ÃÐÐ
­àÚÐ-ÙÐÐ
­ÚÐ-ÚÐÐ
­ÞÚÐ-ÛÐÐ
­ÏÚÐ-ÜÐÐ
­âÚÐ-ÝÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­èÚÐ-½ÐÐ
­éÚÐ-¾ÐÐ
­ÚÐ-ÞÐÐ
­êÚÐ-¿ÐÐ
­ëÚÐ-ÀÐÐ
­ìÚÐ-ÁÐÐ
­íÚÐ-ßÐÐ
­îÚÐ-ÃÐÐ
­ÚÐ-àÐÐ
­ïÚÐ-ÙÐÐ
­áÚÐ-ÛÐÐ
­ðÚÐ-áÐÐ
­ÚÐ-âÐÐ
­ñÚÐ-¸ÐÐ
­òÚÐ-¹ÐÐ
­óÚÐ-ºÐÐ
­ôÚÐ-»ÐÐ
­õÚÐ-¼ÐÐ
­öÚÐ-½ÐÐ
­÷ÚÐ-¾ÐÐ
­ÚÐ-ãÐÐ
­øÚÐ-¿ÐÐ
­ùÚÐ-ÀÐÐ
­úÚÐ-ÁÐÐ
­ûÚÐ-äÐÐ
­üÚÐ-ÃÐÐ
­ ÚÐ-åÐÐ
­ýÚÐ-ÙÐÐ
­ÐÚÐ-ÛÐÐ
­þÚÐ-æÐÐ
­
ÚÐ-ÆÐÐ
­ÿÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­ÚÐ-¾ÐÐ
­!ÚÐ-çÐÐ
­ÚÐ-¿ÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-ÁÐÐ
­   ÚÐ-èÐÐ
­
11
ÚÐ-xÐÐ
­
ÚÐ-yÐÐ
­ÚÐ-zÐÐ
­ÚÐ-%ÐÐ
­ÚÐ-hÐÐ
­¹ÚÐ-ÐÐ
­¯ÚÐ-{ÐÐ
­°ÚÐ-ÐÐ
­±ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­´ÚÐ-|ÐÐ
­¸ÚÐ-}ÐÐ
­UÚÐ-~ÐÐ
­ºÚÐ-ÐÐ
­»ÚÐ-€ÐÐ
­¼ÚÐ-ÐÐ
­½ÚÐ-‚ÐÐ
­¾ÚÐ-ƒÐÐ
­¿ÚÐ-„ÐÐ
­ÀÚÐ-…ÐÐ
­ÁÚÐ-†ÐÐ
­ÂÚÐ-‡ÐÐ
­ÃÚÐ-ˆÐÐ
­ÄÚÐ-‰ÐÐ
­ÅÚÐ-ŠÐÐ
­ÆÚÐ-‹ÐÐ
­ÇÚÐ-ŒÐÐ
­ÉÚÐ-ÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-ŽÐÐ
­ÊÚÐ-ÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-‘ÐÐ
­ÍÚÐ-’ÐÐ
­ÎÚÐ-“ÐÐ
­ÚÐ-ÐÐ
­ÏÚÐ-”ÐÐ
­XÚÐ-•ÐÐ
­ZÚÐ-–ÐÐ
­[ÚÐ-—ÐÐ
­\ÚÐ-˜ÐÐ
­]ÚÐ-™ÐÐ
­^ÚÐ-?ÐÐ
­_ÚÐ-šÐÐ
­`ÚÐ-›ÐÐ
­aÚÐ-œÐÐ
­’ÚÐ-ÐÐ
­dÚÐ-žÐÐ
­eÚÐ-ŸÐÐ
­fÚÐ-—ÐÐ
­gÚÐ- ÐÐ
­hÚÐ-¡ÐÐ
­‚ÚÐ-{ÐÐ
­…ÚÐ-¢ÐÐ
­†ÚÐ-£ÐÐ
­‡ÚÐ-¤ÐÐ
­ˆÚÐ-¥ÐÐ
­‰ÚÐ-—ÐÐ
­‹ÚÐ-¦ÐÐ
­ƒÚÐ-¡ÐÐ
­„ÚÐ-{ÐÐ
­iÚÐ-§ÐÐ
­jÚÐ-¨ÐÐ
­kÚÐ-©ÐÐ
­lÚÐ-—ÐÐ
­mÚÐ-ªÐÐ
­nÚÐ-™ÐÐ
­vÚÐ-?ÐÐ
­wÚÐ-«ÐÐ
­xÚÐ-¬ÐÐ
­yÚÐ-­ÐÐ
­zÚÐ-®ÐÐ
­{ÚÐ-¡ÐÐ
­|ÚÐ-¯ÐÐ
­}ÚÐ-°ÐÐ
­~ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­€ÚÐ-³ÐÐ
­ÚÐ-´ÐÐ
­bÚÐ-µÐÐ
­VÚÐ-?ÐÐ
­ÐÚÐ-¶ÐÐ
­SÚÐ-?ÐÐ
­ÑÚÐ-·ÐÐ
­ÒÚÐ-¸ÐÐ
­ÓÚÐ-¹ÐÐ
­ÔÚÐ-ºÐÐ
­ÕÚÐ-»ÐÐ
­ÖÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­×ÚÐ-¾ÐÐ
­ØÚÐ-¿ÐÐ
­ÙÚÐ-ÀÐÐ
­ÚÚÐ-ÁÐÐ
­ÛÚÐ-ÂÐÐ
­ÜÚÐ-ÃÐÐ
­ÝÚÐ-ÄÐÐ
­ÞÚÐ-ÁÐÐ
­ßÚÐ-ÅÐÐ
­àÚÐ-ÆÐÐ
­áÚÐ-ÇÐÐ
­âÚÐ-¸ÐÐ
­ãÚÐ-¹ÐÐ
­äÚÐ-ºÐÐ
­åÚÐ-»ÐÐ
­æÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­çÚÐ-¾ÐÐ
­èÚÐ-¿ÐÐ
­éÚÐ-ÀÐÐ
­êÚÐ-ÁÐÐ
­ëÚÐ-ÂÐÐ
­ìÚÐ-ÈÐÐ
­íÚÐ-ÄÐÐ
­îÚÐ-ÉÐÐ
­ïÚÐ-ÊÐÐ
­ðÚÐ-ËÐÐ
­ÊÚÐ-ÌÐÐ
­AÚÐ-ÍÐÐ
­GÚÐ-ÎÐÐ
­CÚÐ-ÏÐÐ
­HÚÐ-ÐÐÐ
­DÚÐ-ÑÐÐ
­IÚÐ-ÒÐÐ
­EÚÐ-ÓÐÐ
­JÚÐ-ÔÐÐ
­BÚÐ-ÕÐÐ
­ËÚÐ-{ÐÐ
­ÍÚÐ-ÖÐÐ
­ÓÚÐ-×ÐÐ
­ÔÚÐ-¸ÐÐ
­ÕÚÐ-¹ÐÐ
­ÖÚÐ-ºÐÐ
­×ÚÐ-»ÐÐ
­ØÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­ÙÚÐ-¾ÐÐ
­ÚÚÐ-¿ÐÐ
­ÚÐ-ØÐÐ
­ÛÚÐ-ÀÐÐ
­ÜÚÐ-ÁÐÐ
­ÒÚÐ-ÂÐÐ
­ÝÚÐ-ÙÐÐ
­ßÚÐ-ÄÐÐ
­àÚÐ-ÚÐÐ
­ÚÐ-ÛÐÐ
­ÞÚÐ-ÜÐÐ
­ÏÚÐ-ÝÐÐ
­âÚÐ-ÞÐÐ
­ãÚÐ-¸ÐÐ
­äÚÐ-¹ÐÐ
­åÚÐ-ºÐÐ
­æÚÐ-»ÐÐ
­çÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­èÚÐ-¾ÐÐ
­éÚÐ-¿ÐÐ
­ÚÐ-ßÐÐ
­êÚÐ-ÀÐÐ
­ëÚÐ-ÁÐÐ
­ìÚÐ-ÂÐÐ
­íÚÐ-àÐÐ
­îÚÐ-ÄÐÐ
­ÚÐ-áÐÐ
­ïÚÐ-ÚÐÐ
­áÚÐ-ÜÐÐ
­ðÚÐ-âÐÐ
­ÚÐ-ãÐÐ
­ñÚÐ-¸ÐÐ
­òÚÐ-¹ÐÐ
­óÚÐ-ºÐÐ
­ôÚÐ-»ÐÐ
­õÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­öÚÐ-¾ÐÐ
­÷ÚÐ-¿ÐÐ
­ÚÐ-äÐÐ
­øÚÐ-ÀÐÐ
­ùÚÐ-ÁÐÐ
­úÚÐ-ÂÐÐ
­ûÚÐ-åÐÐ
­üÚÐ-ÄÐÐ
­ ÚÐ-æÐÐ
­ýÚÐ-ÚÐÐ
­ÐÚÐ-ÜÐÐ
­þÚÐ-çÐÐ
­
ÚÐ-ÇÐÐ
­ÿÚÐ-¸ÐÐ
­ÚÐ-¹ÐÐ
­ÚÐ-ºÐÐ
­ÚÐ-»ÐÐ
­ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­ÚÐ-¾ÐÐ
­ÚÐ-¿ÐÐ
­!ÚÐ-èÐÐ
­ÚÐ-ÀÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ÂÐÐ
­   ÚÐ-éÐÐ
­
12
ÚÐ-ÃÐÐ
­"ÚÐ-çÐÐ
­ÚÐ-ÙÐÐ
­ñÚÐ-ÛÐÐ
­,ÚÐ-éÐÐ
­-ÚÐ-êÐÐ
­.ÚÐ-¸ÐÐ
­/ÚÐ-¹ÐÐ
­0ÚÐ-ºÐÐ
­1ÚÐ-»ÐÐ
­2ÚÐ-¼ÐÐ
­3ÚÐ-½ÐÐ
­4ÚÐ-¾ÐÐ
­6ÚÐ-¿ÐÐ
­7ÚÐ-ëÐÐ
­8ÚÐ-ÁÐÐ
­9ÚÐ-ìÐÐ
­:ÚÐ-ÃÐÐ
­;ÚÐ-íÐÐ
­òÚÐ-ÛÐÐ
­ôÚÐ-îÐÐ
­õÚÐ-ÐÐ
­öÚÐ-ïÐÐ
­ùÚÐ-ðÐÐ
­ûÚÐ-ñÐÐ
­üÚÐ-òÐÐ
­ýÚÐ-|ÐÐ
­þÚÐ-}ÐÐ
­ÿÚÐ-óÐÐ
­ÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-öÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-÷ÐÐ
­ÚÐ-øÐÐ
­
12
ÚÐ-ÄÐÐ
­"ÚÐ-èÐÐ
­ÚÐ-ÚÐÐ
­ñÚÐ-ÜÐÐ
­,ÚÐ-êÐÐ
­-ÚÐ-ëÐÐ
­.ÚÐ-¸ÐÐ
­/ÚÐ-¹ÐÐ
­0ÚÐ-ºÐÐ
­1ÚÐ-»ÐÐ
­2ÚÐ-¼ÐÐ
­ÚÐ-½ÐÐ
­3ÚÐ-¾ÐÐ
­4ÚÐ-¿ÐÐ
­6ÚÐ-ÀÐÐ
­7ÚÐ-ìÐÐ
­8ÚÐ-ÂÐÐ
­9ÚÐ-íÐÐ
­:ÚÐ-ÄÐÐ
­;ÚÐ-îÐÐ
­òÚÐ-ÜÐÐ
­ôÚÐ-ïÐÐ
­õÚÐ-ÐÐ
­öÚÐ-ðÐÐ
­ùÚÐ-ñÐÐ
­ûÚÐ-òÐÐ
­üÚÐ-óÐÐ
­ýÚÐ-|ÐÐ
­þÚÐ-}ÐÐ
­ÿÚÐ-ôÐÐ
­ÚÐ-õÐÐ
­ÚÐ-öÐÐ
­ÚÐ-÷ÐÐ
­ÚÐ-ÂÐÐ
­ÚÐ-øÐÐ
­ÚÐ-ùÐÐ
­
13
ÚÐ-ùÐÐ
­ÚÐ-õÐÐ
­ÚÐ-úÐÐ
­
ÚÐ-ÛÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-ûÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-õÐÐ
­ÚÐ-þÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ÁÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-ÉÐÐ
­/ÚÐ-³ÐÐ
­0ÚÐ-†ÐÐ
­1ÚÐ-‡ÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-ˆÐÐ
­4ÚÐ-‰ÐÐ
­5ÚÐ-ŠÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-‹ÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ŒÐÐ
­;ÚÐ-ÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ŽÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÐÐ
­@ÚÐ-ÐÐ
­BÚÐ-‘ÐÐ
­CÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­ÚÐ-•ÐÐ
­DÚÐ-–ÐÐ
­ÚÐ-{ÐÐ
­EÚÐ-—ÐÐ
­FÚÐ-˜ÐÐ
­HÚÐ-™ÐÐ
­IÚÐ-ÄÐÐ
­JÚÐ-šÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-›ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-|ÐÐ
­QÚÐ-}ÐÐ
­RÚÐ-œÐÐ
­UÚÐ-ÈÐÐ
­VÚÐ-õÐÐ
­WÚÐ-úÐÐ
­XÚÐ-ÄÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-¶ÐÐ
­[ÚÐ-ÐÐ
­\ÚÐ-žÐÐ
­`ÚÐ-†ÐÐ
­aÚÐ-‡ÐÐ
­bÚÐ-@ÐÐ
­cÚÐ-ŸÐÐ
­dÚÐ-ÐÐ
­ÚÐ- ÐÐ
­   ÚÐ-ÐÐ
­eÚÐ-¡ÐÐ
­fÚÐ-ÐÐ
­¦ÚÐ-¢ÐÐ
­§ÚÐ-£ÐÐ
­¨ÚÐ-¤ÐÐ
­jÚÐ-¥ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-¦ÐÐ
­¬ÚÐ-ÐÐ
­ªÚÐ-§ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-¨ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-©ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-ªÐÐ
­qÚÐ-«ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-¬ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-­ÐÐ
­wÚÐ-®¯°Ð  E
13
ÚÐ-úÐÐ
­ÚÐ-öÐÐ
­ÚÐ-ûÐÐ
­
ÚÐ-ÜÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-üÐÐ
­ÚÐ-ýÐÐ
­ÚÐ-þÐÐ
­ÚÐ-öÐÐ
­ÚÐ-ÿÐÐ
­ÚÐ-ÂÐÐ
­ÚÐ-€ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‚ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-ÂÐÐ
­ÚÐ-„ÐÐ
­ÚÐ-…ÐÐ
­ÚÐ-†ÐÐ
­ÚÐ-ÊÐÐ
­/ÚÐ-³ÐÐ
­0ÚÐ-‡ÐÐ
­1ÚÐ-ˆÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-‰ÐÐ
­4ÚÐ-ŠÐÐ
­5ÚÐ-‹ÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-ŒÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ÐÐ
­;ÚÐ-ŽÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÐÐ
­@ÚÐ-‘ÐÐ
­BÚÐ-’ÐÐ
­CÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­ÚÐ-•ÐÐ
­ÚÐ-–ÐÐ
­DÚÐ-—ÐÐ
­ÚÐ-{ÐÐ
­EÚÐ-˜ÐÐ
­FÚÐ-™ÐÐ
­HÚÐ-šÐÐ
­IÚÐ-ÅÐÐ
­JÚÐ-›ÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-œÐÐ
­OÚÐ-ÐÐ
­PÚÐ-|ÐÐ
­QÚÐ-}ÐÐ
­RÚÐ-ÐÐ
­UÚÐ-ÉÐÐ
­VÚÐ-öÐÐ
­WÚÐ-ûÐÐ
­XÚÐ-ÅÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-¶ÐÐ
­[ÚÐ-žÐÐ
­\ÚÐ-ŸÐÐ
­`ÚÐ-‡ÐÐ
­aÚÐ-ˆÐÐ
­bÚÐ-@ÐÐ
­cÚÐ- ÐÐ
­dÚÐ-ÐÐ
­ÚÐ-¡ÐÐ
­   ÚÐ-ÐÐ
­eÚÐ-¢ÐÐ
­fÚÐ-ÐÐ
­¦ÚÐ-£ÐÐ
­§ÚÐ-¤ÐÐ
­¨ÚÐ-¥ÐÐ
­jÚÐ-¦ÐÐ
­©ÚÐ-ÐÐ
­«ÚÐ-§ÐÐ
­¬ÚÐ-ÐÐ
­ªÚÐ-¨ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-©ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-ªÐÐ
­oÚÐ-ÐÐ
­pÚÐ-«ÐÐ
­qÚÐ-¬ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-­ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-®ÐÐ
­wÚÐ-¯°±Ð  E
14
-ÐÐ
­†ÚÐ-±ÐÐ
­‡ÚÐ-²ÐÐ
­ˆÚÐ-³ÐÐ
­‰ÚÐ-´ÐÐ
­ŠÚÐ-µÐÐ
­‹ÚÐ-ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-·ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-¸ÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-¹ÐÐ
­”ÚÐ-ºÐÐ
­–ÚÐ-»ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-¼ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-½ÐÐ
­™ÚÐ-¾ÐÐ
­šÚÐ-¿ÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÀÐÐ
­ÚÐ-ÐÐ
­žÚÐ-ÁÐÐ
­ŸÚÐ-ÂÐÐ
­ ÚÐ-ÃÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÄÐÐ
­£ÚÐ-ÅÐÐ
­¤ÚÐ-ÆÐÐ
­¦ÚÐ-ÇÐÐ
­*ÚÐ-ÈÐÐ
­@ÚÐ-ÉÐÐ
­§ÚÐ-ÊÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ËÐÐ
­ ÚÐ-ÌÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÍÐÐ
­©ÚÐ-ÎÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÏÐÐ
­«ÚÐ-´ÐÐ
­ÚÐ-ÐÐ-ÑÐÒÓ-ÔÕÖÐ×Ø
14
-ÐÐ
­†ÚÐ-²ÐÐ
­‡ÚÐ-³ÐÐ
­ˆÚÐ-´ÐÐ
­‰ÚÐ-µÐÐ
­ŠÚÐ-ÐÐ
­‹ÚÐ-·ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-¸ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-¹ÐÐ
­‘ÚÐ-VÐÐ
­’ÚÐ-ºÐÐ
­”ÚÐ-»ÐÐ
­–ÚÐ-¼ÐÐ
­OÚÐ-ÐÐ
­PÚÐ-½ÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-¾ÐÐ
­™ÚÐ-¿ÐÐ
­šÚÐ-ÀÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÁÐÐ
­ÚÐ-ÐÐ
­žÚÐ-ÂÐÐ
­ŸÚÐ-ÃÐÐ
­ ÚÐ-ÄÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ÅÐÐ
­£ÚÐ-ÆÐÐ
­¤ÚÐ-ÇÐÐ
­¦ÚÐ-ÈÐÐ
­*ÚÐ-ÉÐÐ
­@ÚÐ-ÊÐÐ
­§ÚÐ-ËÐÐ
­•ÚÐ-ÐÐ
­”ÚÐ-ÌÐÐ
­ ÚÐ-ÍÐÐ
­?ÚÐ-ÐÐ
­¨ÚÐ-ÎÐÐ
­©ÚÐ-ÏÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐÐ
­«ÚÐ-µÐÐ
­ÚÐ-ÐÑ-ÒÐÓÔ-ÕÖ×ÐØÙ