        "controller.animation.m1911_hold_tpp": {
            "initial_state": "default",
            "states": {
                "default": {
                    "animations": [
                        {
                            "m1911_tpp_draw": "(variable.m1911 || variable.m1911_empty) && variable.is_third_person"
                        }
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_hold": "query.all_animations_finished && (variable.m1911 || variable.m1911_empty) && variable.is_third_person"
                        }
                    ]
                },
                "m1911_tpp_hold": {
                    "animations": [
                        {
                            "m1911_tpp_hold": "variable.m1911 && variable.is_third_person && !query.is_sneaking && !query.is_sprinting && !query.is_using_item"
                        },
                        {
                            "m1911_tpp_hold": "variable.m1911_empty && variable.is_third_person && !query.is_powered && !query.is_sneaking && !query.is_sprinting"
                        },
                        {
                            "m1911_tpp_reload": "variable.m1911_empty && variable.is_third_person && query.Is_powered"
                        }
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_in_aim": "(variable.m1911 || variable.m1911_empty) && variable.is_third_person && query.is_sneaking && !query.is_powered"
                        },
                        {
                            "m1911_tpp_in_run": "(variable.m1911 || variable.m1911_empty) && variable.is_third_person && query.is_sprinting && !query.is_powered"
                        },
                        {
                            "m1911_tpp_shoot": "variable.m1911 && variable.is_third_person && query.is_using_item && !query.is_sneaking"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
                "m1911_tpp_in_aim": {
                    "animations": [
                        "m1911_tpp_in_aim"
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_aim": "query.all_animations_finished && variable.is_third_person"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
                "m1911_tpp_aim": {
                    "animations": [
                        "m1911_tpp_aim"
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_aim_shoot": "variable.m1911 && query.is_sneaking && query.is_using_item && variable.is_third_person"
                        },
                        {
                            "m1911_tpp_out_aim": "!query.is_sneaking && variable.is_third_person"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
                "m1911_tpp_out_aim": {
                    "animations": [
                        "m1911_tpp_out_aim"
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_hold": "query.all_animations_finished && variable.is_third_person"
                        },
                        {
                            "m1911_tpp_in_run": "query.all_animations_finished && (variable.m1911 || variable.m1911_empty) query.is_sprinting && !query.is_powered && variable.is_third_person"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
                "m1911_tpp_in_run": {
                    "animations": [
                        "m1911_tpp_in_run"
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_run": "query.all_animations_finished && !query.is_powered"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
                "m1911_tpp_run": {
                    "animations": [
                        "m1911_tpp_aim"
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_out_run": "!query.is_sprinting && variable.is_third_person"
                        },
                        {
                            "m1911_tpp_in_aim": "(variable.m1911 || variable.m1911_empty) && query.is_sneaking && !query.is_powered && variable.is_third_person"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
                "m1911_tpp_out_run": {
                    "animations": [
                        "m1911_tpp_out_aim"
                    ],
                    "transitions": [
                        {
                            "m1911_tpp_hold": "query.all_animations_finished && variable.is_third_person"
                        },
                        {
                            "m1911_tpp_in_run": "query.all_animations_finished && (variable.m1911 || variable.m1911_empty) query.is_sprinting && !query.is_powered && variable.is_third_person"
                        },                        
                        {
                            "m1911_tpp_in_aim": "(variable.m1911 || variable.m1911_empty) && query.is_sneaking && !query.is_powered && variable.is_third_person"
                        },
                        {
                            "default": "!(variable.m1911 || variable.m1911_empty)"
                        }
                    ]
                },
	                  "m1911_tpp_shoot": {
	                      "animations": [
	                          "m1911_tpp_shoot"
	                          ],
	                          "transitions": [
	 						      {
							"m1911_tpp_shoot_auto": "variable.is_third_person && query.all_animations_finished"
						          }, 
	                              {
	                                  "default": "!variable.m1911"
	                              }
	                        ]
	                  },
				"m1911_tpp_shoot_auto": {
					"animations": [ "m1911_tpp_hold" ],
					"on_entry": [
						"variable.bullet_fire = query.life_time;"
					],
					"transitions": [
						{
                         "m1911_tpp_hold": "variable.is_third_person && !variable.m1911_hold || !query.is_using_item"
						},
						{
							"m1911_tpp_shoot": "(query.life_time - variable.bullet_fire) >= 0.10"
						},
						{
							"default": "!variable.m1911"
						}
					]
				},
	                  "m1911_tpp_aim_shoot": {
	                      "animations": [
	                          "m1911_tpp_aim_shoot"
	                          ],
	                          "transitions": [
	 						      {	"m1911_tpp_aim_shoot_auto": "variable.is_third_person && query.all_animations_finished"
						          }, 
	                              {
	                                  "default": "!variable.m1911"
	                              }
	                        ]
	                  },
				"m1911_tpp_aim_shoot_auto": {
					"animations": [ "m1911_tpp_aim" ],
					"on_entry": [
						"variable.bullet_fire = query.life_time;"
					],
					"transitions": [
						{
                         "m1911_tpp_aim": "variable.is_third_person && !variable.m1911 || !query.is_using_item"
						},
						{
							"m1911_tpp_aim_shoot": "(query.life_time - variable.bullet_fire) >= 0.10"
						},
						{
							"default": "!variable.m1911"
						}
					]
				}                
            }
        }