---
Function {
 argument: None,
 arguments: FunctionArguments {
  arguments: [
   FunctionArgument {
    identifier: "config",
    default: None,
   },
   FunctionArgument {
    identifier: "modulesPath",
    default: None,
   },
   FunctionArgument {
    identifier: "pkgs",
    default: None,
   },
  ],
  ellipsis: true,
 },
 definition: Map {
  bindings: [
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "imports",
       position: (17, 3),
      },
     ],
    },
    List {
     elements: [
      BinaryOperation {
       operator: Addition,
       operands: [
        Variable {
         identifier: "modulesPath",
         position: (18, 6),
        },
        String {
         parts: [
          Raw {
           content: "/installer/netboot/netboot-minimal.nix",
          },
         ],
         position: (18, 20),
        },
       ],
       position: (18, 18),
      },
     ],
     position: (17, 13),
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "config",
       position: (21, 3),
      },
     ],
    },
    Map {
     bindings: [
      KeyValue(
       AttributePath {
        attributes: [
         Raw {
          content: "system",
          position: (22, 5),
         },
         Raw {
          content: "build",
          position: (22, 12),
         },
         Raw {
          content: "kexecBoot",
          position: (22, 18),
         },
        ],
       },
       LetIn {
        bindings: [
         KeyValue(
          AttributePath {
           attributes: [
            Raw {
             content: "kexecScript",
             position: (24, 9),
            },
           ],
          },
          FunctionApplication {
           function: PropertyAccess {
            expression: Variable {
             identifier: "pkgs",
             position: (24, 23),
            },
            attribute_path: AttributePath {
             attributes: [
              Raw {
               content: "writeScript",
               position: (24, 28),
              },
             ],
            },
            default: None,
           },
           arguments: [
            String {
             parts: [
              Raw {
               content: "kexec-boot",
              },
             ],
             position: (24, 40),
            },
            String {
             parts: [
              Raw {
               content: "#!/usr/bin/env bash\nif ! kexec -v >/dev/null 2>&1; then\n  echo \"kexec not found: please install kexec-tools\" 2>&1\n  exit 1\nfi\nSCRIPT_DIR=$( cd -- \"$( dirname -- \"",
              },
              Raw {
               content: "$",
              },
              Raw {
               content: "{BASH_SOURCE[0]}\" )\" &> /dev/null && pwd )\nkexec --load ",
              },
              Raw {
               content: "$",
              },
              Raw {
               content: "{SCRIPT_DIR}/bzImage \\\n  --initrd=",
              },
              Raw {
               content: "$",
              },
              Raw {
               content: "{SCRIPT_DIR}/initrd.gz \\\n  --command-line \"init=",
              },
              Expression {
               expression: PropertyAccess {
                expression: Variable {
                 identifier: "config",
                 position: (33, 36),
                },
                attribute_path: AttributePath {
                 attributes: [
                  Raw {
                   content: "system",
                   position: (33, 43),
                  },
                  Raw {
                   content: "build",
                   position: (33, 50),
                  },
                  Raw {
                   content: "toplevel",
                   position: (33, 56),
                  },
                 ],
                },
                default: None,
               },
              },
              Raw {
               content: "/init ",
              },
              Expression {
               expression: FunctionApplication {
                function: Variable {
                 identifier: "toString",
                 position: (33, 73),
                },
                arguments: [
                 PropertyAccess {
                  expression: Variable {
                   identifier: "config",
                   position: (33, 82),
                  },
                  attribute_path: AttributePath {
                   attributes: [
                    Raw {
                     content: "boot",
                     position: (33, 89),
                    },
                    Raw {
                     content: "kernelParams",
                     position: (33, 94),
                    },
                   ],
                  },
                  default: None,
                 },
                ],
               },
              },
              Raw {
               content: "\"\nkexec -e\n",
              },
             ],
             position: (24, 53),
            },
           ],
          },
         ),
        ],
        target: FunctionApplication {
         function: PropertyAccess {
          expression: Variable {
           identifier: "pkgs",
           position: (36, 7),
          },
          attribute_path: AttributePath {
           attributes: [
            Raw {
             content: "linkFarm",
             position: (36, 12),
            },
           ],
          },
          default: None,
         },
         arguments: [
          String {
           parts: [
            Raw {
             content: "kexec-tree",
            },
           ],
           position: (36, 21),
          },
          List {
           elements: [
            Map {
             bindings: [
              KeyValue(
               AttributePath {
                attributes: [
                 Raw {
                  content: "name",
                  position: (38, 11),
                 },
                ],
               },
               String {
                parts: [
                 Raw {
                  content: "initrd.gz",
                 },
                ],
                position: (38, 18),
               },
              ),
              KeyValue(
               AttributePath {
                attributes: [
                 Raw {
                  content: "path",
                  position: (39, 11),
                 },
                ],
               },
               String {
                parts: [
                 Expression {
                  expression: PropertyAccess {
                   expression: Variable {
                    identifier: "config",
                    position: (39, 21),
                   },
                   attribute_path: AttributePath {
                    attributes: [
                     Raw {
                      content: "system",
                      position: (39, 28),
                     },
                     Raw {
                      content: "build",
                      position: (39, 35),
                     },
                     Raw {
                      content: "netbootRamdisk",
                      position: (39, 41),
                     },
                    ],
                   },
                   default: None,
                  },
                 },
                 Raw {
                  content: "/initrd",
                 },
                ],
                position: (39, 18),
               },
              ),
             ],
             recursive: false,
             position: (37, 9),
            },
            Map {
             bindings: [
              KeyValue(
               AttributePath {
                attributes: [
                 Raw {
                  content: "name",
                  position: (42, 11),
                 },
                ],
               },
               String {
                parts: [
                 Raw {
                  content: "bzImage",
                 },
                ],
                position: (42, 18),
               },
              ),
              KeyValue(
               AttributePath {
                attributes: [
                 Raw {
                  content: "path",
                  position: (43, 11),
                 },
                ],
               },
               String {
                parts: [
                 Expression {
                  expression: PropertyAccess {
                   expression: Variable {
                    identifier: "config",
                    position: (43, 21),
                   },
                   attribute_path: AttributePath {
                    attributes: [
                     Raw {
                      content: "system",
                      position: (43, 28),
                     },
                     Raw {
                      content: "build",
                      position: (43, 35),
                     },
                     Raw {
                      content: "kernel",
                      position: (43, 41),
                     },
                    ],
                   },
                   default: None,
                  },
                 },
                 Raw {
                  content: "/bzImage",
                 },
                ],
                position: (43, 18),
               },
              ),
             ],
             recursive: false,
             position: (41, 9),
            },
            Map {
             bindings: [
              KeyValue(
               AttributePath {
                attributes: [
                 Raw {
                  content: "name",
                  position: (46, 11),
                 },
                ],
               },
               String {
                parts: [
                 Raw {
                  content: "kexec-boot",
                 },
                ],
                position: (46, 18),
               },
              ),
              KeyValue(
               AttributePath {
                attributes: [
                 Raw {
                  content: "path",
                  position: (47, 11),
                 },
                ],
               },
               Variable {
                identifier: "kexecScript",
                position: (47, 18),
               },
              ),
             ],
             recursive: false,
             position: (45, 9),
            },
           ],
           position: (36, 34),
          },
         ],
        },
        position: (23, 7),
       },
      ),
     ],
     recursive: false,
     position: (21, 12),
    },
   ),
  ],
  recursive: false,
  position: (16, 1),
 },
 position: (11, 1),
}