From 58d6bbb184a5357d5dcd10eadda366c50877696a Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Fri, 12 Dec 2003 22:31:58 +0000 Subject: [PATCH] - Thanks to Mitsuo Fukasawa the tutorial is now also available in Japanese!!! - Added reference (unfinished) and configuration documentation and updated other documents - Various code brush-ups (no breaking changes) [SVN r21241] --- doc/acknowledgments.html | 10 +- doc/configuration.html | 89 ++ doc/definitions.html | 96 +- doc/faq.html | 5 +- doc/index.html | 26 +- doc/rationale.html | 131 +-- doc/rationale.pdf | Bin 168456 -> 165771 bytes doc/reference.html | 927 ++++++++++++++++++ doc/reference.pdf | Bin 0 -> 106169 bytes doc/tutorial.html | 287 ++++-- doc/tutorial.pdf | Bin 324967 -> 333204 bytes example/BitMachine/BitMachine.cpp | 2 +- example/BitMachine/BitMachine.vcproj | 1 + example/Keyboard/Keyboard.cpp | 111 ++- example/Keyboard/Keyboard.vcproj | 4 + example/PingPong/PingPong.vcproj | 3 - example/StopWatch/StopWatch.vcproj | 3 - .../statechart/asynchronous_state_machine.hpp | 4 +- .../boost/statechart/detail/counted_base.hpp | 3 +- .../boost/statechart/detail/leaf_state.hpp | 9 +- .../boost/statechart/detail/node_state.hpp | 7 +- .../boost/statechart/detail/rtti_policy.hpp | 117 ++- .../boost/statechart/detail/state_base.hpp | 25 +- include/boost/statechart/event.hpp | 29 +- include/boost/statechart/event_base.hpp | 57 ++ include/boost/statechart/simple_state.hpp | 102 +- include/boost/statechart/state.hpp | 6 +- include/boost/statechart/state_machine.hpp | 85 +- include/boost/statechart/worker.hpp | 3 +- 29 files changed, 1734 insertions(+), 408 deletions(-) create mode 100644 doc/configuration.html create mode 100644 doc/reference.html create mode 100644 doc/reference.pdf create mode 100644 include/boost/statechart/event_base.hpp diff --git a/doc/acknowledgments.html b/doc/acknowledgments.html index 85b9a9d..601fd20 100644 --- a/doc/acknowledgments.html +++ b/doc/acknowledgments.html @@ -37,20 +37,20 @@

Special thanks go to:

Thanks for feedback and/or encouragement go to:

David Abrahams, Bohdan, Reece Dunn, Jeff Garland, Douglas Gregor, Gustavo -Guerra, Aleksey Gurtovoy, Chris Russell and Scott Woods.

+Guerra, Aleksey Gurtovoy, Chris Russell, Vincent N. Virgilio and Scott Woods.


Revised -12 October, 2003

+17 November, 2003

© Copyright Andreas Huber Dönni 2003. All Rights Reserved.

diff --git a/doc/configuration.html b/doc/configuration.html new file mode 100644 index 0000000..15defb6 --- /dev/null +++ b/doc/configuration.html @@ -0,0 +1,89 @@ + + + + + + + + +The boost::fsm library - Configuration + + + + + + + + + +
+

+ C++ Boost

+
+

The boost::fsm library

+

Configuration

+
+
+
+
Introduction
+
Debug mode compilation options
+
Release mode compilation + options
+
Application Defined Macros
+
+

Introduction

+

The library uses several configuration macros in +<boost/config.hpp>, +as well as one configuration macro meant to be supplied by the application. +Moreover, two commonly available compiler options also have an impact on the +available features.

+

Debug mode compilation options

+ +

Release mode compilation +options

+ +

Application Defined Macros

+

The following macro may be defined by an application using the library:

+ + + + + + + + + +
MacroMeaning
BOOST_FSM_USE_NATIVE_RTTIWhen defined, the library no longer uses its own + speed-optimized RTTI implementation. Instead, native C++ RTTI is employed. + This has the following effects:
    +
  • All states need to store one pointer less, leading to a best-case + state machine memory footprint reduction of about 15%
  • +
  • Custom state + type information is no longer available
  • +
  • Under most circumstances, dispatch speed degrades. This is because + native C++ RTTI values are retrieved through an additional indirection + on almost all platforms
  • +
+
+
+

Revised + 30 November, 2003 +

+

© Copyright Andreas Huber 2003.

+ + + + diff --git a/doc/definitions.html b/doc/definitions.html index d0c9c5a..5a9fe19 100644 --- a/doc/definitions.html +++ b/doc/definitions.html @@ -24,18 +24,49 @@
+

Introduction

+

The boost::fsm documentation uses a lot of terminology specific to state +machines. Most of it is equal to the one used in the UML specifications. This +document contains only definitions for terminology not used by UML.

+

Definitions

+
Context
+
Innermost common outer state
+
Innermost state
+
In-state reaction
+
Outermost state
Polymorphic events
+
Reaction
+
Unstable state
+
Unstable state machine
+

Context

+

The direct context of a state is either its outer state or the state +machine. In the latter case the state is an outermost state.

+

Innermost common outer state

+

The innermost common outer state of two states is the first direct or +indirect outer state that both states have in common. Also known as Least +Common Ancestor (UML).

+

Innermost state

+

An innermost state is a state that does not itself have inner states. Also +known as leaf state or simple state (UML). Note that +boost::fsm::simple_state is not a model of the UML simple state.

+

In-state reaction

+

An in-state reaction is a reaction that neither +exits nor enters any states. Also known as inner transition or internal +transition (UML).

+

Outermost state

+

An outermost state is a state that does not itself have outer states. Note +that an outermost state is different from a UML top state. A state machine can +have an arbitrary number of the former but only exactly one of the latter. +boost::fsm only supports outermost states.

Polymorphic events

-
-

An FSM library supports polymorphic events if events can inherit from - each other without restrictions and allows the definition of - reactions for leafs and nodes of the resulting event inheritance - tree.

-

Example (using a hypothetical fsm library, as boost::fsm does not support - polymorphic events):

-
struct EvButtonPressed : Event // node
+

An FSM library supports polymorphic events if events can inherit from each +other without restrictions and allows the definition of reactions for +leafs and nodes of the resulting event inheritance tree.

+

Example (using a hypothetical fsm library, as boost::fsm does not support +polymorphic events):

+
struct EvButtonPressed : Event // node
 {
   /* common button pressed properties */
 };
@@ -43,14 +74,51 @@
 struct EvPlayButtonPressed : EvButtonPressed {}; // leaf
 struct EvStopButtonPressed : EvButtonPressed {}; // leaf
 struct EvForwardButtonPressed : EvButtonPressed {}; // leaf
-

If a state machine needs to react whenever any button (including - the ones that may be added in the future) is pressed, a reaction for - EvButtonPressed can be defined.

- -
+

If a state machine needs to react whenever any button (including the +ones that may be added in the future) is pressed, a reaction for +EvButtonPressed can be defined.

+

Reaction

+

A reaction consists of all the side effects caused by the processing of one +event. Reactions can be categorized as follows:

+
    +
  1. In-state reaction
  2. +
  3. Event deferral
  4. +
  5. Transition
  6. +
  7. Termination, also known as transition to the final state (UML)
  8. +
+

Note that it is possible to mix a reaction of type 1 with one of the other +types (the in-state reaction is always executed first) but it is not possible +to mix a reaction of type 2-4 with anything else but type 1.

+

A reaction is always associated with exactly one state type and exactly one +event type.

+

Unstable state

+

A state is unstable from the moment when it has been entered until just +before its last direct inner state is entered.

+

Unstable state machine

+

A state machine is unstable if at least one of its currently active states +is unstable. This is the case during the following three operations:

+ +

Under normal circumstances a state machine has Run-To-Completion semantics, +that is, processing of an event is fully completed before the machine returns +to the client or before the next event is dequeued. Therefore, a state machine +is usually only unstable when it is busy processing an event and becomes +stable again right before it has finished processing the event. However, this +can not be guaranteed when either transition actions or entry actions fail +(exit actions cannot fail). Such a failure is reported by an event, which must +be processed while the state machine is unstable. However, exception event +processing rules ensure that a state machine cannot be unstable when it +returns to the client (see state_machine<>::process_event for +details).


Revised - 12 October, 2003 + 09 December, 2003

© Copyright Andreas Huber Dönni 2003.

diff --git a/doc/faq.html b/doc/faq.html index 291215a..621ea8e 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -42,7 +42,8 @@

Does boost::fsm support polymorphic events?

No. Although events can be derived from each other to write common code -only once, reactions can only be defined for most-derived events.

+only once, reactions can only be +defined for most-derived events.

Example:

template< class MostDerived >
 struct EvButtonPressed : fsm::event< MostDerived >
@@ -249,7 +250,7 @@ destructors of additional bases are called before recursion employed by state
 base destructors can alter the order of destruction.


Revised -12 October, 2003

+01 December, 2003

© Copyright Andreas Huber Dönni 2003. All Rights Reserved.

diff --git a/doc/index.html b/doc/index.html index 3c9ce59..b361a7a 100644 --- a/doc/index.html +++ b/doc/index.html @@ -53,14 +53,12 @@ include:

  • MSVC7.1 (the compiler coming with Visual Studio .NET 2003) with boost distribution 1.30.2
  • -

    The library is almost functionally complete. However, the following is -still in the making:

    +

    The library is functionally complete. However, the following is still in +the making:

      -
    1. A facility allowing users to attach arbitrary type information to states
    2. -
    3. A way to iterate over all current states of a machine.
    4. -
    5. Reference documentation
    6. +
    7. Finish reference documentation
    8. +
    9. gcc port
    10. Regression tests
    11. -
    12. Ports to other compilers
    13. Refactoring of the state_machine class template to reduce code size in projects with many different state machines
    @@ -69,13 +67,23 @@ still in the making:

    Contents

    Tutorial
    -
    Rationale
    -
    Definitions
    Frequently Asked Questions (FAQs)
    +
    Configuration
    +
    Definitions
    +
    Reference
    +
    Rationale
    Acknowledgments

    Change history

    +

    12 December 2003:

    +

    12 October 2003:


    Revised -12 October, 2003

    +12 December, 2003

    © Copyright Andreas Huber Dönni 2003. All Rights Reserved.

    diff --git a/doc/rationale.html b/doc/rationale.html index 9ec3acd..bc4c4e9 100644 --- a/doc/rationale.html +++ b/doc/rationale.html @@ -48,8 +48,8 @@ are the result of the following requirements.

    boost::fsm should ...

      -
    1. be fully type-safe. Any type mismatches should be flagged with an error - at compile-time
    2. +
    3. be fully type-safe. Whenever possible, type mismatches should be flagged + with an error at compile-time
    4. not require the use of a code generator. A lot of the existing FSM solutions force the developer to design the state machine either graphically or in a specialized language. All or part of the code is then generated
    5. @@ -94,8 +94,11 @@ frameworks:

      solution)
      http://www.ilogix.com/products/rhapsody/rhap_incplus.cfm
      -
      Fails to satisfy at least the requirements 2, 4, 5, 6, 8 (there is quite - a bit of error checking before code generation, though). + This might look like comparing apples with oranges. However, there is no + inherent reason why a code generator couldn't produce code that can easily + be understood and modified by humans. Fails to satisfy at least the + requirements 2, 4, 5, 6, 8 (there is quite a bit of error checking before + code generation, though).
    6. The framework accompanying the article "State Machine Design in C++"
      http://www.cuj.com/articles/2000/0005/0005f/0005f.htm?topic=articles
      @@ -150,8 +153,9 @@ However, due to its nature such a framework has a number of disadvantages when used to implement static machines:

      • No compile-time optimizations and validations can be made. For example, - boost::fsm determines the innermost common outer state (aka LCA, least - common ancestor) of the transition-source and destination state at compile + boost::fsm determines the + innermost common + outer state of the transition-source and destination state at compile time. Moreover, compile time checks ensure that the state machine is valid (e.g. that there are no transitions between orthogonal states).
      • Double dispatch must inevitably be implemented with some kind of a @@ -182,9 +186,9 @@ ignore the issue. 

        Consider the following state configuration:

        Both states define entry actions (x() and y()). Whenever state A becomes -current, a call to x() will immediately be followed by a call to y(). y() -could depend on the side-effects of x(). Therefore, executing y() does not -make sense if x() fails. This is not an esoteric corner case but happens in +active, a call to x() will immediately be followed by a call to y(). y() could +depend on the side-effects of x(). Therefore, executing y() does not make +sense if x() fails. This is not an esoteric corner case but happens in every-day state machines all the time. For example, x() could acquire memory the contents of which is later modified by y(). There is a different but in terms of error handling equally critical situation in the Tutorial under @@ -229,11 +233,14 @@ code is simply boring and quite unnecessary.

      • The processing logic is as follows:
        • Exception events resulting from failed react functions - are sent to the current state.
        • + are sent to the innermost state + that was last visited during reaction + search
        • Exception events resulting from failed entry actions are sent to the - immediate outer state.
        • + outer state of the state that the machine tried to enter
        • Exception events resulting from failed transition actions are sent to - the innermost common outer state.
        • + the innermost + common outer state

        In the last two cases the state-machine is not in a stable state when the exception event is generated and leaving it there (e.g. by ignoring the @@ -245,25 +252,25 @@ code is simply boring and quite unnecessary.

        rethrown.

      Asynchronous state machines

      -

      The design of the asynchronous_state_machine<> and -worker<> class templates follow from the requirements:

      +

      The design of the asynchronous_state_machine and worker +class templates follow from the requirements:

      1. The user must be able to specify in which thread a particular machine will run:
        - The worker<> class template is not associated with a particular + The worker class template is not associated with a particular thread. Instead, users can choose to either call worker<>::operator() directly from the current thread or pass an appropriate function object to a new thread.
      2. An arbitrary number of state machines might run in the same thread:
        Multiple state machine objects can be constructed passing the same - worker<> object. The state machines will then share the same + worker object. The state machines will then share the same thread-safe queue and event loop.
      3. Out of the box, the boost::thread library should be employed. However, it should be possible to use any other threading library or run asynchronous machines on OS-less systems:
        In such cases, the locking and waiting logic can be fully customized by implementing a new class template that is interface-compatible with - worker<>.
      4. + worker.

      User actions: Member functions vs. function objects

      @@ -339,16 +346,18 @@ normally constitutes a bottleneck and the relative gap between handcrafted and boost::fsm machines also becomes much smaller than in the worst-case scenario.

      BitMachine measurements with more states and with different levels of optimization:

      - +
      - - + + + + BOOST_FSM_USE_NATIVE_RTTI defined @@ -450,7 +459,8 @@ Currently, there are exactly two options:

      1. By default, a speed-optimized internal implementation is employed
      2. The library can be instructed to use native C++ RTTI instead by defining - BOOST_FSM_USE_NATIVE_RTTI
      3. + + BOOST_FSM_USE_NATIVE_RTTI

      Just about the only reason to favor 2 is the fact that state objects need to store one pointer less, meaning that in the best case the memory footprint @@ -467,10 +477,11 @@ applications that ...

      Double dispatch

      At the heart of every state machine lies an implementation of double dispatch. This is due to the fact that the incoming event and the -current state define exactly which reaction the state machine will produce. -For each event dispatch, one virtual call is followed by a linear search for -the appropriate reaction, using one RTTI comparison per reaction. The -following alternatives were considered but rejected:

      +active state define exactly which reaction +the state machine will produce. For each event dispatch, one virtual call is +followed by a linear search for the appropriate reaction, using one RTTI +comparison per reaction. The following alternatives were considered but +rejected:

      $PrMx- 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 diff --git a/doc/reference.html b/doc/reference.html new file mode 100644 index 0000000..cb59649 --- /dev/null +++ b/doc/reference.html @@ -0,0 +1,927 @@ + + + + + + + + +The boost::fsm library - Tutorial + + + + +
      Machine configuration
      - # states / # outgoing transitions per state
      Event dispatch & transition time [nanoseconds]Machine configuration
      + # states / # outgoing transitions per state
      Event dispatch & transition time + [nanoseconds]
      Out of the box Same as out of the box but with - BOOST_FSM_USE_NATIVE_RTTI defined Same as out of the box but with customized memory management
      + + + + +
      +

      + C++ Boost

      +
      +

      The boost::fsm library

      +

      Reference

      +
      +
      +

      Contents

      +
      +
      Concepts
      +
      ExceptionTranslator
      +
      StateBase
      +
      Worker
      +
      state_machine.hpp
      +
      Class template + state_machine
      +
      asynchronous_state_machine.hpp
      +
      Class template + asynchronous_state_machine
      +
      simple_state.hpp
      +
      Typedef no_reactions
      +
      Enum history_mode
      +
      Class template simple_state
      +
      state.hpp
      +
      Class template state
      +
      +
      +

      Concepts

      +

      ExceptionTranslator concept

      +

      An ExceptionTranslator type defines how C++ exceptions occurring during +state machine operation are translated to exception events. Every model of +this concept must provide an operator() with the following +signature:

      +
      template< class Action, class ExceptionEventHandler >
      +result operator()(
      +  Action action,
      +  ExceptionEventHandler eventHandler,
      +  result handlerSuccessResult );
      +

      For an ExceptionTranslator object e the following expression +must be well-formed and have the indicated results:

      + + + + + + + + + + + +
      ExpressionTypeEffects/Result
      result action();
      + bool exceptEventHandler(
      +  const event_base & );
      + result
      +  handlerSuccessResult;
      +
      + e(
      +  &action,
      +  &exceptEventHandler,
      +  handlerSuccessResult );
      result +
        +
      1. Attempts to execute action and to return the result
      2. +
      3. Catches the exception propagated from action, if + necessary
      4. +
      5. Translates the exception to a suitable event subclass + and constructs an object of the event
      6. +
      7. Passes the event object to exceptEventHandler
      8. +
      9. Rethrows the original exception if exceptEventHandler + returns false, returns handlerSuccessResult + otherwise
      10. +
      +
      +

      StateBase concept

      +

      A StateBase type is the common base of all states of a given state machine +type. state_machine<>::state_base_type is a model of the +StateBase concept.

      +

      For a StateBase type S and a const object +cs of that type the following expressions must be well-formed and have +the indicated results:

      + + + + + + + + + + + + + + + + + + + + + +
      ExpressionTypeResult
      cs.outer_state_ptr()const S *0 if cs is an + outermost state, a pointer + to the outer state of cs otherwise
      cs.dynamic_type()S::id_typeA value unambiguously identifying the most-derived type of + cs. S::id_type values are comparable with + operator== and operator!=. An unspecified collating + order can be established with std::less< S::id_type >
      cs.custom_dynamic_type_ptr<
      +  Type >()
      const Type *A pointer to the custom type identifier or 0. + If != 0, Type must match the type of the + previously set pointer. The result is undefined if this is not the case.
      +

      Worker concept

      +

      todo

      +

      Header <boost/fsm/state_machine.hpp>

      +

      Class template state_machine

      +

      This is the base class template of all synchronous state machines.

      +

      Class template state_machine parameters

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Template parameterRequirementsSemanticsDefault
      MostDerivedThe most-derived subclass of this class template  
      InitialStateA most-derived direct or indirect subclass of either the + simple_state or the state class template. The + type that this class passes as Context to its base class + template must be equal to MostDerived. That is, + InitialState must be an + outermost state of this state machineThe state that is entered when state_machine<>::
      + initiate()
      is called
       
      AllocatorA model of the standard Allocator concept std::allocator< void >
      ExceptionTranslatorA model of the ExceptionTranslator conceptsee ExceptionTranslator + concept exception_translator<>
      +

      Class template state_machine synopsis

      +
      namespace boost
      +{
      +namespace fsm
      +{
      +  template<
      +    class MostDerived,
      +    class InitialState,
      +    class Allocator = std::allocator< void >,
      +    class ExceptionTranslator = exception_translator<> >
      +  class state_machine : noncopyable
      +  {
      +    public:
      +      typedef MostDerived outermost_context_type;
      +
      +      bool initiate();
      +      void terminate();
      +      bool terminated() const;
      +
      +      bool process_event( const event_base & );
      +
      +      template< class Target >
      +      Target state_cast() const;
      +      template< class Target >
      +      Target state_downcast() const;
      +
      +      // a model of the StateBase concept
      +      typedef implementation-defined state_base_type;
      +      // a model of the standard Forward Iterator concept
      +      typedef implementation-defined state_iterator;
      +
      +      state_iterator state_begin() const;
      +      state_iterator state_end() const;
      +
      +    protected:
      +      state_machine();
      +      ~state_machine();
      +  };
      +}
      +}
      +

      Class template state_machine constructor and destructor

      +
      state_machine();
      +

      Effects: Constructs a non-running state machine
      +Postcondition: terminated()

      +
      ~state_machine();
      +

      Effects: terminate();

      +

      Class template state_machine modifier functions

      +
      bool initiate();
      +

      Effects:

      +
        +
      1. Calls terminate()
      2. +
      3. Constructs a function object action with a parameter-less + operator() returning result that
          +
        1. enters (constructs) the state specified with the InitialState + template parameter
        2. +
        3. enters the tree formed by the direct and indirect inner initial states + of InitialState depth first
        4. +
        +
      4. +
      5. Constructs a function object exceptionEventHandler with an + operator() returning bool and accepting an + exception event parameter that processes the passed exception event, with + the following differences to the processing of normal events:
          +
        • Reaction search always starts + with the outermost unstable + state
        • +
        • As for normal events, reaction search moves outward when the current + state cannot handle the event. However, if there is no outer state (an + outermost state has been + reached) the reaction search is considered unsuccessful. That is, + exception events will never be dispatched to orthogonal regions other than + the one that caused the exception event
        • +
        • Should an exception be thrown during exception event reaction search + or reaction execution then the exception is propagated out of the + exceptionEventHandler function object (that is, + ExceptionTranslator is not used to process exception events)
        • +
        • If no reaction could be found for the exception event or if the state + machine is not stable after processing the exception event, false + is returned from the exceptionEventHandler function object. + Otherwise, true is returned
        • +
        +
      6. +
      7. Passes action, exceptionEventHandler and the + result value handlerSuccessResult to + ExceptionTranslator::operator(). If + ExceptionTranslator::operator() throws an exception, + terminate() is called and the exception is propagated to the caller. + Continues with step 5 otherwise (the return value is discarded)
      8. +
      9. Processes all posted events (see process_event)
      10. +
      +

      Returns: terminated()
      +Throws: Any exceptions propagated from +ExceptionTranslator::operator(). Exceptions never originate in the +library itself but only in code supplied through template parameters. That is, +std::bad_alloc thrown by Allocator::allocate as well +as any exceptions thrown by user-supplied react functions, +transition-actions and entry-actions

      +
      void terminate();
      +

      Effects: The state machine exits (destructs) all currently active +states. Innermost states are +exited first. Other states are exited as soon as all their direct and indirect +inner states have been exited
      +Postcondition: terminated()

      +
      bool process_event( const event_base & );
      +

      Effects:

      +
        +
      1. Selects the passed event as the current event
      2. +
      3. Starts a new reaction search
      4. +
      5. Selects an arbitrary but in this reaction search not yet visited state + from all the currently active + innermost states. If no such state exists then continues with step 10
      6. +
      7. Constructs a function object action with a parameter-less + operator() returning result that does the + following:
          +
        1. Searches a reaction suitable for the current event, starting with the + current innermost state and moving outward until a state defining a + reaction for the event is found. Returns simple_state::forward_event() + if no reaction has been found.
        2. +
        3. Executes the found reaction. If the reaction result is equal to the + return value of simple_state::forward_event() then resumes + the reaction search (step a). Returns the reaction result otherwise
        4. +
        +
      8. +
      9. Constructs a function object exceptionEventHandler with an + operator() accepting an exception event parameter and returning + bool that processes the passed exception event, with the + following differences to the processing of normal events:
          +
        • If the state machine is stable when the exception event is processed + then exception event reaction search starts with the innermost state that + was last visited during the last normal event reaction search (the + exception event was generated as a result of this normal reaction search)
        • +
        • If the state machine is + unstable when the + exception event is processed then exception event reaction search starts + with the outermost unstable + state
        • +
        • As for normal events, reaction search moves outward when the current + state cannot handle the event. However, if there is no outer state (an + outermost state has been + reached) the reaction search is considered unsuccessful. That is, + exception events will never be dispatched to orthogonal regions other than + the one that caused the exception event
        • +
        • Should an exception be thrown during exception event reaction search + or reaction execution then the exception is propagated out of the + exceptionEventHandler function object (that is, + ExceptionTranslator is not used to process exception events)
        • +
        • If no reaction could be found for the exception event or if the state + machine is not stable after processing the exception event, false + is returned from the exceptionEventHandler function object. + Otherwise, true is returned
        • +
        +
      10. +
      11. Passes action, an exceptionEventHandler + callback and the fsm::result value handlerSuccessResult + to ExceptionTranslator::operator(). If + ExceptionTranslator::operator() throws an exception then calls + terminate() and propagates the exception to the caller
      12. +
      13. If the return value of ExceptionTranslator::operator() is + equal to the one of simple_state::forward_event() then + continues with step 3
      14. +
      15. If the return value of ExceptionTranslator::operator() is + equal to the one of simple_state::defer_event() then the + current event is stored in a state-specific queue. Continues with step 10
      16. +
      17. If ExceptionTranslator::operator() returns the previously + passed handlerSuccessResult or if the return value is equal to + the one of simple_state::discard_event() then continues with + step 10
      18. +
      19. If the posted events queue is non-empty then dequeues the first event, + selects it as the current event and continues with step 2. Returns to the + caller otherwise
      20. +
      +

      Returns: false, if the machine was terminated before +processing the event. Returns terminated() otherwise
      +Throws: Any exceptions propagated from +ExceptionTranslator::operator(). Exceptions never originate in the +library itself but only in code supplied through template parameters. That is, +std::bad_alloc thrown by Allocator::allocate as well +as any exceptions thrown by user-supplied reactions, transition-actions and +entry-actions

      +

      Class template state_machine observer functions

      +
      bool terminated() const;
      +

      Returns: true, if the machine is terminated. Returns +false otherwise
      +Note: Is equivalent to state_begin() == state_end()

      +
      template< class Target >
      +Target state_cast() const;
      +

      Returns: Depending on the form of Target either a +reference or a pointer to const if at least one of the currently +active states can successfully be dynamic_cast to Target. +Returns 0 for pointer targets and throws std::bad_cast +for reference targets otherwise. Target can take either of the +following forms: const Class * or const Class &
      +Throws: std::bad_cast if Target is a +reference type and none of the active states can be dynamic_cast +to Target
      +Note: The search sequence is the same as for event dispatch

      +
      template< class Target >
      +Target state_downcast() const;
      +

      Returns: Depending on the form of Target either a +reference or a pointer to const if Target is equal +to the most-derived type of a currently active state. Returns 0 +for pointer targets and throws std::bad_cast for reference +targets otherwise. Target can take either of the following forms: +const Class * or const Class &
      +Throws: std::bad_cast if Target is a +reference type and none of the active states has a most derived type equal to +Target
      +Note: The search sequence is the same as for event dispatch

      +
      state_iterator state_begin() const;
      +
      state_iterator state_end() const;
      +

      Return: Iterator objects, the range [state_begin(), +state_end()) refers to all currently active +innermost states. For an object +i of type state_iterator, *i returns a +const state_base_type & and i.operator->() returns a +const state_base_type *
      +Note: The position of individual innermost states in the range is +undefined. Their position may change with each call to a modifier function. +Moreover, all iterators are invalidated when a modifier function is called

      +

      Header <boost/fsm/asynchronous_state_machine.hpp>

      +

      Class template +asynchronous_state_machine

      +

      This is the base class template of all asynchronous state machines.

      +

      Class template asynchronous_state_machine parameters

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Template parameterRequirementsSemanticsDefault
      MostDerivedThe most-derived subclass of this class template  
      InitialStateA most-derived direct or indirect subclass of either the + simple_state or the state class template. The + type that this class passes as Context to its base class + template must be equal to MostDerived. That is, + InitialState must be an + outermost state of this state machineThe state that is entered when Worker::
      + operator()()
      is called
       
      WorkerA model of the Worker conceptsee Worker concept worker<>
      AllocatorA model of the standard Allocator concept std::allocator< void >
      ExceptionTranslatorA model of the ExceptionTranslator conceptsee ExceptionTranslator + concept exception_translator<>
      +

      Class template asynchronous_state_machine synopsis

      +
      template<
      +  class MostDerived,
      +  class InitialState,
      +  class Worker = worker<>,
      +  class Allocator = std::allocator< void >,
      +  class ExceptionTranslator = exception_translator<> >
      +class asynchronous_state_machine : implementation-defined
      +{
      +  public:
      +    void queue_event( const intrusive_ptr< event_base > & );
      +
      +  protected:
      +    asynchronous_state_machine( Worker & myWorker );
      +    ~asynchronous_state_machine();  
      +};
      +

      Class template asynchronous_state_machine constructor and +destructor

      +
      asynchronous_state_machine( Worker & myWorker );
      +

      Precondition: No thread of control is currently inside +myWorker.operator()
      +Effects
      : Constructs a non-running asynchronous state machine and registers +it with the passed worker
      +Throws: Whatever Allocator::allocate (invoked by the +worker) throws

      +
      ~asynchronous_state_machine();
      +

      Precondition: No thread of control is currently inside +myWorker.operator(). The worker object passed to the constructor has +not yet been destructed
      +Effects
      : Terminates the state machine

      +

      Class template asynchronous_state_machine modifier functions

      +
      void queue_event( const intrusive_ptr< event_base > & );
      +

      Effects: Pushes the passed event into the queue of the worker object +passed to the constructor
      +Throws: Whatever Allocator::allocate (invoked by the +worker) throws

      +

      Header <boost/fsm/simple_state.hpp>

      +

      Typedef no_reactions

      +

      This is the default value for the Reactions parameter of the +simple_state class template. Necessary for the rare cases when a +state without reactions has inner states.

      +
      namespace boost
      +{
      +namespace fsm
      +{
      +  typedef implementation-defined no_reactions;
      +}
      +}
      +

      Enum history_mode

      +

      Defines the history type of a state.

      +
      namespace boost
      +{
      +namespace fsm
      +{
      +  enum history_mode
      +  {
      +    has_no_history,
      +    has_shallow_history,
      +    has_deep_history,
      +    has_full_history // shallow & deep
      +  };
      +}
      +}
      +

      Class template simple_state

      +

      The base class template of all states that do not need to call any +of the following simple_state member functions from their +constructors:

      +
      void post_event(
      +  const intrusive_ptr< const event_base > & );
      +
      +outermost_context_type & outermost_context();
      +const outermost_context_type & outermost_context() const;
      +
      +template< class OtherContext >
      +OtherContext & context();
      +template< class OtherContext >
      +const OtherContext & context() const;
      +
      +template< class Target >
      +Target state_cast() const;
      +template< class Target >
      +Target state_downcast() const;
      +

      States that need to call any of these functions from their constructors +must derive from the state class template.

      +

      Class template simple_state parameters

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Template parameterRequirementsSemanticsDefault
      MostDerivedThe most-derived subclass of this class template  
      ContextA most-derived direct or indirect subclass of either the + state_machine, asynchronous_state_machine, + simple_state or state class templates or an + instantiation of the orthogonal class template nested in the + state base classes. Must be a complete typeDefines the states' position in the state hierarchy 
      ReactionsAn mpl::list containing instantiations of the + custom_reaction, deferral, termination + or transition class templates. If there is only a single + reaction then it can also be passed directly, without wrapping it into an + mpl::listDefines to which events a state can reactno_reactions
      InnerInitialAn mpl::list containing most-derived direct + or indirect subclasses of either the simple_state or the + state class template or instantiations of either the + shallow_history or deep_history class templates. If + there is only a single non-history inner initial state then it can also be + passed directly, without wrapping it into an mpl::list. The + type that each state in the list passes as Context to its + base class template must correspond to the orthogonal region it belongs + to. That is, the first state in the list must pass + MostDerived::orthogonal< 0 >, the second + MostDerived::orthogonal< 1 > and so forth. + MostDerived::orthogonal< 0 > and MostDerived are + synonymousDefines the inner initial state for each orthogonal + region. By default, a state does not have inner statesunspecified
      historyModeOne of the values defined in the history_mode + enumerationDefines whether the state saves shallow, deep or both + histories upon exithas_no_history
      +

      Class template simple_state synopsis

      +
      namespace boost
      +{
      +namespace fsm
      +{
      +  template<
      +    class MostDerived,
      +    class Context,
      +    class Reactions = no_reactions,
      +    class InnerInitial = unspecified,
      +    history_mode historyMode = has_no_history >
      +  class simple_state : implementation-defined
      +  {
      +    public:
      +      // see template parameters
      +      template< implementation-defined-unsigned-integer-type
      +        innerOrthogonalPosition >
      +      struct orthogonal
      +      {
      +        // implementation-defined
      +      };
      +
      +      typedef typename Context::outermost_context_type
      +        outermost_context_type;
      +
      +      outermost_context_type & outermost_context();
      +      const outermost_context_type & outermost_context() const;
      +
      +      template< class OtherContext >
      +      OtherContext & context();
      +      template< class OtherContext >
      +      const OtherContext & context() const;
      +
      +      template< class Target >
      +      Target state_cast() const;
      +      template< class Target >
      +      Target state_downcast() const;
      +
      +      void post_event(
      +        const intrusive_ptr< const event_base > & );
      +
      +      result discard_event();
      +      result forward_event();
      +      result defer_event();
      +      template< class DestinationState >
      +      result transit();
      +      template<
      +        class DestinationState,
      +        class TransitionContext,
      +        class Event >
      +      result transit(
      +        void ( TransitionContext::* )( const Event & ),
      +        const Event & );
      +      result terminate();
      +
      +      static id_type static_type();
      +
      +      template< class CustomId >
      +      static const CustomId * custom_static_type_ptr();
      +
      +      template< class CustomId >
      +      static void custom_static_type_ptr( const CustomId * );
      +
      +    protected:
      +      simple_state();
      +      virtual ~simple_state();
      +  };
      +}
      +}
      +

      Class template simple_state constructor and destructor

      +
      simple_state();
      +

      Effects: Depending on the historyMode parameter, +reserves storage to store none, shallow, deep or both histories
      +Throws: Any exceptions propagated from Allocator::allocate +(the template parameter passed to the base class of +outermost_context_type)
      +Note: The constructors of all direct and indirect subclasses should be +exception-neutral

      +
      virtual ~simple_state();
      +

      Effects: Depending on the historyMode parameter, stores +none, shallow, deep or both histories. Pushes all events deferred by the state +into the posted events queue

      +

      Class template simple_state modifier functions

      +
      void post_event(
      +  const intrusive_ptr< const event_base > & );
      +

      Effects: Pushes the passed event into the state machine's posted +events queue
      +Throws: Any exceptions propagated from Allocator::allocate +(the template parameter passed to the base class of +outermost_context_type)
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses. All direct and indirect callers should be +exception-neutral

      +
      result discard_event();
      +

      Effects: Instructs the state machine to discard the current event +and to continue with the processing of the remaining events (see +state_machine::process_event for details)
      +Returns: An unspecified value of the result enumeration. +The user-supplied react member function must return this value to +its caller
      +Note: Must only be called from within react member +functions, which are called by custom_reaction instantiations. +All direct and indirect callers should be exception-neutral

      +
      result forward_event();
      +

      Effects: Instructs the state machine to forward the current event to +the next state (see +state_machine::process_event for details)
      +Returns: An unspecified value of the result enumeration. +The user-supplied react member function must return this value to +its caller
      +Note: Must only be called from within react member +functions, which are called by custom_reaction instantiations. +All direct and indirect callers should be exception-neutral

      +
      result defer_event();
      +

      Effects: Instructs the state machine to defer the current event and +to continue with the processing of the remaining events (see +state_machine::process_event for details)
      +Returns: An unspecified value of the result enumeration. +The user-supplied react member function must return this value to +its caller
      +Note: Must only be called from within react member +functions, which are called by custom_reaction instantiations. +All direct and indirect callers should be exception-neutral

      +
      template< class DestinationState >
      +result transit();
      +

      Effects:

      +
        +
      1. Exits (destructs) all currently active direct and indirect inner states + of the innermost common outer state of this state and DestinationState. + Innermost states are exited first. Other states are exited as soon as all + their direct and indirect inner states have been exited
      2. +
      3. Enters (constructs) the state that is both a direct inner state of the + innermost common outer state and either the DestinationState + itself or a direct or indirect outer state of DestinationState +
      4. +
      5. Enters (constructs) the tree formed by the direct and indirect inner + states of the previously entered state down to the DestinationState + depth first
      6. +
      7. Enters (constructs) the tree formed by the direct and indirect inner + initial states of DestinationState depth first
      8. +
      9. Instructs the state machine to discard the current event and to continue + with the processing of the remaining events (see + state_machine::process_event for + details)
      10. +
      +

      Returns: An unspecified value of the result +enumeration. The user-supplied react member function must return +this value to its caller
      +Throws: Any exceptions propagated from operator new (used +to allocate states), state constructors or Allocator::allocate +(the template parameter passed to the base class of +outermost_context_type)
      +Note: Must only be called from within react member +functions, which are called by custom_reaction instantiations. +All direct and indirect callers should be exception-neutral
      +Caution: Inevitably exits (destructs) this state before returning to +the calling react member function, which must therefore not +attempt to access anything except stack objects before returning to its caller

      +
      template<
      +  class DestinationState,
      +  class TransitionContext,
      +  class Event >
      +result transit(
      +  void ( TransitionContext::* )( const Event & ),
      +  const Event & );
      +

      Effects:

      +
        +
      1. Exits (destructs) all currently active direct and indirect inner states + of the innermost common outer state of this state and DestinationState. + Innermost states are exited first. Other states are exited as soon as all + their direct and indirect inner states have been exited
      2. +
      3. Executes the passed transition action, forwarding the passed event
      4. +
      5. Enters (constructs) the state that is both a direct inner state of the + innermost common outer state and either the DestinationState + itself or a direct or indirect outer state of DestinationState +
      6. +
      7. Enters (constructs) the tree formed by the direct and indirect inner + states of the previously entered state down to the DestinationState + depth first
      8. +
      9. Enters (constructs) the tree formed by the direct and indirect inner + initial states of DestinationState depth first
      10. +
      11. Instructs the state machine to discard the current event and to continue + with the processing of the remaining events (see + state_machine::process_event for + details)
      12. +
      +

      Returns: An unspecified value of the result +enumeration. The user-supplied react member function must return +this value to its caller
      +Throws: Any exceptions propagated from operator new (used +to allocate states), state constructors, the transition action or +Allocator::allocate (the template parameter passed to the base class of +outermost_context_type)
      +Note: Must only be called from within react member +functions, which are called by custom_reaction instantiations. +All direct and indirect callers should be exception-neutral
      +Caution: Inevitably exits (destructs) this state before returning to +the calling react member function, which must therefore not +attempt to access anything except stack objects before returning to its caller

      +
      result terminate();
      +

      Effects: Terminates the state and instructs the state machine to +discard the current event and to continue with the processing of the remaining +events (see state_machine::process_event +for details)
      +Returns: An unspecified value of the result enumeration. +The user-supplied react member function must return this value to +its caller
      +Note: Must only be called from within react member +functions, which are called by custom_reaction instantiations. +All direct and indirect callers should be exception-neutral
      +Caution: Inevitably exits (destructs) this state before returning to +the calling react member function, which must therefore not +attempt to access anything except stack objects before returning to its caller

      +

      Class template simple_state observer functions

      +
      outermost_context_type & outermost_context();
      +

      Returns: A reference to the outermost context, which is always the +state machine this state belongs to
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses

      +
      const outermost_context_type & outermost_context() const;
      +

      Returns: A reference to the const outermost context, which is always +the state machine this state belongs to
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses

      +
      template< class OtherContext >
      +OtherContext & context();
      +

      Returns: A reference to a direct or indirect context
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses

      +
      template< class OtherContext >
      +const OtherContext & context() const;
      +

      Returns: A reference to a const direct or indirect context
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses

      +
      template< class Target >
      +Target state_cast() const;
      +

      Returns: Has exactly the same semantics as +state_machine::state_cast
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses. The result is unspecified if this function is +called when the machine is not stable

      +
      template< class Target >
      +Target state_downcast() const;
      +

      Returns: Has exactly the same semantics as +state_machine::state_downcast
      +Note: Unless the direct subclass is the state class +template, this function must not be called from the constructors of direct and +indirect subclasses. The result is unspecified if this function is +called when the machine is not stable

      +

      Class template simple_state static functions

      +
      static id_type static_type();
      +

      Returns: A value unambiguously identifying the type of +MostDerived. id_type values are comparable with +operator== and operator!=. An unspecified collating order +can be established with std::less< S::id_type >

      +
      template< class CustomId >
      +static const CustomId * custom_static_type_ptr();
      +

      Returns: The pointer to the custom type identifier for +MostDerived or 0. If != 0, CustomId must +match the type of the previously set pointer. The result is undefined if this +is not the case
      +Note: This function is not available if + +BOOST_FSM_USE_NATIVE_RTTI is defined

      +
      template< class CustomId >
      +static void custom_static_type_ptr( const CustomId * );
      +

      Effects: Sets the pointer to the custom type identifier for +MostDerived
      +Note: This function is not available if + +BOOST_FSM_USE_NATIVE_RTTI is defined

      +

      Header <boost/fsm/state.hpp>

      +

      Class template state

      +

      This is the base class template of all states that need to call any of the +following simple_state member functions from their constructors:

      +
      void post_event(
      +  const intrusive_ptr< const event_base > & );
      +
      +outermost_context_type & outermost_context();
      +const outermost_context_type & outermost_context() const;
      +
      +template< class OtherContext >
      +OtherContext & context();
      +template< class OtherContext >
      +const OtherContext & context() const;
      +
      +template< class Target >
      +Target state_cast() const;
      +template< class Target >
      +Target state_downcast() const;
      +

      States that do not need to call any of these functions from their +constructors should rather derive from the simple_state class +template, what saves the implementation of the forwarding constructor.

      +

      Class template state synopsis

      +
      namespace boost
      +{
      +namespace fsm
      +{
      +  template<
      +    class MostDerived,
      +    class Context,
      +    class Reactions = no_reactions,
      +    class InnerInitial = unspecified,
      +    history_mode historyMode = has_no_history >
      +  class state : public simple_state<
      +    MostDerived, Context, Reactions, InnerInitial, historyMode >
      +  {
      +    protected:
      +      struct my_context
      +      {
      +        // implementation-defined
      +      };
      +
      +      typedef state my_base;
      +
      +      state( my_context ctx );
      +      virtual ~state();
      +  };
      +}
      +}
      +

      Direct and indirect subclasses of state must provide a +constructor with the same signature as the state constructor, +forwarding the context parameter.

      +
      +

      Revised +12 December, 2003

      +

      Copyright © 2003 Andreas Huber Dönni. +All Rights Reserved.

      + + + + diff --git a/doc/reference.pdf b/doc/reference.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3793ed48982786649153854e4ef125c6074582c3 GIT binary patch literal 106169 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

      fbt@A3ZGQM|@*p7kmBc%ysS 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 literal 0 HcmV?d00001 diff --git a/doc/tutorial.html b/doc/tutorial.html index f31b861..d6e415f 100644 --- a/doc/tutorial.html +++ b/doc/tutorial.html @@ -24,9 +24,14 @@


      +

      The Japanese translation of this tutorial can be found at + +http://prdownloads.sourceforge.jp/jyugem/7127/fsm-tutorial-jp.pdf. Kindly +contributed by Mitsuo Fukasawa.

      Contents

      Introduction
      +
      How to read this tutorial
      Hello World!
      A stop watch
      Defining states and events
      @@ -38,8 +43,7 @@
      Spreading a state machine over multiple translation units
      Guards
      -
      In-state reactions - (aka inner transitions)
      +
      In-state reactions
      Transition actions
      Advanced topics
      Reaction function reference
      @@ -50,6 +54,8 @@
      Deferring events
      History
      Orthogonal states
      +
      State queries
      +
      State type information
      Exception handling
      Submachines & Parametrized States
      @@ -72,6 +78,25 @@ The UML specifications can be found at http://www.omg.org/cgi-bin/doc?formal/03-03-01 (see chapters 2.12 and 3.74).

      All examples have been tested with MSVC7.1 and boost distribution 1.30.2.

      +

      How to read this tutorial

      +

      This tutorial was designed to be read linearly. First time users should +start reading right at the beginning and stop as soon as they know enough for +the task at hand. Specifically:

      +
        +
      • The tutorial starts out with the Hello World! + and stop watch examples explaining the most + basic features that all users of the library should understand. Small and + simple machines with just a handful of states can be implemented reasonably + well by using just these features.
      • +
      • Afterwards, the digital camera example + explains the intermediate features most of which should be known by anyone + wanting to build larger machines with up to roughly a dozen states.
      • +
      • Finally, users wanting to create even more complex machines and project + architects evaluating boost::fsm should also read the + Advanced topics section at the end. Moreover, + reading the Limitations section in + the Rationale is strongly suggested.
      • +

      Hello World!

      We follow the tradition and use the simplest possible program to make our first steps. We will implement the following state chart:

      @@ -109,9 +134,15 @@ is destroyed what automatically exits the Greeting state.

      class template.
    7. The machine is not yet running after construction. We start it by calling initiate().
    8. -
    9. All states reside in a context. For the moment, this context is the - state machine. That's why Machine is passed as the second - template parameter of Greeting's base.
    10. +
    11. Whenever the state machine enters a state it creates an object of the + corresponding state class. The object is then kept alive as long as the + machine remains in the state. Finally, the object is destroyed when the + state machine exits the state. Therefore, a state entry action can be + defined by adding a constructor and a state exit action can be defined by + adding a destructor.
    12. +
    13. All states reside in a context. + For the moment, this context is the state machine. That's why Machine + is passed as the second template parameter of Greeting's base.
    14. The state machine must be informed which state it has to enter when the machine is initiated. That's why Greeting is passed as the second template parameter of Machine's base. We have to forward @@ -182,15 +213,16 @@ int main()
    15. The simple_state class template accepts up to four parameters.
        -
      • The third parameter specifies reactions (explained in due course). - Because there aren't any yet, we pass fsm::no_reactions, - which is also the default.
      • +
      • The third parameter specifies + reactions (explained in due course). Because there aren't any yet, we + pass fsm::no_reactions, which is also the default.
      • The fourth parameter specifies the inner initial state, if there is one.
    16. A state is defined as an inner state simply by passing its outer state - as its context (where outermost states pass the state machine).
    17. + as its context (where outermost + states pass the state machine).
    18. Because the context of a state must be a complete type (i.e. not forward declared), a machine must be defined from "outside to inside". That is, we always start with the state machine, followed by outermost states, followed @@ -203,9 +235,8 @@ int main() declarations.
    19. Adding reactions

      -

      A reaction is anything that happens as the result of the processing of an -event. For the moment we will use only one type of reaction: transitions. We -insert the bold part of the following code:

      +

      For the moment we will use only one type of reaction: transitions. We +insert the bold parts of the following code:

      #include <boost/fsm/transition.hpp>
       
       // ...
      @@ -229,7 +260,7 @@ int main()
         return 0;
       }

      A state can define an arbitrary number of reactions. That's why we have to -put them into an mpl::list<> as soon as there is more than one of +put them into an mpl::list as soon as there is more than one of them (see Specifying multiple reactions for a state).
      Now we have all the states and all the transitions in place and a number of @@ -397,7 +428,8 @@ limitations:

      reactions have mutually exclusive guards. The interface we used above only allows for at most one unguarded reaction for each event. Moreover, the UML concepts junction and choice point are not directly supported. -
    20. There is no way to specify in-state reactions (aka inner transitions).
    21. +
    22. There is no way to specify + in-state reactions.
    23. All these limitations can be overcome with custom reactions. Warning: It is easy to abuse custom reactions up to the point of invoking undefined @@ -450,8 +482,8 @@ struct EvConfig : fsm::event< EvConfig > {}; struct NotShooting; struct Camera : fsm::state_machine< Camera, NotShooting > { - bool IsMemoryAvailable() const { return true; } - bool IsBatteryLow() const { return false; } + bool IsMemoryAvailable() const { return true; } + bool IsBatteryLow() const { return false; } }; struct Idle; @@ -494,10 +526,10 @@ fsm::result Idle::react( const EvConfig & )

      Caution: Any call to the simple_state::transit<>() or simple_state::terminate() (see Reaction function reference) -member functions will inevitably destruct the current state object (similar to -delete this;)! That is, code executed after any of these calls -may invoke undefined behavior! That's why these functions should -only be called as part of a return statement.

      +member functions will inevitably destruct the state object (similar to +delete this;)! That is, code executed after any of these calls may +invoke undefined behavior! That's why these functions should only +be called as part of a return statement.

      Guards

      The inner workings of the Shooting state could look as follows:

      @@ -560,11 +592,10 @@ fsm::result NotShooting::react( const EvShutterHalf & ) } } // ...
    -

    In-state reactions (aka -inner transitions)

    -

    The self-transition of the Focused state could also be implemented as an -in-state reaction, which has the same effect as long as Focused does not have -any entry or exit actions:

    +

    In-state reactions

    +

    The self-transition of the Focused state could also be implemented as an +in-state reaction, which has +the same effect as long as Focused does not have any entry or exit actions:

    Shooting.cpp:

    // ...
     fsm::result Focused::react( const EvShutterFull & )
    @@ -577,7 +608,8 @@ fsm::result Focused::react( const EvShutterFull & )
       {
         std::cout << "Cache memory full. Please wait...\n";
         // Indicate that the event can be discarded. So, the 
    -    // dispatch algorithm will stop looking for a reaction.
    +    // dispatch algorithm will stop looking for a reaction
    +    // and the machine remains in the Focused state.
         return discard_event();
       }
     }
    @@ -586,8 +618,9 @@ fsm::result Focused::react( const EvShutterFull & )
     

    As an effect of every transition, actions are executed in the following order:

      -
    1. Starting from the innermost current state, all exit actions up to but - excluding the innermost common outer state (aka LCA, least common ancestor).
    2. +
    3. Starting from the innermost active state, all exit actions up to but + excluding the + innermost common outer state.
    4. The transition action (if present).
    5. Starting from the innermost common outer state, all entry actions down to the target state followed by the entry actions of the initial states.
    6. @@ -653,7 +686,7 @@ member functions, which must return by calling exactly one function define a reaction for the event.
    7. simple_state::discard_event(): The dispatch algorithm stops searching for a reaction and the current event is discarded. Useful to - implement in-state reactions.
    8. + implement in-state reactions.
    9. simple_state::defer_event(): The current event is pushed into a separate queue and the dispatch algorithm stops searching for a reaction. When the state is exited later, the separate queue is emptied into @@ -717,7 +750,7 @@ example of how to do this:

      with new. The events in the queue are processed as soon as the current reaction is completed. Events can be posted from inside react functions, entry-, exit- and transition actions. However, posting from inside -entry actions is a bit more complicated (see e.g. Focusing::Focusing +entry actions is a bit more complicated (see e.g. Focusing::Focusing() in Shooting.cpp in the Camera example):

      struct Pumping : fsm::state< Pumping, Purifier >
       {
      @@ -746,7 +779,7 @@ so this workaround should not uglify user code too much.

      Deferring events

      To avoid a number of overheads, event deferral has one limitation: Only events allocated with new and pointed to by a -boost::intrusive_ptr<> can be deferred. Any attempt to defer a +boost::intrusive_ptr can be deferred. Any attempt to defer a differently allocated event will result in a failing runtime assert. Example:

      struct Event : fsm::event< Event > {};
       struct Initial;
      @@ -782,8 +815,9 @@ chart as follows:

      As mentioned earlier, the Configuring state contains a fairly complex and deeply nested inner machine. Naturally, we'd like to restore the previous -state down to the innermost state(s) in Configuring, that's why we use a deep -history pseudo state. The associated code looks as follows:

      +state down to the innermost state(s) +in Configuring, that's why we use a deep history pseudo state. The associated +code looks as follows:

      // not part of the Camera example
       struct NotShooting : fsm::simple_state< NotShooting, Camera,
         /* ... */, Idle, fsm::has_deep_history > //
      @@ -809,11 +843,11 @@ and the appropriate states entered. The former is expressed by passing either
       fsm::has_full_history (which combines shallow and deep history) 
       as the last parameter to the simple_state and state 
       templates. The latter is expressed by specifying either 
      -fsm::shallow_history<> or fsm::deep_history<> as a 
      -transition destination or, as we'll see in an instant, as an inner initial 
      -state. Because it is possible that a state containing a history pseudo state 
      -has never been entered before a transition to history is made, both templates 
      -demand a parameter specifying the default state to enter in such situations.

      +fsm::shallow_history or fsm::deep_history as a transition +destination or, as we'll see in an instant, as an inner initial state. Because +it is possible that a state containing a history pseudo state has never been +entered before a transition to history is made, both class templates demand a +parameter specifying the default state to enter in such situations.

      The redundancy necessary for using history is checked for consistency at compile time. That is, the state machine wouldn't have compiled had we forgotten to pass fsm::has_deep_history to the base of @@ -835,10 +869,10 @@ struct NotShooting : fsm::simple_state< NotShooting, Camera, // ...

      Unfortunately, there is a small inconvenience due to some template-related implementation details. When the inner initial state is a class template -instantiation we always have to put it into an mpl::list<>, +instantiation we always have to put it into an mpl::list, although there is only one inner initial state. Moreover, the current deep -history implementation has some limitations. Please have a look at the -Limitations chapter in the Rationale.

      +history implementation has some +limitations.

      Orthogonal states

      To implement this state chart you simply specify more than one inner @@ -904,17 +938,19 @@ struct CapsLockOn : fsm::simple_state< struct CapsLockOff : fsm::simple_state< CapsLockOff, Active::orthogonal< 2 >, fsm::transition< EvCapsLockPressed, CapsLockOn > > {};

      -

      State queries

      -

      Often reactions in a state machine depend on the current state in one or +

      State queries

      +

      Often reactions in a state machine depend on the active state in one or more orthogonal regions. This is because orthogonal regions are not completely orthogonal or a certain reaction in an outer state can only take place if the -inner orthogonal regions are in particular states. For this purpose, the -previously introduced state_cast<>() function is also available -within states.

      -

      As a somewhat far-fetched example, let's assume that our keyboard above -also accepts EvRequestShutdown events, the reception of which -makes the keyboard terminate only if all lock keys are in the off state. We -would then modify the Active state as follows:

      +inner orthogonal regions are in particular states. For this purpose, the +state_cast<>() function introduced under +Getting state +information out of the machine is also available within states.

      +

      As a somewhat far-fetched example, let's assume that our +keyboard also accepts EvRequestShutdown +events, the reception of which makes the keyboard terminate only if all lock +keys are in the off state. We would then modify the Keyboard state machine as +follows:

      struct EvRequestShutdown : fsm::event< EvRequestShutdown > {};
       
       struct NumLockOff;
      @@ -938,16 +974,107 @@ struct Active: fsm::simple_state<
           }
         }
       };
      -

      Just like dynamic_cast, passing a pointer type instead of -reference type results in 0 pointers being returned when the cast fails. Note -also the use of state_downcast instead of state_cast. -Similar to the differences between boost::polymorphic_downcast -and dynamic_cast, state_downcast is a much faster -variant of state_cast and can only be used when the passed type -is a most-derived type. state_cast should only be used if you -want to query an additional base, as under -Getting state -information out of the machine.

      +

      Passing a pointer type instead of reference type results in 0 pointers +being returned instead of std::bad_cast being thrown when the +cast fails. Note also the use of state_downcast<>() instead of +state_cast<>(). Similar to the differences between +boost::polymorphic_downcast<>() and dynamic_cast, +state_downcast<>() is a much faster variant of state_cast<>() +and can only be used when the passed type is a most-derived type. +state_cast<>() should only be used if you want to query an additional +base.

      +

      Custom state queries

      +

      It is often desirable to find out exactly which state(s) a machine +currently resides in. To some extent this is already possible with +state_cast<>() and state_downcast<>() but their utility is +rather limited because both only return a yes/no answer to the question "Are +you in state X?". It is possible to ask more sophisticated questions when you +pass an additional base class rather than a state class to state_cast<>() +but this involves more work (all states need to derive from and implement the +additional base), is slow (under the hood state_cast<>() uses +dynamic_cast), forces projects to compile with C++ RTTI turned on +and has a negative impact on state entry/exit speed.

      +

      Especially for debugging it would be so much more useful being able to ask +"In which state(s) are you?". For this purpose it is possible to iterate over +all active innermost states with state_machine::state_begin() +and state_machine::state_end(). Dereferencing the returned +iterator returns a reference to const state_machine::state_base_type, +the common base of all states. We can thus print the currently active state +configuration as follows (see the Keyboard example for the complete code):

      +
      void DisplayStateConfiguration( const Keyboard & kbd )
      +{
      +  char region = 'a';
      +
      +  for (
      +    Keyboard::state_iterator pLeafState = kbd.state_begin();
      +    pLeafState != kbd.state_end(); ++pLeafState )
      +  {
      +    std::cout << "Orthogonal region " << region << ": ";
      +    std::cout << typeid( *pLeafState ).name() << "\n";
      +    ++region;
      +  }
      +}
      +

      If necessary, the outer states can be accessed with +state_machine::state_base_type::outer_state_ptr(), which returns a +pointer to const state_machine::state_base_type. When called on +an outermost state this function simply returns 0.

      +

      State type information

      +

      To cut down on executable size some applications must be compiled with C++ +RTTI turned off. This would render the ability to iterate over all active +states pretty much useless if it weren't for the following two functions:

      +
        +
      • static unspecified_type simple_state::static_type()
      • +
      • unspecified_type
        +
          state_machine::state_base_type::dynamic_type() const
      • +
      +

      Both return a value that is comparable via operator==() and +std::less. This alone would be enough to implement the +DisplayStateConfiguration() function above without the help of +typeid but it is still somewhat cumbersome as a map must be used to +associate the type information values with the state names.

      +

      Custom state type information

      +

      That's why the following functions are also provided (only available when + +BOOST_FSM_USE_NATIVE_RTTI is not defined):

      +
        +
      • template< class T >
        + static void simple_state::custom_static_type_ptr( const T * );
      • +
      • template< class T >
        + static const T * simple_state::custom_static_type_ptr();
      • +
      • template< class T >
        + const T * state_machine::
        +  state_base_type::custom_dynamic_type_ptr() const;
      • +
      +

      These allow us to directly associate arbitrary state type information with +each state ...

      +
      // ...
      +
      +int main()
      +{
      +  NumLockOn::custom_static_type_ptr( "NumLockOn" );
      +  NumLockOff::custom_static_type_ptr( "NumLockOff" );
      +  CapsLockOn::custom_static_type_ptr( "CapsLockOn" );
      +  CapsLockOff::custom_static_type_ptr( "CapsLockOff" );
      +  ScrollLockOn::custom_static_type_ptr( "ScrollLockOn" );
      +  ScrollLockOff::custom_static_type_ptr( "ScrollLockOff" );
      +
      +  // ...
      +}
      +

      ... and rewrite the display function as follows:

      +
      void DisplayStateConfiguration( const Keyboard & kbd )
      +{
      +  char region = 'a';
      +
      +  for (
      +    Keyboard::state_iterator pLeafState = kbd.state_begin();
      +    pLeafState != kbd.state_end(); ++pLeafState )
      +  {
      +    std::cout << "Orthogonal region " << region << ": ";
      +    std::cout <<
      +      pLeafState->custom_dynamic_type_ptr< char >() << "\n";
      +    ++region;
      +  }
      +}

      Exception handling

      Exceptions can be propagated from all user code except from state exit actions (mapped to destructors and destructors should virtually never throw in @@ -1115,12 +1242,12 @@ struct Off : fsm::simple_state<

      Asynchronous state machines

      Why asynchronous state machines are necessary

      As the name suggests, a synchronous state machine processes each event -synchronously. This behavior is implemented by the state_machine<> +synchronously. This behavior is implemented by the state_machine class template, whose process_event() only returns after having executed all reactions (including the ones provoked by internal events that actions might have posted). Moreover, this function is also strictly -non-reentrant (just like all other member functions, so state_machine<> -is not thread-safe). This makes it difficult for two state_machine<> +non-reentrant (just like all other member functions, so state_machine +is not thread-safe). This makes it difficult for two state_machine subclasses to communicate via events in a bi-directional fashion correctly, even in a single-threaded program. For example, state machine A is in the middle of processing an external event. Inside an action, it decides @@ -1134,20 +1261,20 @@ external event and as soon as B answers via the call-back, A::process_event is unavoidably reentered. This all really happens in a single thread, that's why "wait" is in quotes.

      How it works

      -

      In contrast to state_machine<>, -asynchronous_state_machine<> does not have a member function -process_event(). Instead, there is only queue_event(), -which returns immediately after pushing the event into a queue. A worker -thread will later pop the event out of the queue to have it processed. For -applications using the boost::thread library, the necessary locking, unlocking -and waiting logic is readily available in class worker<>.

      -

      Applications will usually first create a worker<> object and -then create one or more asynchronous_state_machine<> subclass +

      In contrast to state_machine, asynchronous_state_machine +does not have a member function process_event(). Instead, there +is only queue_event(), which returns immediately after pushing +the event into a queue. A worker thread will later pop the event out of the +queue to have it processed. For applications using the boost::thread library, +the necessary locking, unlocking and waiting logic is readily available in +class worker.

      +

      Applications will usually first create a worker object and +then create one or more asynchronous_state_machine subclass objects, passing the worker object to the constructor(s). Finally, worker<>::operator()() is either called directly to let the machine(s) run in the current thread, or, a boost::function object referencing operator() is passed to a new boost::thread. -I the following code, we are running one state machine in a new boost::thread +In the following code, we are running one state machine in a new boost::thread and the other in the main thread (see the PingPong example for the full source code):

      // ...
      @@ -1231,9 +1358,9 @@ exceptions that machines fail to handle. In this case all machines are
       terminated before the exception is propagated.

      Caution:

        -
      • asynchronous_state_machine<> subclass objects must not - be destructed before worker::operator()() returns. Moreover, - the worker<> object may be destructed only after all of the +
      • asynchronous_state_machine subclass objects must not be + destructed before worker::operator()() returns. Moreover, the + worker object may be destructed only after all of the registered state machines have been destructed. Violations of these rules will result in failing runtime asserts.
      • The interface of asynchronous_state_machine consists of @@ -1241,13 +1368,13 @@ terminated before the exception is propagated.

        other functions like initiate(), process_event(), etc. are nevertheless also publicly available, but it is not safe to call these functions from any other thread than the worker (over which most users - have no control). asynchronous_state_machine<>::queue_event() - is the only function than can safely be called simultaneously from multiple - threads.
      • + have no control). + asynchronous_state_machine<>::queue_event() is the only function than + can safely be called simultaneously from multiple threads.

      Revised -12 October, 2003

      +12 December, 2003

      Copyright © 2003 Andreas Huber Dönni. All Rights Reserved.

      diff --git a/doc/tutorial.pdf b/doc/tutorial.pdf index 373f1e6d3b10e7a2d687ab93b027204b1b63cf49..e3cc8962456a7c21125729a3cd5096a609d2697a 100644 GIT binary patch delta 125108 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�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 delta 118696 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

      39^&D&Yk$za(Z%>*Y-aRhwk?1 z2TppT7NNVODC0=5uS{w1B;iS631)A77E1mqvDUwBUH;4O@DBEC-wgi;wr<}Qwt4EM z+vYcz43F?m`zZG^Xfrog{FAc}{kBhC{V;2NOPJMeE`bdUo7y86CmmI~w#3#uk8#(l zlzKt+&}%vuTRl=!A2)2{+td-<<(^Yt)Hf^)c9F|Jpm?8sn?=uNh2)|G z4_+=ZUhH>w=3(JEF7*@57n#0PviCb~)NYz{{QyJF@7Ys7@cWgUpZa@#cjlk?zsJ7! zN&5se%YOU5t!%Z)+&!88e|jcr*XA<)-hO$?yXyWMTrFwg+4^yRb*?;ll6Fl;kISWU&+KB=&SE~C5VAD;(qk?AWB*p)*-`)I?JAzfcYZ#X@;e^7 zriLehM{}n5U)yD2FMKYo3;mhgrtl%f%FBArxgR%9&zG{lQ4*#9YVFH}`a9wJSvytr zxg?(Eo^`qRuy8`T*1x|`*D~{Me|mPmYNG5yr! z+2jKqZTeH~-gU*@Q`4%fiFtb5G475NztZ~${tNbO=h(JD{M=s=h4iln-diYmdfa~6 zEgn<7d1_0ryiAX|aC$4p+l_gD%)07lm2J|}^N|Qswf%N_f|UK0RV`)F8ng5#zm_~& z{O|zd$35FM;;P;}_3V}Ru@V2UaK&7%kz!#n!j@!Mi=Y}2papdJU#Weye6kG)qG)~;R-8Q}7)5!Yk z1(Rz<(-J+uEV?J8G4;pp#8;1uHuWl;v)`y(_jPw^apkOayzZ7&6PTN3One}eWbvh2 zq&C%Qv3+2r;HTwX1=Y7KnSLybP}ry}G-2AJ%x^aS^$K?k8ugjX4qd;>5kKAcFw5!h z?dvC6g)yf7$cub!U=}g$!FDr+>mN)`Je9k&NkVdmudcUU*vs8Ki{?f5oM(Bp?b0dn zFO!~K+$g`J_{qxt+?^L*8*-{2kQQdz|5GQaIo{H|$nP`j$8e5I(>MQTd~>C08tOcf zeo_{fp&{&6DPu!3`03JyMuyP&C8UWYqsf8uR3|?;!d_oDKi<&)oX>)XpR&w$nlT;8 zmM%#65ye>dfvqv@xYxG6t$knhc>aH%P&+}s{ix-ViIXjwz69KL7VBQK+vA&l@VO=P zK7BA}Y8RiJexLiM&;2_-bu%;6dJJ>Fb02CKzwG~gcU$oP{q;r<&se7Kx_@Mgp^w&W zzuRHP|BL=7eR}++tX?lFZSKsu=fvv_&ZXWy)AyV^amI#I=hi)UGP>>c-_KBctHI{U zKNqDsNv=x^zwpv(uV3!+;^Q*m*A&iuzZnpFdD~psvI$wUZp!|tvyS&rYq?OBAtfc_ z*u3)i>6s6r&YTOneR|DN4`u~x-3*Qn#+!*MJnEG@`?h>9X?9^wk`BLApCMD3!g*G> zSNNBa;*K=|GsS*bneOA5qNzCd+>4zvqtmwfF7ft1(*4u^`+via5)q5%Okez0S>Nmi z_k_?7O1AgUux7W4G$j>F^s89-{yet6Ibl(ukhSa)KNYozyVtc_^c^@a$8Iw!3^}q( zC1TS9Nk@mMl$b@7W7_QZMpI%`$j{*PcIH`YhfG=)3$nmf5+D)!$yKc^s%U*P{t<|XU)IA=aJ25Aw&78N`zQW|#anZal z`zNVSvZ>e=c6Pm1!4%W!ho(H|G;C;IWFEzL`chT>M2R^QKWxj;FSMChu)!@<=sDk{ z_qvt>ZA~Yb1?H$42P7*62_M(s;Z)#$P?f^ToEvm4%OP<}Q9XN|-PgwHmY2@)n9Rwv zjB4Dn#UMaVaw%Ig_oqNz`9)DLt0lCTb?e#4)d;TZ%!tUIoxmk!S0?A2lo zJZiyy(MiDRnS{_{p4Wd~&C)wH!M1qOGv~UAO#R-sVlGU3k>j$J@%0M>mM-9ao z_eOPkwa@L&Em`qr#AkW#RFNuq#=P)&WQ?QB@3v(%lNFTA?)B9#xOhkQxWb~QX=2eX zY#*ao-On26dM0dGC*It-(dVT^=ANbQ%5O#Aez^Y2>yp#TKVmnU&tTf+N>L#ci@5BKxKPoJ#twZ8Cr z?M4aTooREd*MHoUm>2LfUAA8Csr74~c}!=*4$b1uY(Kb1)39vU|Enqg*W0r#?efiM z+{gBV@4?|kd!PB9zr|6{_(AkQJHvg(8s-m@2c|RZXZ(@8zvkh=u0*$f(}~j==7*`Z zet0`g_~6EQ;_s(^{umt~QnXM{tCl@t%ef<_oE7I7_A&g>J@A}Cp81b{gWz-B1NH1v zzcb4{ZkbWb^uDl9pV5x>$10}#Vb4lAKS(!x*Lu8f#fAEb7v)uaW?s8J*{n6Y}owGRNLqAN>d3(Q}@5An^T30(? z$v)V*_JGEu6OHe+bF&`x$n4gqDqWY_GyD?hyUulA0G;ZT14jWY%`4$aI^fd_j~=P zLuYFx@=Db1>~B`6@#&10Z~OUt|C2*MJU+&mUs(1-pV95*x}#niYc&?W=*g-LjPlpY z-JpLg={T$M@9+9rUt&aRs~gwtED_<8d0o5oZ`;PuJZa;1|LgVJp7>9Ev(DztU!|L8 zo%ob&cDQToRXQZAd;foN%kR|A<-!l!JKTETem`=vv*6vQ(;e@}jZ6R$jYRzGf458wzk6%Zx!T;~Pnok9M}5C(;nNb7PJdAy@tCrXPptjfdC0E|Ad$7CtO}EB|btjLUVtO5XbFx{yf9iRW z0Q;ny!M}bataf@nS^JOi&O^(cQeNuK=bC7(?_!s`)m~Idey6}srd>8FEAB6OuwymL zBDG7Yi5s`nm;DcIbzK>ud{;g$;!jQer@K$4ue-8%$y~0)GhdRFe6(i<{e5g{Q}kRu z`0=}sC7%v|`E<}+Y-wT7>wm`{UEk%uzGU=s#m?*51uM5U zcf1fY6qEB3TzdVMqvj&+{c;;c0xxXv)O@tV$=}a@qGOBHv0CjU&6jIkTW5TcWA5oR zJjHiP|CIOIDH~S%Jer)OlXCmoruY+YF0viGI_ZqiLzD7*PMJK*17+lXGrXOjT3;U< zajrsJk!Ri0^x2xC1qSQc^`d{aZkpG4E@h|LwZDs=Pb^f{*(G=UiNo9N7t@{Ic*aeZ zFZJtQ%b#}UJ`@q!*Zn=^ak$yFIPcGl zou7gQcg=hlC@|Z}dhZlZ%hPQ(uihtS%_`sZ>`;xA_>Q!u2bQm&XYZM1d2#K|Z^_+; z>=zgP-gWrU&lwjoIPd;FRrPnmt*>3nq~$Hj%(>l{fl@ntP_YN(KiulgmG#w?@p(P@FGJWJq>V=MBm zJzP|feE8C~Gh1(!mTtM=``z5)(0jL+H$r9>vb;Mc=yciG{@}Fi+p6BSx({ty)MxLm zyMC{&X5#I*Ew`@i^oz2|*ct5TWf?q&yQXrkL&fY3a%ua$kItz#NM3N^DQD6zHMQ4X zmBCLV&n)lFf6+4|PTt?|-z#Iz{I9nr+^zO2n*aNEsL98VHnwg5p06zYf8+VTJN?D) zdzMU9JUa8%gz%g5j^96a`)+|%^S>t7JrOd(%KimrvWn55ZrWve>GwHSaldCReaW#P zruX_);k_OS3$Cy1x%aSeLA|;9|A$}9;@(Yr=^Nj_vhL)Hh?0jUeok4vlO^Pjds^(h z?fK)$`4u%nLLS?nF6xiEcscu!Qh)#RmxT+&Lo?LB@TKv-yvr}PfY%}i*>y#)%crRKI~#1WO(%)VS63xHo;&e+)lY#b%MPi_9eQ5caXvstbY_F% z0e7Aa(^mVge6qUgYu>M_4X?KDuFleV;r0E3zf|1Uf6FCf{PWkgN(Pp8gtkSf9&vVd z_@iK*+q}Ev^11NoV$In1 zHOrhi`+ZUl)YvE=Jf9T8>l?q<%iwQgzp|6p|RDG9r; zAM;;-wElJ4#y(s~P$&4&1>*ZR`|2`lBnw*hZ+7oElDS;$nmdQMZ^+wM=!uMOLU0)F#UY4vE;t*Ki)aZieynbZbJE>j++s@<7Q%HI(hC9m-^V~VwvNm=RW`I`s%$W zAhW%8w)A7KsX3aR!G1?4P59J2rRbo7gJUFv3P-@D{pH`!lzhK_`T3bt#-NllLf%)c zU%Y(1^Zv81VIrq;T7RE6Keyie{Jx1%`SJU1?zuO^DJ(R!y#C;~pI^UyU%qbfty}fW zr%MNJ$&D_ppL~0h)|9+gx%IKL582u5y;rl{+IHfi6{ok|{adhU`)1CCuZqeG7j?Ty zM!wyqUVYn~v zlo0jy+^)N?jcT>ao*uJ3;`+zw{mcBDlDi{6x!#aH>iVO2t98?}0@u>L)sA|fKBdHq z2Zc|)dH1NA-rrli%a&&G?wNLXTEMA!@BYvG_uOsjq7^babN6j%Xns&6I(_QA8MR0E zW-E4)#;aGTvOAvirR9o(Fs1yuG+`Th7kO{lfnp zn2u~nPP~=!R!(wBbV0jisc?SYde_YVE4EcyG=GV;lcUa-B^OlCy0# zdY(9G^MzBLe)au7R7CcrCq@sWTA|K{lz z@6L9*`S!-m9z*2@y|*)t>1nNd$)O-K&D=`<`jZ9&zfXVl&IwIi)KPsfS@%%3$f@g# zE-ahK9q>=?7XO7~|I9DkGkPCq@IKD@cbDYnoP#so6+G$}{_#Ae-_Ni9h_jzW?PJNkVRxtW zUED7jb~CK-{kmGvIYxF4yYKH7T)Ox5ey88OTi!3MJ!W&faGvp7?~MCSzxi(2r+%OM zz4G9i%82GQx3j)a+j(D_jqTX?`g!-a3a#CHx<%0T{Ys~m6NPw^!h`#dtW#)q@p1Xa zr;@kecIxW3?9VP;3HHTn9_pN{=2-2@;$FqrBRGwD^Fx^>Js<18OjDkDkk@q|$8mA_ zW789a%NcjSn5+Ltbrf-M7<<{$zE;cQdP!<%fwn+(p73O$uj&_z!-0`)> zvU&`HhjIAO{_n+(^@2PHp8lJlB^z*LrPEEOJBMQ&Cdr+< z^SZvLp`CmiBg^w`2T7#}Y!ROHOE=-JnK*Vo^RQGMM0Q@Y55vP#hqMI7BMnHUH|4a2KX$__ZQdL zeKj@YY;jcH#2#VRLxp?Ka&9@i;$Oz=NzNxN#7ey!w-hrUsE@uVF^xxb$;2N)cYM^k z57h3wuIcQW$}!t#Zr8g#XPZn_cg@Vyj&o_Xbi8s-hJAP9b%&q@r{{S^o;8`o9cH>YwpqaMJAp0Z5}??E;vky{1biG z_@-HIQ%u1Eo~s>`*lyJ4EdIjuCAopY-TusiE*D0|C2R&8T%DXa=ViuA$#Mj)TQ1VL z*nOj-l9j^|?nz=7)ADCDq~y(cG1-90sZ;XsBg1W5C(c;1=8n^1lUxPWwah)sjvus; zlj2&R*iG;#uRa^Nb&knqBuP@v*{iS84 zjoZ=l`MmwyPq_7;hA-WI)7AOTz4@2#@g+&sN9?`3g7^BB?e7=-72a}wlU;XDRP1lv z&wto%WlWLoi8{=GYK3ZRXtK0#b-2g9`G&e5l9$>_%ETm0;ixVCbfJ6OKOx7Mx&?}_ z<{4dFyK&)}jX&MFt}oeh${@E$W0r(*efs%{CvJZH@WHxkVM<`;LhqlG`5!L+jV{@s{p?#mhs$c7$TXskVOO#E0 z-XIuX&msKSMr^L|o{XSM$=MxYCmu2eWagHglj5*>%{<|7a7t0qj;Slke^-BOG7$5ocoE+%hieeB=#o5ehrBi7z5dGn)Un|5^a#x<2* z+oTV685&GVdZV-H$hyd}hb)s55N|kvqWk z=cojWl1yIDaJ-w*C zMLd~tg>Tr8REAYM)}78s<($%J5^B)WI8F4}v96vAhFhMV?aaGX;8pbd^061Ip0n&S znwEP-@6f&fHaYw5cC5AC@mBfVO2e|%FD?JF^*%W5dwywZ)Y_t-OS1We3X{XJ(?^w;f>)mvNbFOA->zLR379aSx{mkzB-`=j8YE)V7`HE#(&Y#y> zv9a9To>%vD{@Jf{a%GRI)d|&06Fz(HzjfoQ30INoS8t`=7bgC8k@@N!E4Xdau9-!( zm2=PR^BVf`nbETDD#urx;slVPpQ_p zMrT&?#s~UN_xj$s{txqK(KlbFMGEMBasBk}z$CUuKbN0W}|C++-&s^KZ`F&n7i>#|{Kd5wBc_C%|VCROtW6zg2 zuCCtba)^EZzK)AMQzlr?*LAy)9t=B z3l4Ziw;b;(^OH^Y^4h|$v})ovzsuV`9G(8Mq+2t;a{f9eE%g-M348a~dc=KHiab|gjTT@Mz$sRejOE7o(o42#4^F7%rAS8b&Hvdh4+m^XG z4fWx>GEyUt*7{$IHZ}^{obR`4(Y2`=lR3`axwTENVRHSG`5|xi@oPzXt&e5+t)wI- z;a2KqEVb#*^a-xY8@`>loUo;xRpqCd@_b9n{ijc+xOttQ`LXga%Ulj+p2-}}Q6D_c zJQLPg(Q>NPNl&fER)FDv>f%3#9K<|Jo;wAeTh95Dc{A@PmXlX6ElkdF<56i7Fqv3( zbkds%Dz9R^c;z1F*Ryj)i*41eo37zd%ay)hRf!S5?y^R|yi<#cCiVoX^P8$jsG7ZU zE?;76zlXn6T|>rvkwD+G)TetFu}r(YFQ~+3-JSEqwXk@Y{@HmG|58WEY9`W(oe4jK5vKBh7WzUf0{A z6K;N;sJZEauTS99%3DgR|2&f`6QfJ!ndAsAuRgkke~SA=-qXE1Gr|^Sraoe>G51ux zxOvB_BXie1nNYpWC-h2cERQ1BcZc|8x$kPNuj}-0-YIN1b=_alE!WeYK5KjS@8|S0 z7A-%nWOlv3;6Hh<_2cC)bv~|~-{w)@vU*KT&a241rK@(eJG0zMIPv49=DKbC+8Zxb zU#-ahDUoDX6MaPe{KLyGOOD8gO!Uu93<)#UU9YpCYMs$>sa4BwEeNVps+PCA`S?%U z@(cTtk3FgB2=BjfT3+nS&iSA1pZ$B3ss56IXYT*Psi$k-i!aoVQmO0kh`$9wLsEy)j0#8_>5 zwKJ1f>#vN|!n5y0xA605)y!CQ(WL87-_A?_;}-?09Q%7$U-6g*kH7G3D~A=hKvWUEcRc0w%Rx zzZJ*sdieh4skVzBzTVGv{K6Jp;|tNxo`wolWuITPPI4lX{oJiej@>^rqNCoc2~4Qk z-rm8YwW{g6WY9yY&5S2D2610_@MD5zP>)@%kE4li&?P;AvorNytu1rd75(LV!I9-j zJhB&4rY_x;Su`QmS;4NUpxymylzhFzVwvODe0G1hE-1Yz;lE+Ln9n5romzjnoi?o4 zuv=Qnc$xjl4LUK3LKF671tc?Sh&)x;pZZbc=@)rscWz@g1zR)yGC`G&y?HS%D~?KB zy{=Jk``0@*Q3_WHGkVx$c`~fI_Rq=vmaDxEpJ0%` zZJy3(@xsG7LP~b;kpLqjO@`|ZVoFR6GlXW#q$)Unn#r?dmF66?<~kuQuIhJ_C3x%= zwf3IUT07N%C1g_0LP@h!pTkR7Cq9^1mt|d3*jKN1TX_Dqj+Gq@?ypa4uUXmeP}?>` zTTV=wQTV3fpTF)=ehQo2pC$2LJ`yUwL;IA#j?%n?owIkTHafU? z3g4!8!VM`Ge(GLU%YS5fljW1({idnEMMVDmIac$i)5Iu5?ANyQuP4L`2F^Es^x1CL zsu^~lSuXkNCD#jixihw%nXFyix7DEcn9P*v&g_|1wYv&G^}MiX5dAVWbg%4`vbkFy zXV$eSo~`)@yU412C{iRZ7)+&wZD=h7Q?l`?s&OnUtLdMVR+%Y#x=mp`=IF8Ji&=|ZnB z5$}{TwLDhYnEw!cbZ_Q{GOhc$ymM3Z$~$DtZ%G|WJZp(VyLl?*%a5B%%xlIt*lS{ z>AE%a&?%Os+vXhHS*K?-m^b)?(g}1_ueJf zs4NTfTYl5bs4h;u>Wo8er6q6KLcis)1)F47X5H!ge{;QkN!_NmTYLliwkan*eYQko z@z+O8cdMf3t||XvxyC&9-{b4iQ87~M&0kGiqgtpNb$toOWr+>CdA@h4>aqrF={hLu%6&*nY7daV)P z>1?Uy)7%X>~^WU~7s-(24*rznS_*Q-3)lexFyEk@54<1gp_ zdrO@YzP}czo67sZ>-*ySCN{5r`de<8H!te+DgLXxklo)eIGF9b{LI%yIqrTdvU^Sv z$Fj8x|LVBNdN2FFS;Ib2yws?0ThPu0EcGn^#LKt&JGMTk=V(&$xcx)PlU)$%1eQ8z9Iof5kFs^+QeJEJX@b$fsIrtn7n@G}qRu&5ui=IwvJzrn+5KKCVNj>m^S@pCMR&;Q5gQlF5AGUy8) z^EHND1#fCr%M z^!T#mk(2yJ_6BqQt3RvtyYVpLnZP#<`R^<{llZDRAD@3Fx2N{PvH9N==g9SOOH9{3 zUaGo8a{879uV=+^oGjsgyxV79(ahcHeZM%J)l~jkx7}Z#Saa@xebT-82RABft`D1R zGQ9@s!O*WFl4Gq+1BvEJ<6=(M;!!ZAFpL$t1> z%x#)eXcS+I(6WoC3>RzMKDO?m$IU6n^q%eTpPCyg{q)D#DQk1iyzuGSuT_61JJB;) z#`X3l(@@(i9&6_-T6^9p@jR6&2%NfVRf{lF=+xd7vkL9+%e=46PgY*}D#$bVMAYd= zS^kk1`TD&p)=2%9Q2*X9Uj1Kd-SZ>ile*UbnQ3ZvVbz&}jQ<78m6xPmYuvfo>)W9_ zJU%xc|M`1Odt0vNk(8rH8z(HyTxz{)TfIqG&igx_TuZf|ZfRP&aKcpaH;nQXwMm-k zYxZQP7ydo{Xo2=_FUhxlu@(As9qNkyac-Z<(l@j84sJ~k32fgSTJ%4eeSem=vNdA>kB&+ir(;lw2c-XY?o%5aQV>)>orHjPt&r4?fQ*e2m7!nke^f-?H z`SPg+_uA?s6&ls}J~>5Ay|wk4(WzzrHa7BK>OSNc@IBr0(`A=$xbNL(*|R6N z6=a%}90{A;Zt+M*x2^u(_iTyBQ4&JQQx3F#+%7rqXH?9NbFM1>5;i+a4$m?8cU$ta z{!HVY3l5dqOt8GS?s1#w#^2j6>ZZv})RdRFr_9vxUG37(na@A(Y&ppK!Jz!g%u@=T z2Jht~)h=aDiJ$B&Z@P&`>SoldQ&u(HH>Vc$xc1EzzGEfNBl^Gl!Oo}O?$qx)^LA&o z_s!2*8@Ert*UNHU|CZ*K1?z?9FPpz+b=!f9KZ92av#y@#H~)L;@@GbW`V8AX*9N3L z+;MsO8NbIuFK;szUB0DpqnSZQ&MC&>M&5I=Ic)Mznp~a>&0RmyK%rPkFP3+G)k{@9X0P^JFcOyl?q-r3=@)?mEmf`RHN)vfGL&8f(Gp$W$v zB(CT!&kA1CW-;r6JOk%-|IHF6F-+@Sf~!O83?mMoTH)ef?Ql43Y0ybd=N9h6Q)8xU z8GH&4?4QF|wRzh_2k|=_1fO49aOgpQQ_!*$9cfWXrrRp@4za7hov66;D}8Qv^_nMV zr`?sD{lMw-*06?8YL|FCA6$^Ey5}go^@xFNhu@r%(DJ~mIyP^`opWzowEy97T_i~M z+4*^st(uIKPtAJfw=KbK!=vuj8l7*;uilS%{Hf~vEw$Z0Z#~^+d!u4sfzo=(cfDL} zLQxN73S;C`{|0wGUer)8yyocxrq+9vdlhPog0E~57hRaNihTpG-r8*oI+mQ}>=b)! z#_-zpsn2H{1D&@4XD=xWGhfPHKH*N+zf(LB4g8tk_Df%GnwB}`OO*cEq{``;b8oUc zO`5Y|W>0)u?4z=CnM|ro{*nF{)@+$}&hplhyvp-ZhoYEVXMS+eH2mj(M5q4if#zQ? zeIi$%TQz^7K^$C7 zoqc4*xl0DEL5u=V1VpECm~>>lICcem$- zpY+<-Uf-9oVA7_NyI$QlS_;_gZ?4;`mtMY4v@d7DtSznuwGQu$TKOm4oxH_f5KVNo;TN=hX$$;fIT^xzrsp3)G29{Ceb2F&%LXSI$x<>uiV@0_1wyGhW$CokB7q?KK^O{Zg23X=k4P19<#p+ zq31=n8T8fP^$R|`f16>w43DYbw4NDB3#a8QkBQt;Ta<8k%C!}I(ytetuN9j6N}_wR zYHSa$fy2J#2cGG=?^Ciq_8~>(cTXgfO~tMi4e#tkn3B#hHx+QKX|LG1(#qx0=?O(j zuQ@(G-Sg{+%Ibq=0+%!$H@WtmoK!3+x9FN=@$>J=Z0FpLI90P+o_*8Xsb0^vaf|EO z#}4bfO-j@0a#(!f~|E;jahzs{Nz zU+tUh@Vu^bm&1NHkKesh+E*QBzG+?a{CBluufm7^H=n-kJ;t@<@-w?d%cI>somx^` zDbhOiO>yk)Ou_hPJ0FQ|WoVc%HU9V(`TFanjtYg6o49)Ji&g14qwY}eAvBGaqf)x>@$1Q^k(iVy?69}`UahA+Z#i?oX&gvm#B8zwe7uv z`wtN;s$b?2l}BTTB&Stc$i@GNm@;Oj&tDvupUxbBnlm ztfoDZTI#Vb^Um3+UIH=3xy<(-80CmDpV`^n`|+edkB^?8hq0NadRgx){nI04CaJeeIUBd@JjlDbTP%CR?2@ztcO>iYYA)$_%P?8iCl=c(>~-UV zjl}LEzf&xC7aR(iCM-T9$3!94=+MrGcfu|;o{8CX(Ob^;)v;qqMpw2phGg^R$UU++ zTP}1rP|xR)&XqpXxYR>S_2bu1320rIWVrgzyGMTwR^9!6=D)O!Qy6!iaP+0Cu}w=$ zT5I=fTV@5_+so)~SfANkB&U!|rd)|u^G-&jXcFh5v-z`{7FnI*n7qev z`s#vD_7YLrL2i}K(&0b&R|b3d9?^AMHFawp^9$9gyh|1nciSxRopz9wg*|DmQEY8! zs-Hof+wt|U^F1b*%T$!>t1NVrO46*iwqRLp?Y2GBll$*x_l>^AKFjJeW#``eD7nA> zTJ(iQrF(S_DXpyDpZ=eJ@_Dl*^R1=-sw6fG8sDotV8HW!<+-0mXWt!K_4VE1KaZ@U z1a;OufBopX-7&MaeKIDxUj@pJg!uJkxTmlk%nCItVs2Ww?)kp^!Uyvto1SJbTzP+o zz`Xja@1F^**OiuT&-b>uIW<;HlQ@#M2tmJ@rweCyk*E>ov! zSZm5GwA#xWxVHTIOWuyG-045a&r4Uk8yvi`Zokte@u1uF zyIw0?nsWApX8lL8xrO?QN0#qB{^D8kfAwe5Ck_eyV5u*0>)CV1E$&Z5^rp^(j5Awi z#I;CHX5GD)!&z)<@%znje?Lmjykp|Qt$NUY>FSR%T@Or*L|^URxFyB6{Z-NQd3&6< z%W2)dWSh7qbm`ZvjlLF>bCsoyPD;dYinA@Pt@x{(yX%N_S?59F%6~DARk2nvKXO)` z&MdmWu5zw%ulBno^&bpYOWN;W8WI}wHu4#t|LG4Zx25*)y=wpV+2v@fnzcReCrM^I zJ6PX&W~r#2X(P;})ONb_l9N>Sq=Q;>#m>H7BI_%r@I;ZyQzNvn1xRq<}NXIZ@If!9NY7k3)LJyE_h$$@A1dCBLZhW zl3s23CVlTF=knZt8#*`Mdujeq{;%4u`l{`-C+xbSb+?7(if`SEI4!oC(&djH8`<^! zSj6#`<$j>N@;>RBt!>(C1mn*Nn=YH%cS14b+hSS&Sq^*JmgEcDEzbSSIrW&Tekt3k z7kUf5w6&IaRmhwWPE1Nvuj+pE|)l@t~1n1Ta!>DVOOm<<7WFs%_Ewh5{};F zx>@p(&xw)lg+{*SU(OT;J`^gJnidE?MI76toYbDNV6Qdxhp!xO6h zU;CoM7L;Lod7gu^_o00!HuTlrX1lq)ca`G9r^h$1-~CQi)Z>Fo^zE&Vn z+!4Op`|KhuZr!Uo4k6JD$G^%L-V=&3*DQ>^q|&?k@%wWd-ZpOdWifp<>-=$lT$C73AAopS|74id(Pygla3yI`pEwD`mpTSuyb8cPp;CNdU09Y zymi->tzmu}zb^LWE3em2c_%qv?!FpzB51Xj-ukfDyGkxyNvqrz6~1&u?}e<$H8D3W z?!LGYzIfXE1&n*-b_JAG-u}2idUws^;}@0|9s6I>T*|IEDW`z}Fs z)usBG%Od028B;?&#jPTLUte@7sd7h9s_xbevhKCaId9Z8ycJVYryY-!_q`diYTE_Y zFV(ER_qP>)jfvX4hi9**;$D-w7B%%;`BVNIL^lOo%aUOFX*oChgWl_M-8IuUPuiEf ze)%oVy*BFXc5i0Cs+pI+XIb{!o+vx7&ECw*-`}6Ow|AH#i@8K2VoqJ+9!*3nq zsHvQN;>bzepSH&j2^aPKkLbL_sadp}`P@5?)4rb*bJVWSn;&?$!kOcphF7B0%u2^U zT*vMn=`V0{U#Y8E-+n~=ZQ=XB-%B-TM^#ST%DkiM$G%BM!Ic{)Eqi6?{AI?&+MR2* zd|`NUFzPuYIE^ptHjD zwy*<-YT5I^eINbhHszYHU*{b=(_*&fU$z&~3+5YqVZ9K3X1lq={<%F@SN>yqQQlMe zhvADh=-M#GUz!)rb6gf$rnfcp;1)JP)t7Rv>plF6P1kD)ZLzo@>oB!P+FV2}*9_nz!UBbk`4=P)@14}laDTz{?-wid z)b8}1FnM#t?{I`>f2B3=#D~>Z){Tklx1BUD*Eg8+@a4N|(B?@XoA1 zA(^|*z5b_1DdL6B6F%GcPbVYb;6@)-VrjlC3q#ywBRk^x`?_ z)QXh$1I>SJ67S77I{03wiCz4U-?qJdklBaJ6%^gtF*?? z{+>>pL5wV8?LOy2C5OK3znf=$*Y|B%^`&oYZ-n1IpRiF|k8^j*K3k?=b38wFm^x(7 z_uqaikx{DN@fYa2y2WhYuO3?LpS1nO!n?oI&+ORG^jA9L!{yt5j(@o0pZPhXJ>&3> z6%KC;zV&m@sQvpw^M=i%Z`*tNV+?BJ3?3`}@1G&@vFT@-`G4MJ%hqU5?c==SX_xWt z#OsA0ca^`)JLqctMe{<&q3I6AtL)Nbeod*YKYU@%O1soE#ZvXVzWaqneO7TY7rzu; zrM4vfzy-&Z_5XC*JGm#k7QL{&r!IhBL!B=oUhiY#ReO%eV2%ITW*I*|FF#fnqP^&} z?1k_Be>%7-|6R)9I&I0h!06pJuV?>udhT@oefKfLqnjl9&36?mu7n(tq*I z`x)Dw%$cKM`Kx$={V}z#(r&8lJsp82#|_@fOMESueb?V{ihOnN`Co?HFI4@n{_$6? z{sCj7hmE|H~)Rg_d|8uRDBgtI#@;gq>-Mi(ZKLxxuaXJNlTf{+*v%8oIU@#kp!X z2Q3xs{n8Y;balzvpsN$5vnD#(hP+%@xSLO zL&VMo^}_967-i-74{9b_JwD7lHS;FFjGmP4!w#L*Tn(T1y-bw)Gt*Klxo^XZSL!eN zY$6t)7rZ<%r#>fDyZKGQQIjVvpQBcPjC{Z1V6+qCTETDa2hQ`0-LL%n`^DS2x1-no z-@kFukAL;+kDQ*pIkxM!$Kpw0Q?8lL3>0)fTem3v=IysrJxgpwL)#|I)fP%`Y1dv` zI;CCXp1#Y~kflMb8{9;v+c8-S%bR!C>#jP~z2Zkfr^ZuP>q#C~&wboy74UIBTF}4Q z(W4~rrmp6O5R0kR2{JS6R;aJm^?16WG%jGV*#?Hme`Y>=R`2-SZ~NUPoBtg=JnQMM zZnH}(HyP$`c$vL9F4gXu*>r}4k4tt*UeQt#>pi_tLWikjsiTmt`n>M>#uf|`ZcWd( zG^mK}>*-c{_acw+R@M2{CCthW`|Y$nO>Ij|-E+Raqru0T+rU`mcv z#Plg%b2<(=u*C%ZeI8JMK=OLrN@s)bPd;yM4f=4E@7iRBiQUGUJr3v7KPR@V+r;(r z!4@Wq)waD%%Bkf(#~Wq_ovEBM(@`hsMgzmj%;k!!S;E2$Q|D&bZhWw6E2Bf-;ui-r zm8Db`&EQ(?eCXvut=F?Ige;v_(x_(PskM~JKJDtg-Ag_!u!uMpFn4BX-PH3m!U3vwOVraPPZmk|P#&;M?+5TNJf(8V|n+in4S# zzGTj-Oxh~smaN*?bHD3kxy-fPJGRYuU?A_v2y^=z$kTPD^4=J{qGapWt z^xJgo+xbN+XY;hQZHebOsM5d@_0ROIeZ7*O*6lYuOw)I744J%gSIR1{?A(kWs~N*;>{wE2W7Tw}QO+>>=hc8J6*Hm~lrf5o~Eh}9ORPMULb;-1bY zJ-XU{#>(9@`NLkT$$Zi@Oj_0|^z`~SwR=j5i&D~0-;yX(A~Lhn^J1loAj|X&ot?C5IxsAlShwJx$uMWU&(2A{ni}jDB5DXdEz}O1^Jh;3$AtW zXg*ZX&-Tflc=-O~*xt9e;oa zH>KDW*mup~xgH;7ap!1i>2Q%D2qSYbK>YZ z5w62d!e_MgROhxkDb>qe&O3hZ2DAK&4U72#6-DjyzCR59C3W)KTGxr2_wgRP*{$+B zcf*^Bm2dXhZfEYftP?YNk&5|+nX=bro_0RM=k&sCA)kukW@-1-7(T^oC1Ff6PhS7X z(sk2vZjAKpqMJQ?H2mU{l&70d_V!qOc}}IsO~rTae8G8!$p(&hK6@|uSTCA-`N&b_ z(#Lrvx8Jy5n)%H^d-3zVt#`yvUVf3WYKD6`!{sTbZoYJTeZ%orK~28C9n*f5Gqas7 zl+quGxgME%{bn-1UjHo1?>F}OPfm&sIO~)1I*D`R+B0|O%D+BXAawG)UVQb`*Fh(D z33%No2ztIG*Z#NVp>cX=FO*>d;cbHlU+JPM6}Oxb>w{GC%!H23{$wGE5Pc72Xj$m;*G z`9tW_DJ4y}OOvX?qr$ z-3pQYThDg#hf7yv({kZEXE`!|vw2Dy>{Zu(`Rc{#gR}Sk-1%bP!P(3Un$5rW&;5Pu z82`hwQ7Rn#?6$41*OVRS;F&$=s#5)?Z8xHJ=2$sd%{lks z#z%Q+`x_;*c3tK0b7y#7mbyxC|A~YL+XE%{|4lxhf9~JkpQiWRkNsKpw(gtxBsC}T z-eaB~YYT-AKQ`!evwx#fvuBIe{1%pLuUB4RU;pCAR>u>EAFJ7Z`?HAKmScadfLmQ~ z$CEzO6FuK%EeyWN*79Cmg|l9LBd6`j7O^A)mecYt7nFIZey+?i-==gsC91IQ(1NKy zZmd)^tJ7HfqfA-*Q}!p8W$SI3nQpGm?tOFgc;EaRKMvj~zGuhsbma!&sPL~Db4@2# zHOLjtu9SI{#HSVV{9bJ8%z(M&+x?fZ#b?Uz@;tm+@81l&FC`heZ!U!1-gwF?tbXO= zeTpSD`g7LRihQ}0!|k)YBhYXQ)33rmGj$GbshbnF^M=d1Z70G!E~^Og_|M6aXKHm| zxpGf^=X{0_A7`lS?^-ErQu}j~)uM-HPt|ry|LlLZ#J6qX?Sv!o?eTG6+LU+9U&8q5 z^iht5BKy7k)nTufHPHrjyj@JL{(4j9INSuUM}-bW8Rz z=acW1-?-VN&s>)@iJ!hear4vPv)8XmS>f;h%-Sj2-b|tUe6;R|tM*@OcDB2Sh5o!( zlydOWjh$;V{3Q1agqi=msT{O4v*ZuoB}=1M$+wf+mMdSHGowj5ZTIwTDVvg1b9Luj z{>$`R+T_xEcCr7=C;#>5IRX+lzcN%tu)9^iyF2gjW6AZs3jb}FXiStpx++XQS)C*2u&Sx6*vVDvyFyj> zo_AT-<#WTHxvb?O z?JZaTh}9k6cHyYzopWNj_qgtcENeU`z4Ua^zE`uwp8ly*483=yZT;4IX>YMs$?Q zo%3erfp>a~L_gZ>j$OIsdECsvFxlg-v5(Ih*9*(pe>C5jIpJumGxdb$6l%eu6# z?=t*!)zepB+iXi2z^j_B&d^gsVRd4>WBEzV;tJF$-s{djISQI`E& zL89MFUQ1t<<8~4nZJp;!^37B76Dv>tO||GY>%DwnA%Db=oP}PA=9QLjiqwDSEoWv} z)Aa3Ikm_oW{&h?u0?D(ESuUNj-iBdqjdMVVTW45YI-^L#k*8`KAC%kY1pLo`HiV&d8RI)B*wAG057zMaa=@A`1t zucwE8i0l%&Tz2WjlnZ2g> zLVqmR?W@UKuGi`0SQ#z-_<6a>iI(T@Jti&}*!9R{!ZES5UFAzYusuA?Ip1oAhHKmk zMpX&kJFe$!Ehg44ds>mWVpq3H-Hrtk&^Sr!& zV(-iu1~0cIuK#<$NmE6bK`b}4T5$T;KdqVB(&pD#A}kHm#c$4!IinvMH{XPnopP`ofi?h4YhY~EhhUvn~>&)3H>)n5C&?6gwW z|49#@TUBnGP#XQUW>;O9=ls578|@6=u5aAOTqXN`@tXs^Z_L-Q|Ji@GZ+_(S`aQS$ z_ObsGd@)(K?78UXTQ~lhZa%a<+NPTI3-1N-Gw=2!{5W#=Kf~_k)xVk++B4K{{oPmb zOZRg6e(})TKQEp9yJWt-QP3Bz7t!_0=3jS+H+s7>z3`p6Lww1iWvi{OyV^>0KIfUN zzg-}IPR{ygtwzVibN<)pygJ>;`1)x`?_;J$_Dq)L={~b%T-p`~9+}5j%krgo+24ML z`AmEL8d-ixhHVi#q_}D3M(323uVc2PrbUVV{ldA@e?!;gU*2hp1BwC{`OoBa`PEk` zR)2g~(lIAb7f#ojzcSN~N^3=)ikT_g7cVm9SiYpDt=9`DkE=Y3md#Q#pBJr?^}p-L z3A4>JcK0$AO)K(ZV0N~Z=6m*^H}+3s)+?Q+o&VJ83aaN>NU=-(`oHPh^V2t{m8`k4 z&4Te}+-ap+%$IIxK)Mc3DW# zu8}cbZB~n;mX+L#i1psRfm;hcyK;!L@%03V?hHCsf7s-JEn9T^^LoWQC!VR>Y!7Zc zF7Rge!sWXSk6LmmzZDL+r?mCOCq_2s=zJG>rwtt^4cqu;+!kMQ;mxE63Cs(RXa!7) z?qy!cEL3ESFWU?I+j`8b-%7N!MM4uetEAE_a?h!4(S<{>5pYMPnCyboUb}F4p>NSzwBEzWsUTjjVUJe zDvuUBE#Z8ipx9)0K;?Y&bN!F=gI;^A`1dg>vu~B_>XpsGYbu}HZo0D5a!;@;r!9MH zlazCiK7akUedfPXj9Es)o9T~4;)A(-X&Zblo=kEm^?Kv(eQR}Ti1vl| zS1)aOv^Xn9!*r>BW1QjNC4wJKR<$j>Zt9#I^0s`zWe?e7^S%b z8dBD_-N`D@zkGFF(PrCYkA6MNtW)Y;_bCgk1K7D{7!E%qN(wU=u5qMLE7w-!;k&XkDBZA z&%kY~VFz18hMOnTz}F>i9E#takp0J17RmnAeHma`&+ZSMz^%aN=U|36ou=zB6opsT2FDEBVdlccNwI=6X(AyHVWt z#MYlT>+7E1f5vo|gYDASIPH@v$33pk35z;5U*QAu+Oj|U?mSZv-NlxjWw`AAFXixJ zrkmfYYB~Ft26ygxDZZ`zOSsJIP@DOToqE;k#}@dkbocAAJ$k|MckVsq&+2l;Po@W6 znOCv#%zp7~#*F<{T|3M=b#xtiKCc%m3Uy|gbzz0W^4rSwYZU(8yzniDYw0$g)w>Hj z!`qfWKEANI*y^r>)z>GH^UpL-h^#rsE#cKOWr*zRg|b-iZh z?;VrGt=2gmPQ2lr@chALo#*|%$2J8{duxBrAzb!Pfz9vCZ~MFzvahCmyTA40v#GUH zckYh*t(|=H%+(8*Vq?$M|C@OC&0o!Fn~dU0gVRIjZa-Dm`BYr%n#$@4D_Yj;Ot>GX zc=43I@1lFMibkwqoQ;ozje4)6l+h&N{Bmw{in^R(}7uxN)^l*xKJ$Ce_MYzMc|0`+sZZo%))U zC-?0)^-V1k3~-+PZ|Vdk?X8k)Cf)pd^Ua@`b5pY8e;ZuZ@=8ow=@R?%bm@*Q=hr(Y zm%migI%82?|7vAeS^MT=O0JI?p1tRed{$o??6qa5xXPKdlk+6o7QgfeeO%J!eSClZ zpOnj)v-imOx-&ihx=2L1ZldGq{ME{JzfaG*KjZJ=pSrzP{Xdub|9tLJ!l`yq%z`si z#G>6qZNZ(95w58IY9 zJuK2*Uf=OU#JeV`!f{f-d6^9YF-wqD!F6c(#L=3 z<*^9I&9k-zPgQD5$l(1lQQvv8&+Ekniw>)0ZA{Evs&#t<%VE*&+x#1yHn2Qz7UxU6 zX!>*=bB)ZzC*SRwxP9;MS-432&O(kX>5r?sG7IlrSS$MI-_~VLMfc1mD2D7O}t_)z< zE;*lLrF7_BgNcs~tnAp|$z*=rs4KqEM)7E;<$T}cGfwme9{l6Pcu@7O{)YWrZi;_1 zzsYm7?{1ua(U)162Y&OJnWgFUvuupc^=G4_^JTV+*4>Xc%)e>6=gI_`dshxQOy1(l zeZ4nVv@(Os`I>E9tj^*Pw`SyblNKPKio>f1aQ#^-f&w^izkc^|ZR z9vl9lHcUsiuQ8~-uh1gz*>~=|8KrfSqHS76yFLCMJ2*wy;A3FOq6H@TXEg3Q)JFVy z{@}gwLW|2y)!tSX-`XZi%U%9FpYPcra}J}eXNzOQdolu+oedI-dVJ{J=i6r_`6ev? z;iL7);573wr^-N`xVHLblen*+&0jW)M|q9Lv4ocfk=G=6swe$S>Xdw8Z?(a+Rf_*| z$m1Vt1y)WsU)BAmY{HspHUDh>+pV$Q)ADc2Todkvw-OXiXDE8>MPBDkGqPIv_L5Vy z3uA?6lAlP+lnXC40$aYfEL>KwQSD2-*c?ec3;ijb|Mr~PR}o`)ay`>sse1cF?Z-|| z)wgzTcB@l6nDdDDp=x5*9cF{Xti+@Tmi^Hm{bp@VzGS*-%K?eGekG-? zI_uwG4#QccPJW8dy5d-P3Ve&|g4Y;*oOe(q_+-!DcPEeE4c_YW`r7BiJrWUCZ`r5# zt&&?TT+8{TuGNnH*9N0=)(iR@?N(l>H=nxC;<{_Xf*sc{)Yi)~#hn>I=Jf1y#HWK@%o^{W*_E^^(~GE`iRu6DDS?zL)IT zs;%a7lS1zoPfw>F zx4K$y>YX@K>gn(0PxilX*AQz+wBqsEc)#TGGnI2|T`STj2VOVef7JBn_i-+Z$q(bU zD8;fVX5J_)H{EvR6~Rew5tAuG4I2Yia^0%=d3FvW`@1x zQeN*;cSFoN=WdCEO(la&R`-b$zGm(7Bh_7}yofJKm(8lovb5VYJLi~iN8hoAL>b;a zl8kl}Caq{mX)wFKrOf35ay7Btvk|UoPy_O_Iy_Gmz_&I<TO zYCHFp2=#AfPBilA+A?kXB+J|70s+D==EV1Dx@EUMX3cotH~+~c?M&^Nt0!qV?f^+Y8&01=*ZGGfXd4-H2SYlQS+qd3xQe+Gm-;!N{qPI}A2HjdV@i zTy-=1d7jc+P&yO7;BKAq{3>7l#XtYmgcoex9RE;wYd!m|o2sryzkGP~P|EYm?o%@s z>uq_w=faQL)H(KHYhH+6xIVS;9#d^xX8h~!?EOr?)|i{F>^+|tyyefHLr=`DXPE1i zm3;R5F-82geZ2YC)RY9vN0%lvUsh;&@FhoCfKM%W@x>$a827S&`MjvsE5UX-bC7lY zert)vPE5CZbCjnk{9CIvZC`w5^S$Emj~iy0)_Mj$|G(H{^WEfsVGnmcJIGt{s{7Oo z{RM7<=E;dF#%r@TwRwN{__jJ{X5y4@)>~!o8LoHj-d4;NEAUajaotV6MaJ)PGpye? z*s=Xu;&eac*Q1!(Z$-Y^-2H7Y{E6?V#nqw-gFs*g5*jBxR-PC+O@8)e^Cq56dP;;yN+pV)=?lCFJ zsZXCOH%+*5tMY-`fLozrw5B&K-JonAWi((%+2 ztG8YjigtRM>smkcwN|E1twNLT3u93w=X)g%GfwG+d<(IDx$a6wTg|f1D>w8OGRf6W zP+Bdclcy=`xHDtQ&PQ9<^sPDelW|G?%RP0|G!LIoZL_I06bM|&;`gHKws7hK;j0s` zUV4-;Rp+L!Hp@ef$2$Vv{aRQs^QlwT?nQnfky4_kvztR%8002jt(X7PaI3v`tG7gn z=He(7Wj;TxsTMjHC!cV59oyupBUK+m{ETEc^>?No(sVy` zS+P}eXAp-$$UJQU)^)MxFRZTr5us^#Kjgz4osPV*pE|hMF4jLh zdW_rWzl7qs*}a0UYeK9w3>QsN;$^$gyX7!@$T>xmCH+Y!9@VNkF^ct_tTZllo@G|} zGPA?#!6}8v!t;NoEt6ChK6&``x*f9x?=s{k1xm+ET<#EU)uH*WX=#D#UFJsLz57IS zEf*^96^om8unIW+1%b6UL zN^eE}McLagPioD-9mPMHzptGAS9H+D!tgK0x=m`s_PqV~l<%F@t&j8h)7Gc!1|M3? z`8jg$|M<*%dwyzv{PgY3#qBF={m%Ck_g?;+JEvgguhd=Lp6OO5FYL^uc1Qo{QPiDb zzW>aQEY->NnjuK5n^Ip!u3c17Q-CPXed zcu&XXd0g(hi_fP_-eLA!^`WY^&xgl895-2cOJXmybIiOCIzs)@$A6xOF8_Sf{_NGq z>wi*rJm;^H^7E;l7x&(1mHd+AYtI^6qklI!ytZTERr}z-zpDP|T#0WE$+sCK#Z{jmtpL4iX;_=~@ zbFBtb+uw`j%vxJ4=<-LVmf@1o&24{|UY%!Xey8Pok(pLpjg-jK>#Lt`aCsVT|KiZ; zYq!1rd^luwKkj>6nc3@lvHEQjFLlRk+1ETN&WF+0FKzkxJuN%A*-heR&&_In6utQJ zV=eo(f2;3QRLGS4cdg5EVfcHj%{TYTrSIJD_Z(ZL^nF&`so9S*@{g_6oOZbN;L{_= z8~pJMRgb;`l_KP)~)Z~FiAPZjs953^T$PhD-=a-n|b z>jFVRy<@INj_=^OZu?fLB`s=Nx4`UHxxGmb!r2v%9}lgQ`ROWNB~<60;8Z97A@lNY zuN6hMoTqj4_oduW_uP>>=d(%&vs$^pbtUJN^rHFwzj`ulr}#%*Tz8?1bHYuMvhAh z6+#}Ite+$KAh};zR{n4f$OznDWW-fOT zyZP&)SIWuTTCtAqtJiBj4nOqj+P)im7KF}9KVG-|%6HKXuaj>-=JI!6Vi~Gu9nNQ& z;jPx6A`!{cRM_}eRO;pHo9~NkP6SS`6=9T7GBh^jO3h0FZ@x9ha=Eg($>hWxYV~*f zZ|@MS{~o_^`)0n4hxj{%wmUY)=+$O4nY@&I;T$Y7JNEs$_j}}TmcG-|__cq!i0Vi8 z$->pwuPw`HW;rooVcX}UlIJRZ7$&!B7^nUJa^U3CCokhGW7D6PPwt<*>4DeEU4P|U z{Pi}=KPy{!;>`V@H(NxbvakM=Kd*I?dtGT*R(+Vs%|As(XFvTsKY9A+lh)0_CpJx3 zbaF>tNSUSJB9r8oZQ2rCx$TD^l~ox2j4u0Huq#9{B{+TQs;*^QTK?8roww9}<@Ney zshx39g3pzy3(M1%S!(|*nfZBF#+F%e&x`{-^p?!Ici__0xzA!YWbHbUda+{?d$u^+ zRILi-*)OO5tv|!zwlZs1S%!9J^;%iIxM`QUZzR23{{GXk332W7e|kC;+!0b<&804W zSf!@U$S1CZWfRx_{b$ol4=xQ-U397_HbYI?^e@knMFRFqSzoPW-DlPKF-oO%^`Tg$ zoZgv7-dp)zDLp=?b(-Auna?#`Zg0La@vv96*#8;-E0weYLwL>W(@gA5!{_nyx+HL$dOB_6>Wb&EG}kFwVkR^y^mX@@vGEl=;y zp6KnI^O~3Khu8yuhWRe9y~B1Y+Z;I0XvZjVU7zuv=mXXR^#*%xI3Bi++o3as(_y{( z=l91K{twioG>84ie8!$X`;=b%2_pwPTuh(-C6z0l|XMW?iS?PvUxex@8e|0~Oxo{Q6$E1VZLC&k)IJf`xMT-;w`Md$9FnsMOtiCf7(>*dG5bE7yOy_AkXyx z|75o}7lT&0XZF0l&o4SN>Aq~S`0qUR-j?@$*Yp?X&#m9jXtP@O&kwtg4_Z*_FAZ~FgeU*tlwiK}O}O#@v;~Q-2a+$y#LY7k z60a6t<-_#UH~;(YY0c*EqSkut%&6(RqMo;TlICPp&dDnEFP%zu+isUs6W_Cb?Tsbb zZ;dxDWuF_*T@bc9i!+TE5 zkCQ1sIkU_oK6!>Mz4K4>vg0Ej>mNy1v_emJap|v{cGdXnZH0*y*4e2)3sjG=%sgH1wbU?Vi1 z`tz28>o4_pOSwcIRqdE5uxUk$++MbilXm3vOnkPdS5HFX!s8un2J0+ae>C;+=!+IE zRp`_Fm}}hjag(F!mKi4>A8kJMBwonkKEt2R1)ujBKGhZ6FV^TIH1m(_#vk=l5?*bX zxhG5R{*&W=HOZkzmhC;`90P$J6Ttj<4g17yNy!u73F}o>^HT^BqMK|FR?> z>u}w6rC%w~H|_VqT4sYRVg7duO`JlH$%T2nRh_v)|KzTOU59=NJ*}QFH`?jPkJlpe zz7{9_>k7D|6%zJI#`seWe-0m~fcPPqaNeao8zx<8^9+2s$f#W^zbDz^W2wrCAJaOv zIZR!lSwA;kxFX5%o^@un|F<8UN6wwwYkM;!u%L(K#XncmEW5(wngElkEw}Gp|FzP{ z&nxNHx1R?eXtONW*#1AM;MXj}&Y)BOK5`mw`zJK}*WblDEqP`A{u{G@-tYAH68-At z`Z&7gm)QIjKT2HRcpqQlJNb5p|L-G93U6n~Z9c8yH)r3``ejS_s~A5R9{92NtAy82 zvDw>>soACFywYFz|NKVHhZ7csEjk=JUtVPSt>%5+r=Qh37a!eQw48m5T1(v7y&F&N zShqD>P24H{t+JG+(ZN%z>K|NAv5%X*)W%x=-VKkHQzH*YhMhcg!{~gT_~gy+)#cS= zq9>)Qo$k7+ZoMY#aKY2|`ftCd#=mKMcaqQex6KyWeQR24nI@R-$;JOux|>goMIJN9SWg9cf>td!;QR=?VhvM0NnyKX(m$9}3bZX<8iLcFe2X6c>6U=jNs9HtOdk13 z3%@TvbaC~X3BMnn;&X^1Q z+;01~Te#Q1Ye6RauDl5{FLFG$eQlYmF*|HY$%3i340xg>+x&PBKXT4Iy5{zVMK5zI zZf2ZZZR!4L)-sn*Z3`EtN7NX6%1V~EDXkA$oAvCc&+LSI8`Lr`f2xghd41XFYWvnx zu6I?=b3eZ%`+imJu}rtsi6N#1VYeESrIy9~S-I=N<2|O~wyVT8@(6hM?}+B;`2Oi~ zZ)cO+EU}dxwrt7?oF9VKZ|~xivEdHeawye_#oOf{>&>F*ck(V5`ZaFK9pY}}ICtl? zd82Gc{Ym$<2X^z+4$8O3*+%^Ox3~T8W3wDxYu^aX$rpHE^j;}f_?EF&@W1B#nQx9i z;O%3y&||1S;aimOA^T0w7u%No3`{O<`X35jzq_VnI#1uG%zpX2SHJ!)m?(71eEU0w zy-hdrcRh7|wt#DCS&#bR=(D96`!Y6Mt9i|JcKf$=iW{D${XH9Ql&F8|UXA<v97@ zx_55ZTCiHWwB&007oACxISbQ2CYt_rlUO@1=-7MC)tgT>*PTs`T3T2Bhi_f+$rb(C z{+zS?COu>MCf2qnr8?u*q{;mgx)pE5F8RpxQ`_WH`Q-l$=dUw zx^~m!(^r3Q2h; z<*Vhl>uoRp<9+>D&R*7EOfR$-e4qTyO(b;VRK~x&7pfihGyW2Kk>6Oy`^E0Ue#XB% zFBZ34+p6btWxl$PegCC@Csyfg_iH>a+_sP97fZ&Ux6%u)JIFKrH9ov~vTLOG&9jML z>>hsp{#N#>99Q5j#eeDF&W`Lb7GO*$!Y95Z)@9rHcY7+e>^Bl0eLf&Pq>^+&hZ zr`?;+*vk}q+(|~Wz}x%T-|2}n4mVBrdV1_iq{P$3FRt(V*|(}BPW-0da+Q6e%az<6 zlq2Ra%{^DI+_h?{zC?gUvctocht2QfjcYDd=G?bWz0%6ChK-|u@$sWS(>0r(_4I*S=c}P3p6@5?H^mlmCd`QP8+)|Pu?q&Jx6bKjCB5Dsnp+-em<;k{3m~* zUV8Cuzw;MXZ!ny<`uFK~>v?bG9$L0H;R451sjG!&FPJ;m2h4f5CExhl+Q3wipX%H4 zd$p9O+&i()cji{{o`OI|Gxaqh{nKV!%xMvM|IByJS?z_v!qZQE-#63ZsMASb-#Jrv z>WDBLnScA3Aj35VX0HFH$|g(9Gk!}YDCERD>u;>ppYboJs^`3hbo=g!CFxF*r&fMH zwqx$?IkhHXLEko(f3&L)-+kh(PFhaN;(r=5{d1Iszy5!d`{eAlmK|ctHx^%uo8}tV z{pnzw*|$s2c4^4HdD^`9kIA>9n`uS=YO|H2t1Xk2vtNeX)2&Y}{$B5^|La}qW zwHIvsYxwye&x?||i>sDRP@nOA$GOn`=UUHB&As#A>#O#TGLGfBFRyo;S~{iv*y{eX zYgcl;we*_koj8j(^8fd;8mAR(W~F&knb{Ib1^(8$PuscWnDUO0ooiE!PyBl-x+OOM zwAS|0$VbQJTJ>7=EtXC@SF7*3e_k}(&27ec$_1O%^p|Xll=xh3a5UUuapbld>A+i*4fc2nJbhUMF@nyp=+T2Q-R_p_H)`_y)4`Q7_CmQKj2oEBA< z7ybLE!oE1&)T^~8&1F-*my~}!{OZohvrnRK`iO2j;TP_9=&_XC)}sD}g`a<9eKoS) z{qd_`VEwbRU;SQMY3}+x_g?CvzdxthG5(Uh(0uwz&zpADzd<4UUs;*w?r)LKxxJoc z#uSZ3PcL=`&2oIfbdf_rEo|95-K>SdZ?vZG%DFS6WT~i?_)_KODF6GmXDnxJdE9Jb zr76zyKiu>8*~-aHTQ{~$<@77=V%p#kKRM~;w1B|X8NIDj>m>`GsC-~z{O7l+_5HGI z*+vV;S6}*dTvnFR=-)G2Hl^o~&UzQa<>(r$zRg(iOW)<#CoPXX3vK~uTnZzgSRki=HhUMnuL)VUT zi`cFSi#Sy49%{QV|F0h3wz3QA6{oXruG#M5aB0KAD)@S_Xf5O=tyTu_QWggpd))O`p+Lb@Qudb_2 zS=KPU?C-JyuWQ@ft}hZ^Yu^*18C3Snwea1Mv(py1_m(DbIRD<_Es(au-oEpB|MlB9 zq#16?t7lg{(Nj5nvwzYPFDp&U(p8_Q-tXw%)ieF<`z=b6}h)(C(rTd>mSXSqJ#Vtgr2QvNfO;@;BwmbSh0NeBw@|Rt`{ws7JO+F zF@{T1n++xUp$(+Pb$d1NzwSf_`1NJ_Z7GDF1)h3b&a*;h4rhD_JX~K8C&zM z6-wWh|9gA?ceSO>Q{$Zl-b%&0S0)O7mDr~3@mTas@Pc}KhTiDu!3zw(iJhPOaSPM= z>8iy=jk$a?){1;O@|yF{TglJSkLK;%S$6QVx6RiF@1j21P1{|5baG$(46`41--Rp% z$%Mb-V*9x~eEQ43ir;?TWtunr%#EG@=AUWRoMYglC*E>jH#quT6ieu*a<{uCpZ}$` zXX@J4N;M?;Pxm`kU-Mny%C{LaW8Xb^S5)IE+FF>e)bLo<*t`0S&!b1r`fLl$mOWc?=Yc)%22A{Z z?dau+LKkx7V)i`MyC?TqZu$w<%l~?QUgJF6Zl2q+HpYna#2?$s%Y>_hm20+Xl&5vh zl4s~OES1SAvd*vRUv>QEqucJ2m)86!n6coQMsIYL;gVA+XYxDEdS}fy{9`FT^>*fi z`Ut<7c6(A^1ai~`O+I+|`7^%Hc4<$0O{9PNznOY>cb2rdw|!l~dAqLaYuqh`8|A!; zY^FTfaW3MA4BsyM_;WkMW^0`Pc-*{#f9W!b$K~-k_x7$g_*!|>zI6My_2;EsS0;coMVe>)#s zQw&!-a>q~g0!MH?^Y6cnhh_vUt5>;gad_ABX=-PFZs&H|ES@s6<-nPnHy#N{S6w~& zFuZbM_Kx$jc+Ap+Uagy(Xw+vY`+Tz6PovG34QCq`JGL@7f6=;I#u$AVmhYRtg{xNDDbM=t;vw-ydGAvBxQ_ezp-hjym$%p7h)N3laa2yI zuJeidyZ0_aDJ|NJ+3Og*7wkEp$jY@v=Do>%_9ez#+ue^!E@%`u9}>pMIbjBeLyeNg z2}xrvwZ|mP+LInp8)QzJEZFeQLtw`_p=H`E6CSXfxuEGIvYgeZC{oyS@#(pCA4E6*Fak0pu)RojGx|FQ8)UOe3J1%CQ`|z+?q@vHWCd~&WF3XkX zsa`H~mt)b1TNQF`R*q-7SbO|JA*M%jcsBSb3*{+$h?~}EhfH3yd5`3W1{^^OdF63Ma7{5y9&23K#ZQY+EE0 zcD3l-igx?v4>NZ;T$#zScz&#GtJCw=iOSN(T0akk7b)aqzKZ!(|4w1s^z}{IqFn7l~X;*E;fXrTPNK zId6PIYa=(k_TbY$yexf7VfvH$8Yi`z`Zw-OeCp|DFgt3-g{|RV)EShU*e-id-E#K& zO5-h@EHA`L&13{uZj3)OO}}ZOv03G}ipqm#d-Q9jSZ%zwu;1*6GUM<4>g)W2<`ikn z4e|Uwdqv5mS*v!N$(+6EA?LWLWlBoTDYiZa#@S{!*^dNo-BNP(O3|EX#U~FBxty#Q z68P9ONmYOL!mQ)nM>;lWSpMeVJ6v;DrYiER7{{YBn?S~+`;sPIb3VF6dRmZ5_tj~B zzgv90GM0&NKYfWMI6JXqUCL1r^E5vG2Q8JCmiue%Id-7jC13AgDuYn;9{K8fp@t&N zop)C+(L2$%YVOzTq1SdC$to5MiD5WYoc6ftTzv&grkv|5%_Z|(wckruiTOIPlt296 zQdvK{icvzwamiLS#}_MJ$Gp6{oag-WGv((eSI*|U<6*nor0qo)SH}VQq$%ufDG7B) zOP;vS&Mxdd&~>t=XRX@bjK>eZ%-1?;IJ2oYoN*_A;gr8CUfVf6FaEdv&NCN#AE)98 z+M6FgRPugZzw6AD2};GkUCjMv#>%Yg`?t#~{^Tuvk-3?{9QE32tBNXO+TH*EF3q@O zw@p0xQ0?<&?#Gq|-784DHh=bwZzq2I&W(IBRaZso@s@8gwMB2OWO&_IakXEz-}YBt z>i*4wtl8p=A8NeVc|*_b=*7i+zy4jbdX@kE##i%q|K9$Nwg^wEzZ3uK-qclXe9bF( z`4;W=e#?H*{#)~kvv>Ip{hYY;nfl#jlkctX+O~h`{3rhkW#xANdnB}L^1rg{DmUV- zF0}6X^Yq(+kEViw?Eg7E`tRax??TTVZ+{n=y`lPW^6mKxKh7;(U-V0H<BqBolth04S#noH$ z7a7~?MxEZ2e%0WbV6v=4Id9{~wFS4Vv|prMHVzf>xx9t#SE2Rxsc%=wEn6$!o-9$H zvuK<8v#?(iz9n+~QqRkK&(xa0)s_*v!%FpZ2vd!X+R1vJ>WGYAm;FQ5aEo`&a$(&5 zzro$V_3*5DYr`MCdw0*{odxTO_1kN8&j($pXcX3K`!Iuh=EI%3b-O-Cm7I;${_izc zzV-dZ=NC7}H$0y8L#p^wN|8Wo_3ktC4opp6vaf!{hPc|*OjoyaT@ZNr>Fw2U?x%Yn zE!d~LrR+XiN?~0#=igWJcGZQJcj`o0UG?4~LAqFL++Ih-Ln;`uC2* z`<_sk{B1dd+FR;ZIluJ&+|INtH?U?p?_=(RR_inNUHEIN^^$+}f9AYL7j;teQi@B8 zQWJB*qcZ|YSzLw|ut6IW6XWUKs*LXS{dbN{t$QDTv63@wk6c%&;_4MCApK)2;$jEV5q7?W8Oby$ABk9OS@5x?=A;!WG!qq{kHB$itq-8Jv?-0Z;j*HRU~ z?)vhd_0gBAuWwp2R(+lQeRa8ZY{#y3zQ4tn_^-dd-})Qx(Wnz&KOSABGi%w(+xt7W zmhRQ8&%So-N^6{a{Q7@YAO3wfVPBH_i z%Y5TP$8B%t?PvW}?WUvWAhIu|?0Ys_i@=Quvinl~gd%_IUbxR(%ebguVrPZjcKMnA z-p{nmk*MM?ewXPaVi6{5`#mRms_D^fQRTLOZ4;yK=Wt!uZ*V)?<8!Xw&^Spq$;`;u zNZrVO`N^Gjf{%;;yq>q;Cc(yZV36wv*>iePdbupG)dZ<6HJHcflXxxBuTy zsy_54_vXL(>EG-;WjNN&4`AQj;e7mS&hmp2Nhu05?%)1on`wIXc=9$;&2#JAJS$Re zDc4V5KePP&%<_whM}M$<+v#G|ykoo4)HxUPj~(B1dfVS-tJb@@*NYcid|m0kCeNRJ z{^yJOb8F8TT{~f}$$s_Sh0g}@d=D(n^B=H%QLDH@X~L&p=E>XD4Y^L1fA%pryzYO) zvi&D#*;Om1$gj4av`gdkvN-vZ%T}bcC)8VQX}x-k?RfnHoz!Zre=9}b+MRUbh}?Eu z^OVz+s0uTF|Mf~g#i}gqLt0DIAJlq25Be6&naQlny|^c0dh2XI>we>iqv{Lt8{A%; zSg7`VVff@du95(;oIc0x2w2*XJ|b=F1Sdb z^p4@e!>@L2zsImwuD-3K*0A|5lkB-g>n6{WfAsiYL{FiUYD!}7g&T%j{;rbQIh6`WCi6l-PDh;=Ied3tTr}B2{Xb8ghX-LFAqC zmc5GSU-rm6dc07hXTrIPeLnYI{csLH<7e-(a^D#@>67nYdazinkYISUaPl%M#u?o^ z?tfHmnB=RX{7U5GUyIA{+gR^CYkyOJ|NS$asfRu;-jFvzGuqbhk&;xvr&v$dHyfwV zI_BvjyM%4WzUt#18(9>KrYg%$=)P1MBVqZ)cNVkvr&TkK-Zqn{KGiezoO-zHBAvTw z)xIKO2HY$kYa|%t9QvoVmQ=H|E%~I(c3Gt*W^0a%YPQynWlS5X4CFvhg7WFe9bO;|CsWziCrqHx#9E$3&T*~*G69& zoQ|t3dU}3MoAJZL*;h_QmEO5|_ipqdN58oe{|fUh^Xm;BF6NY*YH1v4z*P2e=i=;$ z>6s52W|+?~*?#g`)BB6(+&rrbM2Z-S=@4Tu%GE-RvqY1^^RV%JHAa1dBC8c`bfIu{|TRLKHE0o-_I((9$uxR z^>S*C=AZwoqt?X#X{@ODpXNDt*OFIPYE#ygbh%|O&&Ua1@sIsbHDd{rQDwycJlBAQO&BJVE#`nJp$i1yI0;^aB=FI1O-dKqywQl}OBB5bZOLB6ytg zhqk3pytCu7!O}7z2Io6F_LaQU6;>BJWxGbJc*4@flXAINhi%i6k_>yhEPvIqmtk|+ zbX<5R)VOa*oi*#xkD3b^ydN@Tm<0O!emygL>$2+EJh7NtGiom1UXa?_xJ<{(Ix*r{ zgMhI?M03a?&iWFLwSFA0Z3LgHXu0i>+CJGzsh5x0q0H!l#Of)p*YHY(uL@Yo;rRH6 z-BAh7I7T<${7LMJEM;1oU7OxcI?AIUcE!;s{E(sjUBPRf_4k+WKYYsb#NOl?rRUgc z7O0ExZYjvKYf~|7G1<2BM2(3=Qoo9W&4o|*wY@yK|1X&Lw&i}kk8A4rgA1f~2gemG zs#~U{A$8eqyJbd5)TKH(n>ht4$M_oO3+!FO&*^;V4ZB?D=Ng|0tD`-ps&p)R{Hc>o z)5_T0dLrk%Ek*0+y58V9xhTUgmdVASNH&?J)8BTo|KDF5o`x#VYOeph>U;%9#}s`z z&gO}oZSUIy?bmC5ot4PjQa}IYgcpG~-h`cfZ@Itt?4Is<<=c<#dBl8p>GKxxdpq71 zEN>Q-*}`x?ZMKEbv%8b_2J+s&RK%fjb^$k++dTFa(s|sG4-L<)>0eU%FKBxnW4=h= z(p8%-upe)p>B@dOLGxo`-o&4w$G-}9l`rI`v)LYM6K4N<`0bk|M>#L|XfHkdW_{+lU8??^r?))&^XKN4xh3la zm%U9}cO&iksd?&`q+iZ&a1%KoA-n9}w!KonyDG(lD`GyD%$lb>Nq?$Fif{YhXC*ST zH!LW*;`2-G;^8HlZmoYkZ2OmTiSJB z#cOLflu65c7P@{fEAUig%S5jTFYzF+?1@YLh5q#)<*t=sU$W+stETJTK4t$f?US4|5?X2ja^=iuH_m*p%idZ$nb6=E%9`lkubrfUOwyj%e}1a*`zFX7+hy7%(A+~E-|tF(I1Iq`HSM>%=cXzo0HSB z9!bud`Qb@li|(mQEBV%h)?c2ich|K?_nB1fp@p~4hVn%ok%+u~F0gMQ(+M)h&)nI+S;1q!H?Muf*#fWdD|KhXo+UCXDe&FwIyEzD=JnV0hVwN& zPusdBHof5XoyNHB=i_qi(62X>)z`j$J#|Xd_M6H7i<#}`Zrs&)?Ctr}SL3glTR)$g zJ73|ekLE9y%&7Hd&tzx2%Nm(T&3dO^G`($eO@8!p#S=#uiv3fyc&#VBRnM~HkDh!W zop_O;p{e@ch$!Iu_-?~O-^zy*4k-wKqY_s z>bRNR(*nOUNgkN(t6~^DW1otu&xGXUzXb=yPMmpvF8l7iO}PtSw=ZYzUv(?nR<2?Z z=bRXpcNaMXI+%VIP1iWJNFZv9;{)AgWl6g%%=Wn)zdNIchtoDBA%A1-yT)|3rN>;^ zcE8B=tJmOs5v4R$_TGs@hUEul+x6T?ODPWCYuj#@^twB3_Eu%CtL-^2Pq15r8wOd| zCVB>lZK(HB*~`9s?Rw_@%Waxeb~)X+{UvwP?mq&-($cs3YIfZ-y1$I4v(Lw+4EI$W+S6@#h4=Em#+ip}JAA)ATd-nR{i}m+3rt_syCz?VPrJ*b zyF1?Bn04yys`#WAS6VjfTf3YK>RkEn=x+0t%f3+pUsSm!6yI8U)9HI2V?gG@vkcxB zQ@XTOdeqme3hP>}h_kZv7g<-B^~;lM`k$^cjn*&Izr9+>uqD|kUihQ%g^EDFZ0!%; zTO;Zlr@zT-bYrw+bF4q6zy85j<25@E=)7;s><@qJ(Re6fzmeWtqlyA}9) znF41hv^iy*W<5GBh3jd5q+qmEnC$V3ZkOk;J;UCUIEVF!;jQ>5PHQVx*1Nuvx*WP? zX|t(nqmuq-lN8TWIl%@UCyM`i)TJe@j&jjjckF^L?pU5%wd~bX-)%cz9<4c6 zwdk|9$)232=1nOR!v4!j-0Iv>(t0U0(MytBt$qJ_EhmX`zn+(|%YQPuRe0w!FWbJt zQg3JJksYit8znCJ+n%YKegvV zCc9eyqltXKnhGB0=vtSuPcO)_yS{Yurm{Ep*TnulnDyT_^pWK9TCYfrJM3N^-kE2f zu0MMH`m@R!gVG2!{^pO%SL7JWG_Q4)Hd?>->-5cYB;U+c`=2dezIndBh> z-zHz`Irqdh!R`-3)%4vNn-m)pmnG$eb1ZzXZpfy&pn|C-mgS74QK;~gw{tp~V-5QZ zeLlT*ZdW_^ZP9wgoTbYpB>9?l$L^SW!An?vfk#mbcm1oXjwfti4{o2;eJbzkOvghn zh1*Q!lL{ETy{y<0)|oGrzxTTNId|8r9lNf)xwqy}|C5W$9o=+ia(#LtJZ)h><9z)< ztyk+8Pm}6)^%u(Hn48D9bmQX<4PV0jSR>zg?)tQ4tH*uMJC?RPu5PzEDCltQVL<=6 zV~p=7Ct7d%^&t09Rz0^$@6P>RZ!@Zt3w|lvJ&9e%%5EB}Y) z{#T8-==8hNQuy3i{TT%x=lwY6Gd1dr|J1)+lUPE7w~DP@SKDI zIyd`tee}&fJEyqE^N6uWa&A4~)9~Fa#5EwRYq@Go?IBmKyYJ>_?WuoIa`Z#CaJ}Y# z)%Jy{zq1Pu9bLW3?1*K}bjRL9pRP$pmTtdX|FJvxScT#KoTbM#S4`7i<#fVp`*seg zKa-~$zWv{+`kM8$rFma&^x~^;bL&IR)*9Xs*}A5**Z+L2`CsnRr*Ey_N@d4EIr;AIu;+`Hy2#2 zOLS!S{aVYhq}}Me$<_~fQ|q-{o1awPKd`0z?cvM8n-0d-{1TWScXavoiF-PE<5btP z)_*cG+u>iu;cuUmZupE(Mz8&f%T&qW)X1 zsMoXt2@%y}2fIsV?_M{>TBQH_^VQw@HM=&ijINJ)x$4W$bC=YWe$Su%U}LD`zEkW7p^P&EHCvw*Rof4 z)y1L@vsQXs@vx4cvtWMy;z>Wh+5i5z>~j6D8tvoWkAEI3TC(%J#vvuC-tHHhpCk%C zOpkC`{Czja&Dx|1w@YT{S54^3+qd=plMlth_1`|b3f?+h(|oD%XI^1^_4|WbN{^lE zCSa?%OjeuDqPTD%@5!s@tmMYT24eeW7o54|2A+=uk@^1nAaZD4i2BPHZAA-OAq<-^Aw zm1I7aS^H`vU;ca&_O0J(iQz+uHGFrg)c&o1_v@p^2H*N=kIQGiU%ZoFtDsR<=GXbd z*PqSQYTO?fsl62#*kc%AzzXN{D0Vth)(`F+crzL^S23B}b} z{azLH>(;ar`;@ncU1Hc|v3qM<<=6ecDreRzb!)}uYi@GcY9((I|H)I{#>VQ#KPz)q zxA(C<#;cUq_UG>W@J;iipO3`+l`0D?XYR=hn84`#LVVeNN439+U-wHcJmm=)ot>U8 zz``qTq+p-`+S*`hVrBpytObqLT3Svo^kNjAE^N-IT7Nald-9!ag8R;|f1v9e&UR=r zL&@gTrw&eamhlhe3*%coH9a*wZ1<$FZC~Cq3$W~RG;7S{@8W0 zTsA$Z+~(iY?$@`^Zm#!Qw`(^4>~iU|M+|t%{;t5wVe95<&!uSciyafAzOTlbMM<< zu?s|Fy5DBI{PtcyV{#PF?dnhOqD#c>zbkGK_L0zMPCsuGo_FJ(BGVs*Tfh6`478UB zOg)lmpL*t7?f%U^D-tifP^{^k= zwG+-n3hw+@{r|9=)afa~2Pc19-~71YMtEv)(4?g=dsl5!nSbi}!VTp<`#R1k{NXvD zuzHeH>UO!TXy)6`8x;aPB>Pph_D;T4Z;%?heeyJ3&*H$DW$C=>RljpTo?17(?RdJg zM3*Md()4Rw@`rAoI`ZW2376IfGPUbt;upSt{V}T8_}7&K#@A);WF^>Cgl%WumazKv ziq%4gyq+w5@oe?h2aI9tJAQ6_c;tHP;pDmdEsobd6}tKTL-Y41KktQ?R#wKasCxvqR;-%T7<9tp3?`g6ZN-sk-od_PE2FuNR!&5_b0m>&u$>uZIj?_Z$e4 z^~m1q{wZ_q^L@%U6Q;aqFxB9h)tK40;LyYn9_?c1`3AW!&adA2pdXn1&1Vc0 zcwhWJVtm_E+-2jk+ni_Biv8M^!kyH@POz`ow&KIKvbnG7pBN?(-A}=GnaD&g!##5$;>ht24OnINP z^{)S4KV!|M#SxxD65*Y#2W-7hpIdG5=z~pc)`1I?g)YAT8XWk=UGZu>g^}jQsetSf=l*=vO z!LG5zdrhZ=3sX#?<>%6U4Ueiq*G+qIne)INMN1pT+H(uavZqXWAD1@C#C`rmsRt%E zFV_Fx<&o&-y~|jkJ;VFV%wMf*&RsTC58U>jeMYg5*d;^J*^evJYxI82*`3K;8>F^C z`Yr1(neN+___iE8a-hS?^U0&I`F@`4 zmv=G={H*M>JIb)v+KVy!?XR5=f@iD#Sfkv=(^R^ozHw2$Z0x$lpC%i;=V?^`68T+J zm&aj`<&3SXD~(Pc4Y?5P_P^Stt^VeUf(_06?5{s)-7UPDn&y_+o>(14OZ+y<9!=sgazC!fIDUa7z-sDD|J5eFmVewFqPy8xJJKu-N z9fr#|4oyCiv&OwAW#Yo+5p{L9b1uv;fqbcTx3_Expc^}f?@t52!hwQX*r z8Ykm9hsi8$KX+vqiA-gPXYduW4P4AIKW9VI;$QWxlP$L{SW#y*C#PTUwP8-Hnx^$x z_vzjyk)JLJ`I$LpG5h-cMrF+#`yT9~%iTe>(f@ z{$1Ps|D8GRJO8JLG0U=##`9ZR-48ZpII^j_M;ZUfyJNM+IrZ{SZRNYQ_0u&%7j#Uy zw!%qsiq;ghz^->`%2VY^1GGGZ&IsOEt#D0Y*Z2K7eD_&OTjZOrHBL0Mnc-4oT|eci z;IxlFl?9fk8gcUfwz;Zv>y*T|x!swkm#&}xFR+I7>4wxqU(KwpUpdD#3YPXw5L-QY zy5~Qq8pF~($!W{@=Cz)__hIIqhyxny!>8`KTr_FB*#FZ{O%=~Q`^4mweQ0m%#n$T) zoGVSkl=L?X#l?qlT5fRM+WT&r+xftWPh=NOtpEIpW=xHeI(N8H zwmMT*Qh#NA)~S!5t*brkhW{4X zymb=gxhAqx;<{wB`MQr+UPel0cd>mn&RFdd%ItR|?8L@-{%R*yPs`Px*gAoeOUbR{ zJIC}1y#c=}+~Sz-xh>I;KlHV#zHeD+L+e4$hp`@M(sO_0v)0dkWU#<~(~ouXGkE{l zy1ixC_W!cPwuA*;+vf#ze_G3UH$Oz$p^q&vd*3eS$E(|>e(!v$ap>;nSDdq?L*I4F zn(bO|dZSi%N!zLE`|s3>PXE{)Q*b|W8(;O}GeQNg8=lMxn;i3P(oENn2iBg`2?%@H z$6a0f+Q3dQ?)twspRWpWoza=+T+p}X*Nkta&dahd&7H8{G;PZA?7+LeN`DhL{B^e4vhK7?BjaBN` zMn(2Zn+x4b|JzkJMNI7Op4sOnH>=!;)nTeGZ?HMi?Vx>jYKF<9r}?gdw4|L?2VAJ8M6{N@K+|Mv2`+r=GD zxU$#luM@K^J~#8D?E4V?8Kvtk$84;7q4!SAzFvR#)mh(rzIPq|P%r*JYRyukGYnUw zBGPts%L?p`D@@z@pyucAtb}H%9f!E>pIqO*dTYX*?l}E^?Yx^0&U{MS%BJ}%E}~aF zH*6BGQ(?2boWNUKDf@Lh5}HNRDxdpLh_MhYpAe=0{b9s9t!;Xrf7@ROd#Y*oCZepO z(e%-b*H07bKl~1qdl$1_^cK(D-Oj)7O)GUQ4LkjmSxLibf%3MW4?Umyy6n%>%FmUY zer!dJy_)xv_8$|h>vNA~*8OTqyeh}P_bEqeg3Hlf42FEeS{6K5bcDKmS^B_k6pc=&8=-2QyUC z{Z1vBIDJ><(X?hL>&!c=D*Q0@%L2#L&Z^!57TY~b4y0cH(C_54=r+&f1K)cu{@AhT z75lCCQEB}T65W$R4oma(X4m`V?1{dVZXfilafU^zo#byn!^n4kjBaf`Bq845>k)a| z>SZ7MrSk4A@)xTEc7K@csHQV%R_4k{kqec#RWhecbr-t!Z^_+Uy~i(hpG=&eQF}Q& z?6Jp|+K&4+$MR1{=Ce&`zWIVB{4v+dC4S-3$NDq=F!q}B&XSe--*jwx#vk{`^*)@#*ZTFP__`%r01`xZCjVE)MqWNqLf@ZT}xW+*f`qY}zM9dslHM_vuCD z`dn#=N54j7J9s1vB2`kZO$pI zwS5tUtY0y8hRa%)0KZkSc9!?&-gl_?%3U42`p(LV$g;Soe&dxp_<6I>DN3?B z)J!a&)vj3|6j`Em`oom!q6mwlp8TIaZQgk_SipgYxq)3`k?gA}?K_PqGSIn@H)XOg0}rV1`>?ocZPb!+DK6i1Z-H0BtAywBYRYoKGgZW%ZLkW}eER<1@9v|~ zD^4}&o+wT|K6l$)S)Zw=F5Axf_SeGq$m1_*AA`$(JUZp)eNtt~J+J11jhm_`rk?s? z_UY%h)Bc7G&zs*)xpd}8u$P}(v(TwYubwD6CoJ5nwV~X;-d$rqtJFCr262Y9D;SP4 zexLP3_nNBAHQ(SVnQvPKGUZMb@~PZ;{_uv)r-BvxMejVVTJzW4z>;PA#C4N??U)qg zm%J*``MtjJdezSsQ>KfY?w!U<-c`X%L=;rWF+K2C0|qXGYRbc`(E@!^4Eap z9Q`f!h+)2h_1mn%3Vau_-m z7#x1B_$%{RYgkbTlS=U}`9o&%wvQwer#M#IA6feM#g5Fww>O=xjV#sJa+m9r*^Z>= zU#H9EF|C{?Gx^;q0mF7bhb;-|a)nimQ>u)@i~2l;zx1Z|l=b@RQM(QZ8(p64ic_pCKBx--Gziqn+8=?{V@e(t=mVOxBJ zNn+Zh$L6clK0S82x}Wz#$^sJ!A(Nj494w0@?q+Y;aPiTj>kB7nM;(12fA~vA!Rh@! zIc{z`uXt;D@42`~^0{-QFMV54_FSbpzrQ*oR)tjEXQ{3Vzy>#B$mCux3 z)m_iM{9|VO88Q2Xx>oO>7n(9y?TWPb|7s->@ovW5g&$WRllcC`ZqdhWj-M~QxP8~G zs%yvj@7~F8eHZWV`2I8Ct!D|7DZ9_p9l{=^HTIV6b3!zV9ajF8n)q+NO_SZ5mb(J- zYomU+PI=2 zZpxzfBfdcO((&}WwdL|2Zx=9U>W8W?k@8$Cc81w!iCN>U^6T9bop|O>`4II*K{iCj z;neQqr;lE}FaEyK_wj7gxgop0ubq5vmd)MiE93X;A4!yoQn#J+`KbJ{wI4Rr-{ZB5 z?C6&S#+~yv}U{N+9$<^4BW=e6FS!H`g=@AUe>&ic=-x@@O@AKUS3!9=0U;ZFp%{^QbHyv&W0 zy;|nhXMxSmX4@|u-qmfpRq64n=#2^nyQbRkUZ2o8|8-bHUXttSt^SXVs>O@~j@&cQ zI1@LItj(-~B6RD7)R4@HVNF zEXi(H%@5eGlWXdu6sBInow{CI%VYDjy!p(n6S&p|{pJhZyyAWQ1&)Kqy^A8G&Ubvd zYyE1w^4d2%qNX7y1G!FZS!@1C{?qY`yUdpCW2o6}bmma~zrH+yf7ec^6^6F<*G=9p zVp3Q8Njo$tcO@53==XI043i_~A@-}E`2N&-@N)Ul$uafv*`JTHy*_(AD`(#}2j|q& z@%j5UiSJvd`OMle+d^8A`^j3ikD}=l^?%Pfp;Ucit=lxAF!L1C=C%7uCFMC+&#qD0 zw{-oMIepg`mh|=fnvt~a>+7|;nSLkkN$r=hxgV@o<@CvLlW*%c*EjDsPTUv!hxM7$ zx4)1}j+lbe6XOlaTv-`Xv|3-0P} z+T`(SD=*g;5B?Jm?Ut0Yy>l++n6p)O_x8HZ#}=Gj|Gq102G(etTeIZrGJS`Oi)1rT zKAceVY^Gx7$J|Lvjr@&1_Y0eacQ3B@j8w_Lr+ZKDQ^=Im$eZy2_hMA<%j);-^K~hz z+4n+w{o0VHEC2altzXjW)3;vi^!_z{^_RR_eZK79R&m*6=~{(JyL^_e(vG$B|LPt4 z@A%WdULl!xr=0GddT~bTCar1dtG8+d2d=J~xn|aulOeHs_g_v|5_P@&!%KbNgTGn2 z!HOwqt5$EBwn}5cx2ZoPIRiaoPyXHWa@BL!3x86V?~92Oc6++w+os&mC-plwuRk;6 ze&BTd0;f#Y(Ae!pon`ykLZk09U40)hRrBVmNnT$MFSEWKc7Ao2f&a;;KfO+DS?A(+ zeP{IA)gdc3ohkjg^+eFbr-#mlEPU~E>ID%Ei|D`Kf5>z9p4k#8WqEwLl!kh(_v|<( zXT7}@$x%YSp|9VyHs71wdaUB;`>@ie=k=u#SGJciPqnf*sTP0l*kr*z9?O{J0oq^J z?rif;ZkBA>s`EwTiBaTfE#2D-E#h7pO)YFG2w0mJxae!_bQeDR{5_WwrWdU6^IUVu z`QTON7tEg?=q_hD^L?Jhv)H>WDV4%L9NQQfx?>Jn@ZMrzttoyU$GCXl#-{ zoN7Gh8RFoe^TFc!=jU}_GS{W;_W08HX8Zq}(tKMj11#>P8eVkr4LPlT?OIT!lAvgt zKwetP#H}fp7pCfl%zCby618}>)p3F9OPf7K%Gr6I%m}L2T(RZl((W0CJ*!?Da`>jV z-K{WHeH55j%zmNzR@+Q9?N0}$&S5xrh6OvhKQMI6e6DbB7Qgny zFek2q4bOKimYgWIs>noGdLMUfZRGz?$|A1ug_m;AT%BC)RuDBmI>|{$jdRI#q0jrY z&sd*La27xPI;*Bcq5k=TNs6Z?FA|v+kgaZ!eac|f{{HH;Wd?ncZ8>q5b2|21I&}C$ zSB~PQQcD|^-?3eq6GNJQD*a4+Vc8aTLsH$;X2Ox(y#-fy*IxOw&gAxw=eDj~{u&M? zCDtcq$ULkg-pe@DWZf8+7#lB-3jEj^ z<2w1avpZp%r$EKDS=+xYwrP)hx34qMT1L*uEqPmFy3i!v_a9mGTsZd!cczNz`2H}h zSDk;)lIc}u!lh;RTSStcv87LUG+3?d_4WpvdZwt4&fc;v^~ra;mweV$d;BHl;Deqs z4RimCuUz$O?j&vxO$~+OkjuA=W*j{ga(};U`Q7MC&G#nctNXA%{cFDDZSl6YXZl54 zhMSHFu3)&t#nJiYn2b(ru)E%UdHuSGJ+T>ko~^78>Re-*wC+ptJNfM&G+JvzepGDy z;a_B1_u!DsB9T*b7MXZPzI>R=A1hS+B8m5RVpr5!*JYv^(@wp7$Cq)+X~`<<1(n-Q zT|V_r;q^zYAjR%G>!xeJ)p1Q0yf1OY^vCb1rOcsIP515HCalE0yLe;XrJ!j$UENn| z8U^od+qB~MrpWqafmf$yX`VfM`&LD5a?JU^DQ`FE=hucV->o_KUCgc6{BZ7BFMoyH z+;YLk)S5YO$`Y^Dc~ka9zbq@^yTS7Njo+u&K|YBO9J8`g^^y3@e&XU)=DPCm3wAYK159qAiR#NfF>K}W4A@kn5bs0Rp zJC_`IKQ(ao^PLONMya$d-gUOPtDgAFwzxz6C+oLIW_I%wh{PMD$dgo&Hk9xeSg%U#Mg+Zq8ym$O~rG9korK>CLm)!my z;%&VBO6n4w8kXWh$N!U-`%YbRcHyoPb!**hv$vfY`u7|E$UX55*_Zm1m}xXSD1g~{b{!j zhx3=Gg>|1v)u?KWzIO7Xz4-C?e>cAFnkzeHeq#;Wr^+w?J{o^&nK@TnVSoRl$~FIO zq<-#LYrSl3euA0sh0n$(_BZ?~wO(a)^sQUy|M%Ul_2mq=_}&WgTop7vqc6d3mE0zL zKUu2eR7tmYXF25Cn5_Wx5fn~k3P%$JyZy=QTOU)ix6 z%~tx!e*-12R2nXPukTRD|7q^g*;-$BDX&j>zENM`x8t1)cPEHm^Lx1KG5g|Du9lq@ z4Hq6L^h|KfJG!g>gpN$hdgs3j)7fgiTQ0g@d`xirWaWTAbyX}`&p&G~`=c8CU2M*$ z1A-ctK2Kr%@%hHaHNi#SY-YaI*dp)qg+IrzB^sH)p}Ozo%6f zi(EXja2og0{X$H!)~t zvrAU!p0@zW(6b zUh{tMMmR7X5(kcMuENc{pO3BHIf>ezvW0;Cf+-K`byX{ zv%2?^vxVLG!>8Z5afm(BlmmTSs<=4W@-9ZKZqC=9vvJ(!Op zxS^7(>QZywj>5&qpDwdVx^wWx*OrUNKB@cMmB`*WZ~5+Y-KZZ4QQhw!+gKm_#2h^R z_ID03-#o#T%t!UF_iigq*X{e(ekA?8#U;+71sSF-f8=d;os(sl)2gd{{GxT7$s?cM zIX>=v#+wv>z9^LukM%#0`))?r&QfjhllDh`EjGII@%^6+AD3{Q1G3VpJ%_#rF3v4c z?Te^)pE%8%Yq`u-HkYO@D?iug2RCNlm-jDVVELQeCtY}M-Hcr?>TPy-I?j3QF0INL zJg->p+&SxGe(&-*mwmA<>5iIe2bco#jRhajomdTQXdxoU!!vF zO7eqwZ*}CEr!zaAI$eLkRA^njR{o4#JC;i>*Z;U?Z_=BZ1h*NtOO>x1e^a!&VtKJKd9b9@uM$9cJ z-uwOjP_<3z9WNiIb{{NN>g}dr;cXGs^ftw z<>}p@^~LkW7a0mK5t=GK^XDP+)u;XyzLxj>yH>ycj@`ESA8EVh*6#mwRy%VayH8eN zWXX(tpZGN{6T?asKP=Y!Q#1RA+S>nG5z;ax?kBi*KbDLB{reF6Yro*-M;BOEWGC*^ z+SIr=W5LGlfsK3bCa33T{CoUX*G25+YyFjp`32orShdVPJyTivq?yN|D}fAhvw+^S>m-SVp$?|Zmwc4U`yyf%KwcYDp>96hmz zQS$%y#(zkh|GP-w-Gip}JQrnlOgMP|ETjJ6=(TMcTC)?vwC*O(nEG$y+_rrm7N)sQ zmtK&ulkc7MiWY~@udLiZ|2lqc-o6h9OV|ltVEvxVB^nbJdZ?38@SU&mplG5*` zCJ$M4Zckm4bt%3jU~RSdvBtBPx7BN9eGvV9p-d`n>&N9UocvE;TU4@YO_HcaSX^Pa zfQWt9@@!ewuNhKHjnaC0CVo73V{uu|>MG3{m)!qF@#-jrTOSKMvFM}ogLykP+OlvT z6!>yo=#Z{Mw0@Nt(=Q99qv?OeZ`B8UdFriyIlgngkjB{$|MdBT>fcWb&UX0o{i>C} zX#q=lr9#I)E$$y2cj~A2#-Cnn^v6qj_Pb4DR|~FR`r~p};mPf0{e2Ia7F`s3P@MUz z%>7f_>^iMeMM*X<_49V{KkRNW{jip+CI9J4#RH!nKU{5;xhbCiK4bLjZHO&-<`_*>izqY-j>ec;(6t0a_MhO;SZP?NgV{=nW*wPUrBTHzf*ak7p zVQc_Cg(`{OvXp7z}{eDN|e|6b|;J-_e8dUw~{|7+gYYrg6- zJbf@|%hXNl{c@Mv>r|xfcu-Tf`N1lq-kj&pyO*xqamDA{{Zd{dwVqk)#W!WSoc;R8 zPP8II=e5_3?c3@W^ewpbx2e8+m0?odvutVOc-?7>9>o}#{%25~uQP2<=$xBuY2Dkh zX66L>m*q^~_*eTr!}`}h?=D(7>z2k#6|q%^-!Cr=_#nhy`qpZ~rghRUzMi!yoy|7m zSJSpjEA$s!z3HU!>}dS#xIZzs)n;DpU6r@z&HLXsgSH)0y^y`&{@2agp|<}eU&Pnz zny78Z~%7FbiL zaQfCEzw9*cIO_$)f0wv+>bf<$YnGkmNjvBDFP2STurnxdw_inYXV_MeI@M{$OAbyl zKl0w)Wxd>rX16tBcOs5%7nW-aTD>NUX~I6n&~8t@J;ywjZdm<&<{hWT(j|5&TB57( zPBPl_^|E5U&w*VBKUpcIa-3C*RhSTZJM`-J1S63qxl5}e%4bizux`g~E$iBqmlkc< zb$fMws=4mPAHJ0f_SSn`F6QHs{OS5q;W+=yD^A(dKYY_@JXFE;DYVxAvG9hE20^`P z7s7O`0(dtiZ!)l~OL#jeC#Pw4^ol7jJvFN58$7l->$*>jIllh-x;0zgZewgWHNPfN zP;_My^8}8&H_Cfmg(AORJDq1-Da1QtvBzDJa4w%J4H@$;vu2HW@3u*GYoE>CRsOT) z_d+Al7FP*1KfOD%{1Wp1_~+>A{tgcB-mV*bQ)f9-z4XJfdk1p)au=>|I$GjpS1L;)y}Mh z_kCvjO{V6FZZ}AEc`@hSdhg#qBrn)A)yA%v{r-37KBix4+4eWt7-OQXRg$M{=4HCQ zI5cEh#hg1$b2x9jpBlU6tKWl3QY#qrYr@4`_{66f-TGx_kr=+xj=`@cv?N*=`S8Ravy_XTk*1fRYD#^^8T_L$^|3b!27V}#oN>K$-ET=q;=dqP}pE#ZO z`$mCX62D35QD5PPXUERZHZ6U6z;@1^oAsV4yOvZc_3~YrA6?YapJmkZ?ATtJe4BT= zy2&pdb{(r1@xNNWJXGxYhQ9R4PP&WUHtTx*PUyb2XVveF)2~}sW?lPq?p3bNxs`5~ z`_(6iOOyI?A^Z z*{O*9`W4$8zRRy{p1C@um+_j##FAbw+1*dKeyLt%n7ew@^#e~L&qv&@6knB-L*VfrgUrC_ZJGR!V811uG$xT)JMv~XYztW ziG^)TjNcsQVKo;td|#2HZ24R1;9Jj6%A7aKFL*~>m|N&x|0c|xp;Peq1y$uY^PB!| z&`!DejOFp?)R;aFb52vntmU_LBX+DbeezdH+i=56w%ukEDid0AcyD+_$G=M#+?F8p z&9d!z(_xL7=L*VOtamG(VJrR6_sT)G?CZZ}PwOWM*p)VVeK44}Ac~=1+pBE*mo?MW z>oPba$~JXAKX*h_>TUh1OMC1+w@L0Qt$TN1Z8U$=v9eO3bCZh?U)tmz!(gnvm0^>; z9>>H@@3_*=immc3FllLj(z{pnvCHF%#lreK+FG{Gd1HKCZ_3;)>$geCiLPz>>M`p( zE5{;b$t~;n?|pNddOxIPm3DCVhF_BzKL;Z|0)140pjU%8%zPpxm8^Q3%7 z#I~s`qE9Z@)%voINvl!Q`*>=jzK~z0rStlimoIGJ79M-M?zz6u^~j8AJ%<{WyY0$f za49&=p#1Sml{~3ix!hh45|*qx{@dYP#Qq(}!(J<>l*|`kJdikd(YcjT4>w;^J3jNF z9q&9b$(J*}d^oYx@6|ndx7SzCI{uPf6kNYjRVaAD6R~XqHE{y(N|imMxt^J8YRcxT zZht7cmnWEAn_v18*UqVoW(j+H)=H|+kG*zo_Rj-rzdCmP`0dKZ-?;v+%(})MGC~u! zNpfm(dMxXCE#|v#$>HgleCw6Oo^|+HtXOH6@X|N&qp-KxePQc;6}PwCwDYLmec^sZ zWnr*UeLO=#RVkyj>UQ2LpT_mipNsfSco29%rfPSq*n&5zES+B0Vk(olR}1uXT(Nxl zJ0_+1e0Ys~uUgYSKFv+%TUu6!c5S?%DE&%0Db`?-TG^^QL2ae3k?I@lwr%)bTXG_5 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 z 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 jpdXZGLX=-80rK;-c@5TiHgM@Y4 diff --git a/example/BitMachine/BitMachine.cpp b/example/BitMachine/BitMachine.cpp index da70a69..ea1565e 100644 --- a/example/BitMachine/BitMachine.cpp +++ b/example/BitMachine/BitMachine.cpp @@ -10,7 +10,7 @@ ////////////////////////////////////////////////////////////////////////////// const unsigned int noOfBits = 6; -// #define CUSTOMIZE_MEMORY_MANAGEMENT +#define CUSTOMIZE_MEMORY_MANAGEMENT // #define BOOST_FSM_USE_NATIVE_RTTI ////////////////////////////////////////////////////////////////////////////// // This program demonstrates the fact that measures must be taken to hide some diff --git a/example/BitMachine/BitMachine.vcproj b/example/BitMachine/BitMachine.vcproj index b0f4c03..72b85c7 100644 --- a/example/BitMachine/BitMachine.vcproj +++ b/example/BitMachine/BitMachine.vcproj @@ -81,6 +81,7 @@ AdditionalIncludeDirectories=""..\..\..\..\..\boost-sandbox";"..\..\..\..\..\boost-1.30.2"" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" StringPooling="TRUE" + ExceptionHandling="TRUE" RuntimeLibrary="4" BufferSecurityCheck="FALSE" EnableFunctionLevelLinking="TRUE" diff --git a/example/Keyboard/Keyboard.cpp b/example/Keyboard/Keyboard.cpp index c6072bb..87349ab 100644 --- a/example/Keyboard/Keyboard.cpp +++ b/example/Keyboard/Keyboard.cpp @@ -11,8 +11,9 @@ ////////////////////////////////////////////////////////////////////////////// // The following example program demonstrates the use of orthogonal states and // state_downcast to query the state of orthogonal regions. +// Moreover, the use of the state type information interface is also shown. ////////////////////////////////////////////////////////////////////////////// - +// #define BOOST_FSM_USE_NATIVE_RTTI #include @@ -24,6 +25,7 @@ #include #include +#include namespace fsm = boost::fsm; namespace mpl = boost::mpl; @@ -45,16 +47,6 @@ struct Active: fsm::simple_state< Active, Keyboard, fsm::custom_reaction< EvRequestShutdown >, mpl::list< NumLockOff, CapsLockOff, ScrollLockOff > > { - Active() - { - std::cout << "Entering Active\n"; - } - - ~Active() - { - std::cout << "Exiting Active\n"; - } - fsm::result react( const EvRequestShutdown & ) { if ( ( state_downcast< const NumLockOff * >() != 0 ) && @@ -66,7 +58,7 @@ struct Active: fsm::simple_state< } else { - std::cout << "Ignoring shutdown request\n"; + std::cout << "Ignoring shutdown request\n\n"; return discard_event(); } } @@ -74,82 +66,99 @@ struct Active: fsm::simple_state< struct NumLockOn : fsm::simple_state< NumLockOn, Active::orthogonal< 0 >, - fsm::transition< EvNumLockPressed, NumLockOff > > -{ - NumLockOn() - { - std::cout << "NumLockOn\n"; - } -}; + fsm::transition< EvNumLockPressed, NumLockOff > > {}; struct NumLockOff : fsm::simple_state< NumLockOff, Active::orthogonal< 0 >, - fsm::transition< EvNumLockPressed, NumLockOn > > -{ - NumLockOff() - { - std::cout << "NumLockOff\n"; - } -}; + fsm::transition< EvNumLockPressed, NumLockOn > > {}; struct CapsLockOn : fsm::simple_state< CapsLockOn, Active::orthogonal< 1 >, - fsm::transition< EvCapsLockPressed, CapsLockOff > > -{ - CapsLockOn() - { - std::cout << "CapsLockOn\n"; - } -}; + fsm::transition< EvCapsLockPressed, CapsLockOff > > {}; struct CapsLockOff : fsm::simple_state< CapsLockOff, Active::orthogonal< 1 >, - fsm::transition< EvCapsLockPressed, CapsLockOn > > -{ - CapsLockOff() - { - std::cout << "CapsLockOff\n"; - } -}; + fsm::transition< EvCapsLockPressed, CapsLockOn > > {}; struct ScrollLockOn : fsm::simple_state< ScrollLockOn, Active::orthogonal< 2 >, - fsm::transition< EvScrollLockPressed, ScrollLockOff > > -{ - ScrollLockOn() - { - std::cout << "ScrollLockOn\n"; - } -}; + fsm::transition< EvScrollLockPressed, ScrollLockOff > > {}; struct ScrollLockOff : fsm::simple_state< ScrollLockOff, Active::orthogonal< 2 >, - fsm::transition< EvScrollLockPressed, ScrollLockOn > > + fsm::transition< EvScrollLockPressed, ScrollLockOn > > {}; + + +void DisplayStateConfiguration( const Keyboard & keyboard ) { - ScrollLockOff() + char orthogonalRegion = 'a'; + + for ( Keyboard::state_iterator pLeafState = keyboard.state_begin(); + pLeafState != keyboard.state_end(); ++pLeafState ) { - std::cout << "ScrollLockOff\n"; + std::cout << "Orthogonal region " << orthogonalRegion << ": "; + + const Keyboard::state_base_type * pState = &*pLeafState; + + while ( pState != 0 ) + { + if ( pState != &*pLeafState ) + { + std::cout << " -> "; + } + + #ifdef BOOST_FSM_USE_NATIVE_RTTI + std::cout << std::setw( 15 ) << typeid( *pState ).name(); + #else + std::cout << std::setw( 15 ) << + pState->custom_dynamic_type_ptr< char >(); + #endif + pState = pState->outer_state_ptr(); + } + + std::cout << "\n"; + ++orthogonalRegion; } -}; + + std::cout << "\n"; +} + int main() { + #ifndef BOOST_FSM_USE_NATIVE_RTTI + Active::custom_static_type_ptr( "Active" ); + NumLockOn::custom_static_type_ptr( "NumLockOn" ); + NumLockOff::custom_static_type_ptr( "NumLockOff" ); + CapsLockOn::custom_static_type_ptr( "CapsLockOn" ); + CapsLockOff::custom_static_type_ptr( "CapsLockOff" ); + ScrollLockOn::custom_static_type_ptr( "ScrollLockOn" ); + ScrollLockOff::custom_static_type_ptr( "ScrollLockOff" ); + #endif + std::cout << "boost::fsm Keyboard example\n\n"; Keyboard keyboard; keyboard.initiate(); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvNumLockPressed() ); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvRequestShutdown() ); keyboard.process_event( EvCapsLockPressed() ); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvRequestShutdown() ); keyboard.process_event( EvScrollLockPressed() ); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvRequestShutdown() ); keyboard.process_event( EvNumLockPressed() ); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvRequestShutdown() ); keyboard.process_event( EvCapsLockPressed() ); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvRequestShutdown() ); keyboard.process_event( EvScrollLockPressed() ); + DisplayStateConfiguration( keyboard ); keyboard.process_event( EvRequestShutdown() ); return 0; diff --git a/example/Keyboard/Keyboard.vcproj b/example/Keyboard/Keyboard.vcproj index 0477573..5cc7efb 100644 --- a/example/Keyboard/Keyboard.vcproj +++ b/example/Keyboard/Keyboard.vcproj @@ -87,6 +87,7 @@ DisableLanguageExtensions="TRUE" TreatWChar_tAsBuiltInType="TRUE" ForceConformanceInForLoopScope="TRUE" + RuntimeTypeInfo="TRUE" UsePrecompiledHeader="0" WarningLevel="4" WarnAsError="TRUE" @@ -151,6 +152,9 @@ + + diff --git a/example/PingPong/PingPong.vcproj b/example/PingPong/PingPong.vcproj index 7e9e52c..4844aef 100644 --- a/example/PingPong/PingPong.vcproj +++ b/example/PingPong/PingPong.vcproj @@ -160,9 +160,6 @@ - - diff --git a/example/StopWatch/StopWatch.vcproj b/example/StopWatch/StopWatch.vcproj index fda40c8..7eb8a05 100644 --- a/example/StopWatch/StopWatch.vcproj +++ b/example/StopWatch/StopWatch.vcproj @@ -158,9 +158,6 @@ - - diff --git a/include/boost/statechart/asynchronous_state_machine.hpp b/include/boost/statechart/asynchronous_state_machine.hpp index fc84011..3188e04 100644 --- a/include/boost/statechart/asynchronous_state_machine.hpp +++ b/include/boost/statechart/asynchronous_state_machine.hpp @@ -38,13 +38,15 @@ class asynchronous_state_machine : public state_machine< typedef state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator > machine_base; typedef detail::event_processor< Worker > processor_base; - public: + protected: ////////////////////////////////////////////////////////////////////////// asynchronous_state_machine( Worker & myWorker ) : processor_base( myWorker ) { } + virtual ~asynchronous_state_machine() {} + public: ////////////////////////////////////////////////////////////////////////// // The following declarations should be private. diff --git a/include/boost/statechart/detail/counted_base.hpp b/include/boost/statechart/detail/counted_base.hpp index 5209434..89f6d1b 100644 --- a/include/boost/statechart/detail/counted_base.hpp +++ b/include/boost/statechart/detail/counted_base.hpp @@ -48,8 +48,6 @@ class counted_base : private locked_base< NeedsLocking > typedef locked_base< NeedsLocking > base_type; public: ////////////////////////////////////////////////////////////////////////// - virtual ~counted_base() {} - bool ref_counted() const { return count_ != 0; @@ -58,6 +56,7 @@ class counted_base : private locked_base< NeedsLocking > protected: ////////////////////////////////////////////////////////////////////////// counted_base() : count_( 0 ) {} + virtual ~counted_base() {} // do nothing copy implementation is intentional (the number of // referencing pointers of the source and the destination is not changed diff --git a/include/boost/statechart/detail/leaf_state.hpp b/include/boost/statechart/detail/leaf_state.hpp index 97ef4fd..da8f83d 100644 --- a/include/boost/statechart/detail/leaf_state.hpp +++ b/include/boost/statechart/detail/leaf_state.hpp @@ -30,7 +30,14 @@ class leaf_state : public state_base< Allocator, RttiPolicy > typedef state_base< Allocator, RttiPolicy > base_type; protected: ////////////////////////////////////////////////////////////////////////// - leaf_state( typename RttiPolicy::id_type id ) : base_type( id ) {} + leaf_state( + typename RttiPolicy::id_provider_type idProvider + ) : + base_type( idProvider ) + { + } + + virtual ~leaf_state() {} public: ////////////////////////////////////////////////////////////////////////// diff --git a/include/boost/statechart/detail/node_state.hpp b/include/boost/statechart/detail/node_state.hpp index f477f51..c4a1b9b 100644 --- a/include/boost/statechart/detail/node_state.hpp +++ b/include/boost/statechart/detail/node_state.hpp @@ -33,7 +33,10 @@ class node_state : public state_base< Allocator, RttiPolicy > typedef state_base< Allocator, RttiPolicy > base_type; protected: ////////////////////////////////////////////////////////////////////////// - node_state( typename RttiPolicy::id_type id ) : base_type( id ) + node_state( + typename RttiPolicy::id_provider_type idProvider + ) : + base_type( idProvider ) { for ( orthogonal_position_type pos = 0; pos < noOfOrthogonalRegions; ++pos ) @@ -42,6 +45,8 @@ class node_state : public state_base< Allocator, RttiPolicy > } } + virtual ~node_state() {} + public: ////////////////////////////////////////////////////////////////////////// // The following declarations should be private. diff --git a/include/boost/statechart/detail/rtti_policy.hpp b/include/boost/statechart/detail/rtti_policy.hpp index 9ae1b81..915ca9d 100644 --- a/include/boost/statechart/detail/rtti_policy.hpp +++ b/include/boost/statechart/detail/rtti_policy.hpp @@ -11,6 +11,7 @@ #include +#include #include // std::type_info @@ -34,28 +35,24 @@ namespace detail -// #define BOOST_FSM_USE_NATIVE_RTTI - -#ifndef BOOST_FSM_USE_NATIVE_RTTI ////////////////////////////////////////////////////////////////////////////// -template< class MostDerived > struct id_provider { - static bool dummy_; + const void * pCustomId_; + #if defined( BOOST_ENABLE_ASSERT_HANDLER ) || defined( _DEBUG ) + const std::type_info * pCustomIdType_; + #endif }; -template< class MostDerived > -bool id_provider< MostDerived >::dummy_; - template< class MostDerived > struct id_holder { - static void * pId_; + static id_provider idProvider_; }; template< class MostDerived > -void * id_holder< MostDerived >::pId_ = &id_provider< MostDerived >::dummy_; -#endif +id_provider id_holder< MostDerived >::idProvider_; + ////////////////////////////////////////////////////////////////////////////// @@ -66,40 +63,31 @@ struct rtti_policy { public: //////////////////////////////////////////////////////////////////////// - id_type( const std::type_info & id ) : id_( id ) {} + explicit id_type( const std::type_info & id ) : id_( id ) {} - friend bool operator==( id_type left, id_type right ) + bool operator==( id_type right ) const { - return left.id_ == right.id_ != 0; - } - friend bool operator!=( id_type left, id_type right ) - { - return !( left == right ); + return id_ == right.id_ != 0; } + bool operator!=( id_type right ) const { return !( *this == right ); } - friend bool operator<( id_type left, id_type right ) + bool operator<( id_type right ) const { - return left.id_.before( right.id_ ) != 0; - } - friend bool operator>( id_type left, id_type right ) - { - return right < left; - } - friend bool operator>=( id_type left, id_type right ) - { - return !( left < right ); - } - friend bool operator<=( id_type left, id_type right ) - { - return !( right < left ); + return id_.before( right.id_ ) != 0; } + bool operator>( id_type right ) const { return right < *this; } + bool operator>=( id_type right ) const { return !( *this < right ); } + bool operator<=( id_type right ) const { return !( right < *this ); } private: //////////////////////////////////////////////////////////////////////// const std::type_info & id_; }; + + typedef bool id_provider_type; // dummy #else - typedef void * id_type; + typedef const void * id_type; + typedef const id_provider & id_provider_type; #endif //////////////////////////////////////////////////////////////////////////// @@ -111,22 +99,40 @@ struct rtti_policy id_type dynamic_type() const { #ifdef BOOST_FSM_USE_NATIVE_RTTI - return typeid( *this ); + return id_type( typeid( *this ) ); #else - return id_; + return &idProvider_; #endif } + #ifndef BOOST_FSM_USE_NATIVE_RTTI + template< typename CustomId > + const CustomId * custom_dynamic_type_ptr() const + { + BOOST_ASSERT( + ( idProvider_.pCustomIdType_ == 0 ) || + ( *idProvider_.pCustomIdType_ == typeid( CustomId ) ) ); + return static_cast< const CustomId * >( idProvider_.pCustomId_ ); + } + #endif + protected: //////////////////////////////////////////////////////////////////////// + virtual ~base_type() {} + #ifdef BOOST_FSM_USE_NATIVE_RTTI - base_type( id_type ) {} + base_type( id_provider_type ) {} #else - base_type( id_type id ) : id_( id ) {} + base_type( + id_provider_type idProvider + ) : + idProvider_( idProvider ) + { + } private: //////////////////////////////////////////////////////////////////////// - const id_type id_; + id_provider_type idProvider_; #endif }; @@ -139,15 +145,44 @@ struct rtti_policy static id_type static_type() { #ifdef BOOST_FSM_USE_NATIVE_RTTI - return typeid( const MostDerived ); + return id_type( typeid( const MostDerived ) ); #else - return id_holder< MostDerived >::pId_; + return &id_holder< MostDerived >::idProvider_; #endif } + #ifndef BOOST_FSM_USE_NATIVE_RTTI + template< class CustomId > + static const CustomId * custom_static_type_ptr() + { + BOOST_ASSERT( + ( id_holder< MostDerived >::idProvider_.pCustomIdType_ == 0 ) || + ( *id_holder< MostDerived >::idProvider_.pCustomIdType_ == + typeid( CustomId ) ) ); + return static_cast< const CustomId * >( + id_holder< MostDerived >::idProvider_.pCustomId_ ); + } + + template< class CustomId > + static void custom_static_type_ptr( const CustomId * pCustomId ) + { + #if defined( BOOST_ENABLE_ASSERT_HANDLER ) || defined( _DEBUG ) + id_holder< MostDerived >::idProvider_.pCustomIdType_ = + &typeid( CustomId ); + #endif + id_holder< MostDerived >::idProvider_.pCustomId_ = pCustomId; + } + #endif + protected: //////////////////////////////////////////////////////////////////////// - derived_type() : Base( static_type() ) {} + virtual ~derived_type() {} + + #ifdef BOOST_FSM_USE_NATIVE_RTTI + derived_type() : Base( false ) {} + #else + derived_type() : Base( id_holder< MostDerived >::idProvider_ ) {} + #endif }; }; diff --git a/include/boost/statechart/detail/state_base.hpp b/include/boost/statechart/detail/state_base.hpp index a091cc9..ba9674f 100644 --- a/include/boost/statechart/detail/state_base.hpp +++ b/include/boost/statechart/detail/state_base.hpp @@ -64,19 +64,30 @@ class state_base : private noncopyable, public RttiPolicy::base_type< { typedef typename RttiPolicy::base_type< counted_base< orthogonal_position_type, false > > base_type; + + public: + ////////////////////////////////////////////////////////////////////////// + // Returns a pointer to the immediate outer state _if_ there is one, + // returns 0 otherwise (this is the outermost state then) + virtual const state_base * outer_state_ptr() const = 0; + protected: ////////////////////////////////////////////////////////////////////////// - // The following declarations should be private. - // They are only protected because many compilers lack template friends. - ////////////////////////////////////////////////////////////////////////// - state_base( typename RttiPolicy::id_type id ) : - base_type( id ), + state_base( typename RttiPolicy::id_provider_type idProvider ) : + base_type( idProvider ), reactionEnabled_( false ), deferredEvents_( false ), terminationState_( false ) { } + virtual ~state_base() {} + + protected: + ////////////////////////////////////////////////////////////////////////// + // The following declarations should be private. + // They are only protected because many compilers lack template friends. + ////////////////////////////////////////////////////////////////////////// void enable_reaction() { reactionEnabled_ = true; @@ -129,10 +140,6 @@ class state_base : private noncopyable, public RttiPolicy::base_type< const event_base & evt, typename RttiPolicy::id_type eventType ) = 0; - // returns a pointer to the immediate outer state _if_ there is one, - // returns 0 otherwise (this is the outermost state then) - virtual state_base * outer_state_ptr() const = 0; - typedef intrusive_ptr< state_base > state_base_ptr_type; typedef std::list< state_base_ptr_type, diff --git a/include/boost/statechart/event.hpp b/include/boost/statechart/event.hpp index a2b0ab1..865a4fd 100644 --- a/include/boost/statechart/event.hpp +++ b/include/boost/statechart/event.hpp @@ -10,12 +10,8 @@ +#include #include -#include - -#include -#include -#include @@ -26,29 +22,6 @@ namespace fsm -////////////////////////////////////////////////////////////////////////////// -class event_base : public detail::rtti_policy::base_type< - detail::counted_base< unsigned int > > -{ - typedef detail::rtti_policy::base_type< - detail::counted_base< unsigned int > > base_type; - public: - ////////////////////////////////////////////////////////////////////////// - intrusive_ptr< const event_base > clone() const - { - BOOST_ASSERT( base_type::ref_counted() ); - return intrusive_ptr< const event_base >( this ); - } - - protected: - ////////////////////////////////////////////////////////////////////////// - event_base( detail::rtti_policy::id_type id ) : - base_type( id ) - { - } -}; - - ////////////////////////////////////////////////////////////////////////////// template< class MostDerived > class event : public detail::rtti_policy::derived_type< diff --git a/include/boost/statechart/event_base.hpp b/include/boost/statechart/event_base.hpp new file mode 100644 index 0000000..1391a36 --- /dev/null +++ b/include/boost/statechart/event_base.hpp @@ -0,0 +1,57 @@ +#ifndef BOOST_FSM_EVENT_BASE_HPP_INCLUDED +#define BOOST_FSM_EVENT_BASE_HPP_INCLUDED +////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2002-2003 Andreas Huber Doenni, Switzerland +// Permission to copy, use, modify, sell and distribute this software +// is granted provided this copyright notice appears in all copies. +// This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. +////////////////////////////////////////////////////////////////////////////// + + + +#include +#include + +#include +#include + + + +namespace boost +{ +namespace fsm +{ + + + +////////////////////////////////////////////////////////////////////////////// +class event_base : public detail::rtti_policy::base_type< + detail::counted_base< unsigned int > > +{ + typedef detail::rtti_policy::base_type< + detail::counted_base< unsigned int > > base_type; + public: + ////////////////////////////////////////////////////////////////////////// + intrusive_ptr< const event_base > clone() const + { + BOOST_ASSERT( base_type::ref_counted() ); + return intrusive_ptr< const event_base >( this ); + } + + protected: + ////////////////////////////////////////////////////////////////////////// + event_base( detail::rtti_policy::id_provider_type idProvider ) : + base_type( idProvider ) + { + } +}; + + + +} // namespace fsm +} // namespace boost + + + +#endif diff --git a/include/boost/statechart/simple_state.hpp b/include/boost/statechart/simple_state.hpp index 076c599..1b104c3 100644 --- a/include/boost/statechart/simple_state.hpp +++ b/include/boost/statechart/simple_state.hpp @@ -174,9 +174,9 @@ enum history_mode ////////////////////////////////////////////////////////////////////////////// template< class MostDerived, - class Context, // either an outer state or a state_machine + class Context, class Reactions = no_reactions, - class InnerInitial = detail::empty_list, // initial inner state + class InnerInitial = detail::empty_list, history_mode historyMode = has_no_history > class simple_state : public detail::simple_state_base_type< MostDerived, typename Context::inner_context_type, InnerInitial >::type @@ -188,19 +188,6 @@ class simple_state : public detail::simple_state_base_type< MostDerived, public: ////////////////////////////////////////////////////////////////////////// typedef typename Context::inner_context_type context_type; - BOOST_STATIC_CONSTANT( - detail::orthogonal_position_type, - orthogonal_position = Context::inner_orthogonal_position ); - typedef typename context_type::event_base_ptr_type event_base_ptr_type; - - // If you receive a - // "use of undefined type 'boost::STATIC_ASSERTION_FAILURE'" or similar - // compiler error here then this state resides in a non-existent - // orthogonal region of the outer state. - BOOST_STATIC_ASSERT( - orthogonal_position < context_type::no_of_orthogonal_regions ); - - typedef simple_state my_base; template< detail::orthogonal_position_type innerOrthogonalPosition > struct orthogonal @@ -211,10 +198,21 @@ class simple_state : public detail::simple_state_base_type< MostDerived, typedef MostDerived inner_context_type; }; + typedef typename context_type::outermost_context_type + outermost_context_type; + + outermost_context_type & outermost_context() + { + BOOST_ASSERT( get_pointer( pContext_ ) != 0 ); + return pContext_->outermost_context(); + } + + const outermost_context_type & outermost_context() const + { + BOOST_ASSERT( get_pointer( pContext_ ) != 0 ); + return pContext_->outermost_context(); + } - // Returns a reference to the context identified by the template - // parameter. This can either be _this_ object or one of its - // direct or indirect contexts template< class OtherContext > OtherContext & context() { @@ -227,19 +225,12 @@ class simple_state : public detail::simple_state_base_type< MostDerived, return context_impl( static_cast< OtherContext * >( 0 ) ); } - void post_event( const event_base_ptr_type & pEvent ) - { - outermost_context().post_event( pEvent ); - } - - // see state_machine class for documentation template< class Target > Target state_cast() const { return outermost_context().template state_cast< Target >(); } - // see state_machine class for documentation template< class Target > Target state_downcast() const { @@ -247,6 +238,13 @@ class simple_state : public detail::simple_state_base_type< MostDerived, } + typedef typename context_type::event_base_ptr_type event_base_ptr_type; + + void post_event( const event_base_ptr_type & pEvent ) + { + outermost_context().post_event( pEvent ); + } + result discard_event() { state_base_type::reaction_initiated(); @@ -266,7 +264,6 @@ class simple_state : public detail::simple_state_base_type< MostDerived, return do_defer_event; } - // Initiates a transition to DestinationState (without transition action). template< class DestinationState > result transit() { @@ -274,9 +271,6 @@ class simple_state : public detail::simple_state_base_type< MostDerived, detail::no_transition_function() ); } - // Initiates a transition to DestinationState with a transition action. - // The transition action must be a member of the innermost common context - // or of one of its contexts. template< class DestinationState, class TransitionContext, class Event > result transit( void ( TransitionContext::*pTransitionAction )( const Event & ), @@ -287,9 +281,6 @@ class simple_state : public detail::simple_state_base_type< MostDerived, pTransitionAction, evt ) ); } - // Terminates this state. Depending on whether there are other orthogonal - // states present this may or may not lead to the whole statemachine being - // terminated. result terminate() { state_base_type::reaction_initiated(); @@ -324,6 +315,17 @@ class simple_state : public detail::simple_state_base_type< MostDerived, // The following declarations should be private. // They are only public because many compilers lack template friends. ////////////////////////////////////////////////////////////////////////// + BOOST_STATIC_CONSTANT( + detail::orthogonal_position_type, + orthogonal_position = Context::inner_orthogonal_position ); + + // If you receive a + // "use of undefined type 'boost::STATIC_ASSERTION_FAILURE'" or similar + // compiler error here then this state resides in a non-existent + // orthogonal region of the outer state. + BOOST_STATIC_ASSERT( + orthogonal_position < context_type::no_of_orthogonal_regions ); + typedef MostDerived inner_context_type; BOOST_STATIC_CONSTANT( detail::orthogonal_position_type, @@ -393,29 +395,13 @@ class simple_state : public detail::simple_state_base_type< MostDerived, return reactionResult; } - virtual state_base_type * outer_state_ptr() const + virtual const state_base_type * outer_state_ptr() const { return outer_state_ptr_impl< is_same< outermost_context_type, context_type >::value >(); } - outermost_context_type & outermost_context() - { - BOOST_ASSERT( get_pointer( pContext_ ) != 0 ); - return pContext_->outermost_context(); - } - - const outermost_context_type & outermost_context() const - { - BOOST_ASSERT( get_pointer( pContext_ ) != 0 ); - return pContext_->outermost_context(); - } - - - // Returns a pointer to the direct or indirect context identified by the - // template parameter. In contrast to context(), this function cannot - // return a pointer to this object. template< class OtherContext > const typename OtherContext::inner_context_ptr_type & context_ptr() const { @@ -423,20 +409,12 @@ class simple_state : public detail::simple_state_base_type< MostDerived, } - // Given a outermost context (i.e. a state machine), constructs this state - // with all its outer and inner initial states. Used for initial - // construction only. - // After each successful (non-throwing) construction the current state is - // reported back to the state machine. static void initial_deep_construct( outermost_context_type & outermostContext ) { deep_construct( &outermostContext, outermostContext ); } - // Constructs this state with all its inner initial states. - // After each successful (non-throwing) construction the current state is - // reported back to the state machine. static void deep_construct( const context_ptr_type & pContext, outermost_context_type & outermostContext ) @@ -593,9 +571,9 @@ class simple_state : public detail::simple_state_base_type< MostDerived, common_context_type, DestinationState >::type context_list_type; // If you receive a - // "use of undefined type 'boost::STATIC_ASSERTION_FAILURE'" or similar - // compiler error here then you tried to make an invalid transition - // between different orthogonal regions. + // "use of undefined type 'boost::STATIC_ASSERTION_FAILURE'" or + // similar compiler error here then you tried to make an invalid + // transition between different orthogonal regions. BOOST_STATIC_ASSERT( termination_state_type::orthogonal_position == mpl::front< context_list_type >::type::orthogonal_position ); @@ -633,13 +611,13 @@ class simple_state : public detail::simple_state_base_type< MostDerived, } template< bool isOutermost > - state_base_type * outer_state_ptr_impl() const + const state_base_type * outer_state_ptr_impl() const { return get_pointer( pContext_ ); } template<> - state_base_type * outer_state_ptr_impl< true >() const + const state_base_type * outer_state_ptr_impl< true >() const { return 0; } diff --git a/include/boost/statechart/state.hpp b/include/boost/statechart/state.hpp index 7e1fbb3..1dd953a 100644 --- a/include/boost/statechart/state.hpp +++ b/include/boost/statechart/state.hpp @@ -22,9 +22,9 @@ namespace fsm template< class MostDerived, - class Context, // either an outer state or a state_machine + class Context, class Reactions = no_reactions, - class InnerInitial = detail::empty_list, // initial inner state + class InnerInitial = detail::empty_list, history_mode historyMode = has_no_history > class state : public simple_state< MostDerived, Context, Reactions, InnerInitial, historyMode > @@ -50,6 +50,8 @@ class state : public simple_state< base_type::set_context( ctx.pContext_ ); } + virtual ~state() {} + public: ////////////////////////////////////////////////////////////////////////// // The following declarations should be private. diff --git a/include/boost/statechart/state_machine.hpp b/include/boost/statechart/state_machine.hpp index b334358..e2809bd 100644 --- a/include/boost/statechart/state_machine.hpp +++ b/include/boost/statechart/state_machine.hpp @@ -42,6 +42,7 @@ #include // std::allocator #include // std::bad_cast #include // std::less +#include @@ -223,8 +224,6 @@ class history_key ////////////////////////////////////////////////////////////////////////////// -// Base class for all state machines -// Some function names were derived from a state machine by Aleksey Gurtovoy. template< class MostDerived, class InitialState, class Allocator = std::allocator< void >, @@ -238,9 +237,6 @@ class state_machine : noncopyable typedef event_base event_base_type; typedef intrusive_ptr< const event_base_type > event_base_ptr_type; - // Initiates the state machine. - // Returns true if the state machine terminated as a direct or indirect - // result of entering the initial state. bool initiate() { terminate(); @@ -263,9 +259,6 @@ class state_machine : noncopyable return currentStates_.size() == 0; } - // Processes the passed event. - // Returns true if the state machine was running before and terminated - // after processing the event. bool process_event( const event_base_type & evt ) { const bool running = !terminated(); @@ -274,16 +267,6 @@ class state_machine : noncopyable return terminated() && running; } - // Has semantics similar to dynamic_cast. Returns a pointer or a reference - // to a state with the specified type _if_ the machine is currently in - // such a state. Can _cross_ inheritance trees, e.g. if the machine is in - // state A, which derives from simple_state _and_ B then - // state_cast< const B & >() will return a reference to B and - // state_cast< const A & >() will return a reference to A. - // Target can take either of the following forms: - // - const X &: throws std::bad_cast if the machine is not currently in - // state X - // - const X *: returns 0 if the machine is not currently in state X template< class Target > Target state_cast() const { @@ -324,18 +307,6 @@ class state_machine : noncopyable return impl::not_found< Target >(); } - // Typically much faster variant of state_cast. Returns a pointer or a - // reference to a state with the specified type _if_ the machine is - // currently in such a state. - // Does _not_ cross inheritance trees, i.e. Target must be a most-derived - // type, e.g. if the machine is in state A, which derives from - // simple_state _and_ B then state_downcast< const B & >() will not - // compile while state_downcast< const A & >() will return a reference to - // A. - // Target can take either of the following forms: - // - const X &: throws std::bad_cast if the machine is not currently in - // state X - // - const X *: returns 0 if the machine is not currently in state X template< class Target > Target state_downcast() const { @@ -368,6 +339,55 @@ class state_machine : noncopyable return impl::not_found< Target >(); } + typedef detail::state_base< allocator_type, rtti_policy_type > + state_base_type; + + class state_iterator : public std::iterator< + std::forward_iterator_tag, + state_base_type, std::ptrdiff_t, + const state_base_type *, const state_base_type & > + { + public: + ////////////////////////////////////////////////////////////////////// + explicit state_iterator( + state_base_type::state_list_type::const_iterator baseIterator + ) : baseIterator_( baseIterator ) {} + + const state_base_type & operator*() const { return **baseIterator_; } + const state_base_type * operator->() const + { + return &**baseIterator_; + } + + state_iterator & operator++() { ++baseIterator_; return *this; } + state_iterator operator++( int ) + { + return state_iterator( baseIterator_++ ); + } + + bool operator==( const state_iterator & right ) const + { + return baseIterator_ == right.baseIterator_; + } + bool operator!=( const state_iterator & right ) const + { + return !( *this == right ); + } + + private: + state_base_type::state_list_type::const_iterator baseIterator_; + }; + + state_iterator state_begin() const + { + return state_iterator( currentStates_.begin() ); + } + + state_iterator state_end() const + { + return state_iterator( currentStates_.end() ); + } + protected: ////////////////////////////////////////////////////////////////////////// state_machine() : @@ -375,7 +395,7 @@ class state_machine : noncopyable { } - // This destructor was only made virtual, so that that + // This destructor was only made virtual so that that // polymorphic_downcast can be used to cast to MostDerived. virtual ~state_machine() {} @@ -384,9 +404,6 @@ class state_machine : noncopyable // The following declarations should be private. // They are only public because many compilers lack template friends. ////////////////////////////////////////////////////////////////////////// - typedef detail::state_base< allocator_type, rtti_policy_type > - state_base_type; - typedef MostDerived inner_context_type; BOOST_STATIC_CONSTANT( detail::orthogonal_position_type, diff --git a/include/boost/statechart/worker.hpp b/include/boost/statechart/worker.hpp index bfae64e..b9c21f2 100644 --- a/include/boost/statechart/worker.hpp +++ b/include/boost/statechart/worker.hpp @@ -121,8 +121,7 @@ class worker : noncopyable typedef detail::event_processor< worker > processor_type; typedef std::list< processor_type *, Allocator > processor_list_type; - typedef intrusive_ptr< const event_base > - event_ptr_type; + typedef intrusive_ptr< const event_base > event_ptr_type; typedef std::pair< processor_type *, event_ptr_type > queue_element; typedef std::list< queue_element, Allocator > event_queue_type;