;; Object client connection state
;; EIEIO PERSISTENT OBJECT
(cogre-base-graph "client connection state"
  :file "client-connection-states.cogre"
  :name "client connection state"
  :elements (list 
   (cogre-node "new"
    :position [10 0]
    )
   (cogre-node "encryption-negotiate"
    :position [10 6]
    )
   (cogre-node "encryption-start"
    :position [10 12]
    )
   (cogre-node "waiting-for-join-info"
    :position [10 18]
    )
   (cogre-node "joining"
    :position [10 24]
    )
   (cogre-node "join-failed"
    :position [10 30]
    )
   (cogre-node "idle"
    :position [31 36]
    )
   (cogre-node "session-synching"
    :position [31 30]
    )
   (cogre-node "subscribing"
    :position [2 39]
    )
   (cogre-node "document-synching"
    :position [11 48]
    )
   (cogre-node "changing-color"
    :position [47 36]
    )
   (cogre-node "color-change-failed"
    :position [48 48]
    )
   (cogre-arrow "Name"
    :start "waiting-for-join-info"
    :end "joining"
    )
   (cogre-arrow "Name1"
    :start "changing-color"
    :end "color-change-failed"
    )
   (cogre-arrow "Name2"
    :start "idle"
    :end "changing-color"
    )
   (cogre-arrow "Name3"
    :start "joining"
    :end "join-failed"
    )
   (cogre-arrow "Name4"
    :start "encryption-negotiate"
    :end "encryption-start"
    )
   (cogre-arrow "Name5"
    :start "joining"
    :end "session-synching"
    )
   (cogre-arrow "Name6"
    :start "session-synching"
    :end "idle"
    )
   (cogre-arrow "Name7"
    :start "new"
    :end "encryption-negotiate"
    )
   (cogre-arrow "Name8"
    :start "encryption-start"
    :end "waiting-for-join-info"
    )
   (cogre-arrow "Name9"
    :start "join-failed"
    :end "joining"
    )
   (cogre-arrow "Name10"
    :start "changing-color"
    :end "idle"
    )
   (cogre-arrow "Name11"
    :start "document-synching"
    :end "idle"
    )
   (cogre-arrow "Name12"
    :start "subscribing"
    :end "document-synching"
    )
   (cogre-arrow "Name13"
    :start "idle"
    :end "subscribing"
    )
   )
  )
