ProgramNode(0...530)(
  [:foo, :bar, :exception],
  StatementsNode(0...530)(
    [BeginNode(0...16)(
       (0...5),
       nil,
       RescueNode(6...12)((6...12), [], nil, nil, nil, nil),
       nil,
       nil,
       (13...16)
     ),
     BeginNode(18...34)(
       (18...23),
       nil,
       nil,
       nil,
       EnsureNode(24...34)((24...30), nil, (31...34)),
       (31...34)
     ),
     BeginNode(36...49)(
       (36...41),
       StatementsNode(44...45)(
         [CallNode(44...45)(nil, nil, (44...45), nil, nil, nil, nil, 0, "a")]
       ),
       nil,
       nil,
       nil,
       (46...49)
     ),
     BeginNode(51...75)(
       (51...56),
       StatementsNode(59...60)(
         [CallNode(59...60)(nil, nil, (59...60), nil, nil, nil, nil, 0, "a")]
       ),
       RescueNode(61...71)(
         (61...67),
         [],
         nil,
         nil,
         StatementsNode(70...71)(
           [CallNode(70...71)(nil, nil, (70...71), nil, nil, nil, nil, 0, "b")]
         ),
         nil
       ),
       nil,
       nil,
       (72...75)
     ),
     BeginNode(77...105)(
       (77...82),
       StatementsNode(85...90)(
         [CallNode(85...86)(nil, nil, (85...86), nil, nil, nil, nil, 0, "a"),
          CallNode(89...90)(nil, nil, (89...90), nil, nil, nil, nil, 0, "b")]
       ),
       RescueNode(91...101)(
         (91...97),
         [],
         nil,
         nil,
         StatementsNode(100...101)(
           [CallNode(100...101)(
              nil,
              nil,
              (100...101),
              nil,
              nil,
              nil,
              nil,
              0,
              "b"
            )]
         ),
         nil
       ),
       nil,
       nil,
       (102...105)
     ),
     BeginNode(107...125)(
       (107...112),
       nil,
       RescueNode(113...121)(
         (113...119),
         [ConstantReadNode(120...121)()],
         nil,
         nil,
         nil,
         nil
       ),
       nil,
       nil,
       (122...125)
     ),
     BeginNode(127...152)(
       (127...132),
       nil,
       RescueNode(133...148)(
         (133...139),
         [ConstantReadNode(140...141)()],
         (142...144),
         LocalVariableWriteNode(145...148)(:foo, 0, nil, (145...148), nil),
         nil,
         nil
       ),
       nil,
       nil,
       (149...152)
     ),
     BeginNode(154...204)(
       (154...159),
       StatementsNode(162...163)(
         [CallNode(162...163)(
            nil,
            nil,
            (162...163),
            nil,
            nil,
            nil,
            nil,
            0,
            "a"
          )]
       ),
       RescueNode(164...189)(
         (164...170),
         [ConstantReadNode(171...172)()],
         nil,
         nil,
         StatementsNode(175...176)(
           [CallNode(175...176)(
              nil,
              nil,
              (175...176),
              nil,
              nil,
              nil,
              nil,
              0,
              "b"
            )]
         ),
         RescueNode(177...189)(
           (177...183),
           [ConstantReadNode(184...185)()],
           nil,
           nil,
           StatementsNode(188...189)(
             [CallNode(188...189)(
                nil,
                nil,
                (188...189),
                nil,
                nil,
                nil,
                nil,
                0,
                "c"
              )]
           ),
           nil
         )
       ),
       nil,
       EnsureNode(190...204)(
         (190...196),
         StatementsNode(199...200)(
           [CallNode(199...200)(
              nil,
              nil,
              (199...200),
              nil,
              nil,
              nil,
              nil,
              0,
              "d"
            )]
         ),
         (201...204)
       ),
       (201...204)
     ),
     BeginNode(206...273)(
       (206...211),
       StatementsNode(214...250)(
         [BeginNode(214...250)(
            (214...219),
            StatementsNode(224...235)(
              [LocalVariableReadNode(224...227)(:foo, 0),
               CallNode(232...235)(
                 nil,
                 nil,
                 (232...235),
                 nil,
                 nil,
                 nil,
                 nil,
                 0,
                 "bar"
               )]
            ),
            RescueNode(238...244)((238...244), [], nil, nil, nil, nil),
            nil,
            nil,
            (247...250)
          )]
       ),
       RescueNode(251...269)(
         (251...257),
         [],
         nil,
         nil,
         StatementsNode(260...269)(
           [CallNode(260...263)(
              nil,
              nil,
              (260...263),
              nil,
              nil,
              nil,
              nil,
              0,
              "baz"
            ),
            CallNode(266...269)(
              nil,
              nil,
              (266...269),
              nil,
              nil,
              nil,
              nil,
              0,
              "bar"
            )]
         ),
         nil
       ),
       nil,
       nil,
       (270...273)
     ),
     BeginNode(275...337)(
       (275...280),
       StatementsNode(283...316)(
         [RescueModifierNode(283...316)(
            CallNode(283...299)(
              nil,
              nil,
              (283...288),
              (288...289),
              ArgumentsNode(289...298)([ConstantReadNode(289...298)()]),
              (298...299),
              nil,
              0,
              "raise"
            ),
            (300...306),
            LocalVariableWriteNode(307...316)(
              :foo,
              0,
              CallNode(313...316)(
                nil,
                nil,
                (313...316),
                nil,
                nil,
                nil,
                nil,
                0,
                "bar"
              ),
              (307...310),
              (311...312)
            )
          )]
       ),
       RescueNode(317...333)(
         (317...323),
         [ConstantReadNode(324...333)()],
         nil,
         nil,
         nil,
         nil
       ),
       nil,
       nil,
       (334...337)
     ),
     BeginNode(339...374)(
       (339...344),
       StatementsNode(347...350)([LocalVariableReadNode(347...350)(:foo, 0)]),
       RescueNode(351...370)(
         (351...357),
         [],
         (358...360),
         LocalVariableWriteNode(361...364)(:bar, 0, nil, (361...364), nil),
         StatementsNode(367...370)(
           [LocalVariableReadNode(367...370)(:bar, 0)]
         ),
         nil
       ),
       nil,
       nil,
       (371...374)
     ),
     BeginNode(376...428)(
       (376...381),
       StatementsNode(384...387)([LocalVariableReadNode(384...387)(:foo, 0)]),
       RescueNode(388...424)(
         (388...394),
         [ConstantReadNode(395...404)(), ConstantReadNode(406...411)()],
         (412...414),
         LocalVariableWriteNode(415...418)(:bar, 0, nil, (415...418), nil),
         StatementsNode(421...424)(
           [LocalVariableReadNode(421...424)(:bar, 0)]
         ),
         nil
       ),
       nil,
       nil,
       (425...428)
     ),
     BeginNode(430...487)(
       (430...435),
       StatementsNode(438...441)([LocalVariableReadNode(438...441)(:bar, 0)]),
       RescueNode(442...483)(
         (442...448),
         [ConstantReadNode(449...458)(),
          SplatNode(460...464)(
            (460...461),
            LocalVariableReadNode(461...464)(:bar, 0)
          )],
         (465...467),
         LocalVariableWriteNode(468...477)(
           :exception,
           0,
           nil,
           (468...477),
           nil
         ),
         StatementsNode(480...483)(
           [CallNode(480...483)(
              nil,
              nil,
              (480...483),
              nil,
              nil,
              nil,
              nil,
              0,
              "baz"
            )]
         ),
         nil
       ),
       nil,
       nil,
       (484...487)
     ),
     SingletonClassNode(489...530)(
       [],
       (489...494),
       (495...497),
       SelfNode(498...502)(),
       StatementsNode(505...526)(
         [RescueModifierNode(505...526)(
            UndefNode(505...515)(
              [SymbolNode(511...515)((511...512), (512...515), nil, "bar")],
              (505...510)
            ),
            (516...522),
            NilNode(523...526)()
          )]
       ),
       (527...530)
     )]
  )
)
