(kicad_sch (version 20230121) (generator eeschema)

  (uuid 03eddb66-405a-4659-a7c5-6cd12271af10)

  (paper "A3")

  (title_block
    (title "Gonk")
    (date "2023-07-20")
    (rev "P0")
  )

  (lib_symbols
    (symbol "Device:C_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "C" (at 0.254 1.778 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "C_Small" (at 0.254 -2.032 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "capacitor cap" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Unpolarized capacitor, small symbol" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "C_*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "C_Small_0_1"
        (polyline
          (pts
            (xy -1.524 -0.508)
            (xy 1.524 -0.508)
          )
          (stroke (width 0.3302) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy -1.524 0.508)
            (xy 1.524 0.508)
          )
          (stroke (width 0.3048) (type default))
          (fill (type none))
        )
      )
      (symbol "C_Small_1_1"
        (pin passive line (at 0 2.54 270) (length 2.032)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 2.032)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Device:R_Small_US" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes)
      (property "Reference" "R" (at 0.762 0.508 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Value" "R_Small_US" (at 0.762 -1.016 0)
        (effects (font (size 1.27 1.27)) (justify left))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "~" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "r resistor" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Resistor, small US symbol" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "R_*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "R_Small_US_1_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 1.016 -0.381)
            (xy 0 -0.762)
            (xy -1.016 -1.143)
            (xy 0 -1.524)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 1.524)
            (xy 1.016 1.143)
            (xy 0 0.762)
            (xy -1.016 0.381)
            (xy 0 0)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (pin passive line (at 0 2.54 270) (length 1.016)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 90) (length 1.016)
          (name "~" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Memory_EEPROM:N25Q032A13ESC40F" (in_bom yes) (on_board yes)
      (property "Reference" "U" (at 39.37 7.62 0)
        (effects (font (size 1.27 1.27)) (justify left top))
      )
      (property "Value" "N25Q032A13ESC40F" (at 39.37 5.08 0)
        (effects (font (size 1.27 1.27)) (justify left top))
      )
      (property "Footprint" "SOIC127P600X175-8N" (at 39.37 -94.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Datasheet" "https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/n25q/n25q_32mb_3v_65nm.pdf?rev=27fc6016fc5249adb4bb8f221e72b395" (at 39.37 -194.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Height" "1.75" (at 39.37 -394.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Manufacturer_Name" "Alliance Memory" (at 39.37 -494.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Manufacturer_Part_Number" "N25Q032A13ESC40F" (at 39.37 -594.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Mouser Part Number" "913-N25Q032A13ESC40F" (at 39.37 -694.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Mouser Price/Stock" "https://www.mouser.co.uk/ProductDetail/Alliance-Memory/N25Q032A13ESC40F?qs=W%2FMpXkg%252BdQ70%2FmLJsMq3Ww%3D%3D" (at 39.37 -794.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Arrow Part Number" "" (at 39.37 -894.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "Arrow Price/Stock" "" (at 39.37 -994.92 0)
        (effects (font (size 1.27 1.27)) (justify left top) hide)
      )
      (property "ki_description" "FLASH - NOR Memory IC 32Mb (8M x 4) SPI 108MHz  8-SO" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "N25Q032A13ESC40F_1_1"
        (rectangle (start 5.08 2.54) (end 38.1 -11.43)
          (stroke (width 0.254) (type default))
          (fill (type background))
        )
        (pin passive line (at 0 0 0) (length 5.08)
          (name "S#" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -2.54 0) (length 5.08)
          (name "DQ1" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -5.08 0) (length 5.08)
          (name "W#/VPP/DQ2" (effects (font (size 1.27 1.27))))
          (number "3" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 0 -7.62 0) (length 5.08)
          (name "VSS" (effects (font (size 1.27 1.27))))
          (number "4" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 43.18 -7.62 180) (length 5.08)
          (name "DQ0" (effects (font (size 1.27 1.27))))
          (number "5" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 43.18 -5.08 180) (length 5.08)
          (name "C" (effects (font (size 1.27 1.27))))
          (number "6" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 43.18 -2.54 180) (length 5.08)
          (name "HOLD#/DQ3" (effects (font (size 1.27 1.27))))
          (number "7" (effects (font (size 1.27 1.27))))
        )
        (pin passive line (at 43.18 0 180) (length 5.08)
          (name "VCC" (effects (font (size 1.27 1.27))))
          (number "8" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "Oscillator:ASDMB-xxxMHz" (in_bom yes) (on_board yes)
      (property "Reference" "U" (at -6.35 6.35 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Value" "ASDMB-xxxMHz" (at 11.43 6.35 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "Oscillator:Oscillator_SMD_Abracon_ASDMB-4Pin_2.5x2.0mm" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "https://abracon.com/Oscillators/ASDMB.pdf" (at 7.62 11.43 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "1.8-3.3V SMD Ultra Miniature Crystal Clock Oscillator" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "1.8-3.3V SMD Ultra Miniature Crystal Clock Oscillator, Abracon" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_fp_filters" "Oscillator*SMD*Abracon*ASDMB*2.5x2.0mm*" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "ASDMB-xxxMHz_1_1"
        (rectangle (start -7.62 5.08) (end 7.62 -5.08)
          (stroke (width 0.254) (type default))
          (fill (type background))
        )
        (polyline
          (pts
            (xy -4.445 2.54)
            (xy -3.81 2.54)
            (xy -3.81 3.81)
            (xy -3.175 3.81)
            (xy -3.175 2.54)
            (xy -2.54 2.54)
            (xy -2.54 3.81)
            (xy -1.905 3.81)
            (xy -1.905 2.54)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (pin input line (at -10.16 0 0) (length 2.54)
          (name "Standby" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
        (pin power_in line (at 2.54 -7.62 90) (length 2.54)
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "2" (effects (font (size 1.27 1.27))))
        )
        (pin output line (at 10.16 0 180) (length 2.54)
          (name "Out" (effects (font (size 1.27 1.27))))
          (number "3" (effects (font (size 1.27 1.27))))
        )
        (pin power_in line (at 2.54 7.62 270) (length 2.54)
          (name "VDD" (effects (font (size 1.27 1.27))))
          (number "4" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
      (property "Reference" "#PWR" (at 0 -6.35 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "GND" (at 0 -3.81 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "global power" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "GND_0_1"
        (polyline
          (pts
            (xy 0 0)
            (xy 0 -1.27)
            (xy 1.27 -1.27)
            (xy 0 -2.54)
            (xy -1.27 -1.27)
            (xy 0 -1.27)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
      )
      (symbol "GND_1_1"
        (pin power_in line (at 0 0 270) (length 0) hide
          (name "GND" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
    (symbol "power:VCC_GONK" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
      (property "Reference" "#PWR" (at 0 -3.81 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Value" "VCC_GONK" (at 0 3.81 0)
        (effects (font (size 1.27 1.27)))
      )
      (property "Footprint" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "Datasheet" "" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_keywords" "global power" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (property "ki_description" "Power symbol creates a global label with name \"VCC\"" (at 0 0 0)
        (effects (font (size 1.27 1.27)) hide)
      )
      (symbol "VCC_GONK_0_1"
        (polyline
          (pts
            (xy -0.762 1.27)
            (xy 0 2.54)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 0)
            (xy 0 2.54)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
        (polyline
          (pts
            (xy 0 2.54)
            (xy 0.762 1.27)
          )
          (stroke (width 0) (type default))
          (fill (type none))
        )
      )
      (symbol "VCC_GONK_1_1"
        (pin power_in line (at 0 0 90) (length 0) hide
          (name "VCC" (effects (font (size 1.27 1.27))))
          (number "1" (effects (font (size 1.27 1.27))))
        )
      )
    )
  )

  (junction (at 72.39 129.54) (diameter 0) (color 0 0 0 0)
    (uuid 3aa5c546-061e-4892-8c67-0604b2cb4206)
  )
  (junction (at 276.86 109.22) (diameter 0) (color 0 0 0 0)
    (uuid 5c9e1cd3-a871-46f7-95e9-8a14719e119c)
  )
  (junction (at 133.35 127) (diameter 0) (color 0 0 0 0)
    (uuid 717629bc-cc52-4278-84e5-8293eb198230)
  )
  (junction (at 111.76 93.98) (diameter 0) (color 0 0 0 0)
    (uuid 84b494c2-7fc6-499b-acda-c54dec833bf5)
  )
  (junction (at 133.35 93.98) (diameter 0) (color 0 0 0 0)
    (uuid 95cb7fe8-1396-4bd0-b337-41d5fec1c5b6)
  )
  (junction (at 135.89 129.54) (diameter 0) (color 0 0 0 0)
    (uuid 98f6f8a8-ed34-4456-b271-46f2f2cef7e9)
  )
  (junction (at 135.89 93.98) (diameter 0) (color 0 0 0 0)
    (uuid ad01293f-bca0-48c0-99e0-725c6019cae5)
  )
  (junction (at 125.73 93.98) (diameter 0) (color 0 0 0 0)
    (uuid b371fca1-7448-4e0a-b812-c427047227e2)
  )
  (junction (at 284.48 110.49) (diameter 0) (color 0 0 0 0)
    (uuid d0bce653-42c9-4d14-90ac-3588cd85d3aa)
  )
  (junction (at 82.55 124.46) (diameter 0) (color 0 0 0 0)
    (uuid db4c2aa2-98d6-4ca6-9e7a-762c779c6eea)
  )
  (junction (at 125.73 104.14) (diameter 0) (color 0 0 0 0)
    (uuid e57b7548-86e7-4511-910f-48cbd236645b)
  )

  (wire (pts (xy 111.76 91.44) (xy 111.76 93.98))
    (stroke (width 0) (type default))
    (uuid 0e93e405-e56b-4976-a51b-3ad90faf0c0f)
  )
  (wire (pts (xy 82.55 129.54) (xy 72.39 129.54))
    (stroke (width 0) (type default))
    (uuid 1bf3c334-178f-4d8c-840a-3b7ea4c45858)
  )
  (wire (pts (xy 125.73 93.98) (xy 111.76 93.98))
    (stroke (width 0) (type default))
    (uuid 1fbe4e4b-7665-4f2f-8115-7ee23642fa93)
  )
  (wire (pts (xy 133.35 93.98) (xy 135.89 93.98))
    (stroke (width 0) (type default))
    (uuid 21806162-1500-42ad-8400-192be823d7d5)
  )
  (wire (pts (xy 284.48 130.81) (xy 284.48 132.08))
    (stroke (width 0) (type default))
    (uuid 2510d930-95d6-4e42-971b-54691bb6d8aa)
  )
  (wire (pts (xy 125.73 104.14) (xy 125.73 93.98))
    (stroke (width 0) (type default))
    (uuid 25d5620f-1cdf-4415-9444-3de397fafd8d)
  )
  (wire (pts (xy 66.04 124.46) (xy 82.55 124.46))
    (stroke (width 0) (type default))
    (uuid 2b29ab54-bc95-4e47-8c49-86961e81e025)
  )
  (wire (pts (xy 135.89 93.98) (xy 142.24 93.98))
    (stroke (width 0) (type default))
    (uuid 2b6ef852-5e32-41a1-b86f-43c03cae14b4)
  )
  (wire (pts (xy 125.73 127) (xy 133.35 127))
    (stroke (width 0) (type default))
    (uuid 2c3ec082-37c3-4174-bcbb-251b51e54971)
  )
  (wire (pts (xy 72.39 143.51) (xy 142.24 143.51))
    (stroke (width 0) (type default))
    (uuid 3605aa9e-899f-4749-a74e-a746dc0ba17d)
  )
  (wire (pts (xy 284.48 110.49) (xy 284.48 109.22))
    (stroke (width 0) (type default))
    (uuid 365297eb-a7d9-4395-8e04-e7fff62c9999)
  )
  (wire (pts (xy 276.86 107.95) (xy 276.86 109.22))
    (stroke (width 0) (type default))
    (uuid 3b6281d2-6082-4f91-b261-3b6f41a31af2)
  )
  (wire (pts (xy 82.55 132.08) (xy 82.55 134.62))
    (stroke (width 0) (type default))
    (uuid 435055dc-969a-4c66-98dc-f8da046a3340)
  )
  (wire (pts (xy 266.7 109.22) (xy 276.86 109.22))
    (stroke (width 0) (type default))
    (uuid 4621b061-7f89-4f96-845c-09d2c95e728a)
  )
  (wire (pts (xy 271.78 123.19) (xy 266.7 123.19))
    (stroke (width 0) (type default))
    (uuid 51f4bbf1-709c-484c-b059-32d9db4d1dc5)
  )
  (wire (pts (xy 135.89 129.54) (xy 154.94 129.54))
    (stroke (width 0) (type default))
    (uuid 55b248aa-82bb-464b-b6fb-191051b6446e)
  )
  (wire (pts (xy 66.04 127) (xy 82.55 127))
    (stroke (width 0) (type default))
    (uuid 5cb80520-c818-4300-9631-2a9c9da456f3)
  )
  (wire (pts (xy 125.73 124.46) (xy 125.73 104.14))
    (stroke (width 0) (type default))
    (uuid 5e58ab28-9217-45aa-a292-fc2977a20d20)
  )
  (wire (pts (xy 266.7 123.19) (xy 266.7 109.22))
    (stroke (width 0) (type default))
    (uuid 62598403-cc17-4508-878f-d395d2a5bfab)
  )
  (wire (pts (xy 133.35 107.95) (xy 133.35 127))
    (stroke (width 0) (type default))
    (uuid 6bcf0968-20e7-447b-8ed9-6bea0ced8bc0)
  )
  (wire (pts (xy 133.35 127) (xy 154.94 127))
    (stroke (width 0) (type default))
    (uuid 712a71b5-7646-4ab4-9352-8754e8b60938)
  )
  (wire (pts (xy 125.73 93.98) (xy 133.35 93.98))
    (stroke (width 0) (type default))
    (uuid 7d1e7ed4-14ca-4b1a-b844-63930624320f)
  )
  (wire (pts (xy 284.48 115.57) (xy 284.48 110.49))
    (stroke (width 0) (type default))
    (uuid 7f69b3a0-92cd-4e41-8d09-27e1da553fe4)
  )
  (wire (pts (xy 82.55 93.98) (xy 111.76 93.98))
    (stroke (width 0) (type default))
    (uuid 7f75f994-0e55-4e83-8f2c-7b3ff585cedf)
  )
  (wire (pts (xy 82.55 115.57) (xy 82.55 93.98))
    (stroke (width 0) (type default))
    (uuid 8f7f9c38-25db-4829-96a2-a2f74a5935ef)
  )
  (wire (pts (xy 316.23 123.19) (xy 292.1 123.19))
    (stroke (width 0) (type default))
    (uuid 90af7374-91c1-42d4-96c2-d2b7887cc47c)
  )
  (wire (pts (xy 293.37 110.49) (xy 297.18 110.49))
    (stroke (width 0) (type default))
    (uuid 94e3818a-d4ba-49b5-8309-3d7f0702942a)
  )
  (wire (pts (xy 121.92 109.22) (xy 121.92 111.76))
    (stroke (width 0) (type default))
    (uuid 9c26f148-853f-4776-bdb8-412ed5cf3462)
  )
  (wire (pts (xy 72.39 129.54) (xy 72.39 143.51))
    (stroke (width 0) (type default))
    (uuid a774395e-4d15-4010-9e25-c6f5ea4c2d09)
  )
  (wire (pts (xy 133.35 102.87) (xy 133.35 93.98))
    (stroke (width 0) (type default))
    (uuid a9b9aa34-48a8-442e-8035-f084f3af1c29)
  )
  (wire (pts (xy 66.04 129.54) (xy 72.39 129.54))
    (stroke (width 0) (type default))
    (uuid aa367966-ecb6-4c94-9b2e-67e1d7509137)
  )
  (wire (pts (xy 121.92 104.14) (xy 125.73 104.14))
    (stroke (width 0) (type default))
    (uuid b4fa3e1d-fce4-4e51-af12-583fc4ce9075)
  )
  (wire (pts (xy 284.48 110.49) (xy 288.29 110.49))
    (stroke (width 0) (type default))
    (uuid b89cdc45-a5e7-46c7-8f90-d9486e8b67b3)
  )
  (wire (pts (xy 142.24 102.87) (xy 142.24 93.98))
    (stroke (width 0) (type default))
    (uuid bbfd8f26-2eae-4933-8ea8-70adc5d01721)
  )
  (wire (pts (xy 142.24 107.95) (xy 142.24 143.51))
    (stroke (width 0) (type default))
    (uuid bde054cf-9bf8-4521-a67d-f6754c13c94d)
  )
  (wire (pts (xy 276.86 109.22) (xy 284.48 109.22))
    (stroke (width 0) (type default))
    (uuid cc3d4aed-fe48-4ed3-9417-37a9cdac0cad)
  )
  (wire (pts (xy 135.89 107.95) (xy 135.89 129.54))
    (stroke (width 0) (type default))
    (uuid d9f4098e-97a1-4da8-982c-4828cfb37362)
  )
  (wire (pts (xy 82.55 120.65) (xy 82.55 124.46))
    (stroke (width 0) (type default))
    (uuid df1dd78e-ba7d-46fb-bcbc-844b99b82c05)
  )
  (wire (pts (xy 125.73 132.08) (xy 154.94 132.08))
    (stroke (width 0) (type default))
    (uuid f0a9daf8-ee2e-474b-91b5-74381a53ee83)
  )
  (wire (pts (xy 125.73 129.54) (xy 135.89 129.54))
    (stroke (width 0) (type default))
    (uuid f917ef49-9b07-471a-a532-8362e29d0cc9)
  )
  (wire (pts (xy 135.89 93.98) (xy 135.89 102.87))
    (stroke (width 0) (type default))
    (uuid fe90d251-b75d-4b89-8d94-2fc103f46ffb)
  )

  (text "25Mhz" (at 293.37 123.19 0)
    (effects (font (size 1.27 1.27)) (justify left bottom))
    (uuid 0f2dedcb-fdaa-47be-9bb7-990329d07ab7)
  )

  (global_label "ICE_SPI_MISO" (shape output) (at 66.04 127 180) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify right))
    (uuid 05024e5e-1a54-41ab-b43f-3d4e822342d1)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 50.4947 127 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
  )
  (global_label "FPGA_CLK_IN" (shape output) (at 316.23 123.19 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 07eebc4d-1da1-4b46-bd21-0b96c9ba2eb7)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 331.2916 123.19 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "FLASH_HOLD" (shape input) (at 154.94 127 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 288f3c8a-c69b-410a-89d0-bfb1bc95f711)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 169.5178 127 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "FLASH_WP" (shape input) (at 66.04 129.54 180) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify right))
    (uuid 3967cb2e-7422-4169-ba0b-a4bd151a0ca4)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 53.6999 129.54 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
  )
  (global_label "ICE_SPI_SS" (shape input) (at 66.04 124.46 180) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify right))
    (uuid 42653f97-6ac9-4327-bd55-37df24d35f98)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 52.6719 124.46 0)
      (effects (font (size 1.27 1.27)) (justify right))
    )
  )
  (global_label "ICE_SPI_SCK" (shape input) (at 154.94 129.54 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid 8e91752c-1c58-4856-abaf-9baa1e0cd846)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 169.6386 129.54 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )
  (global_label "ICE_SPI_MOSI" (shape input) (at 154.94 132.08 0) (fields_autoplaced)
    (effects (font (size 1.27 1.27)) (justify left))
    (uuid eda985c6-78d4-49c5-9054-2d6939d9e820)
    (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 170.4853 132.08 0)
      (effects (font (size 1.27 1.27)) (justify left))
    )
  )

  (symbol (lib_id "power:GND") (at 284.48 132.08 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 00958c4d-482d-499a-b41f-9a300284c13d)
    (property "Reference" "#PWR0215" (at 284.48 138.43 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 284.48 137.16 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 284.48 132.08 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 284.48 132.08 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 4fe78780-6688-4c47-97bb-bedeab743414))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "#PWR0215") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "#PWR0235") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:VCC_GONK") (at 111.76 91.44 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 2f11d025-fe96-47c3-8a63-b930a931e15d)
    (property "Reference" "#PWR0200" (at 111.76 95.25 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "VCC_GONK" (at 116.84 88.9 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 111.76 91.44 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 111.76 91.44 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 1e072b55-157e-4434-b4a7-80d962486f44))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "#PWR0200") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "#PWR0216") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "#PWR0232") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:R_Small_US") (at 135.89 105.41 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 4643ee5b-30d1-43e4-8487-b8309014291e)
    (property "Reference" "R82" (at 138.43 106.68 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "10K" (at 138.43 104.14 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Resistor_SMD:R_0402_1005Metric" (at 135.89 105.41 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 135.89 105.41 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid a295cec2-12b9-45ac-9bb5-18371d7d7f38))
    (pin "2" (uuid e88005dc-626e-46e5-9c05-e18e282204c8))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "R82") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "R79") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "R109") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:R_Small_US") (at 82.55 118.11 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 65240c04-5892-4236-bb47-5eeba534076c)
    (property "Reference" "R82" (at 78.74 119.38 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "10K" (at 78.74 116.84 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Resistor_SMD:R_0402_1005Metric" (at 82.55 118.11 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 82.55 118.11 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid cfc513c5-82aa-4e85-b4ab-02b26e3d54c9))
    (pin "2" (uuid dcba1680-e6ed-4137-8b78-2013c19043f9))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "R82") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "R65") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "R111") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:VCC_GONK") (at 276.86 107.95 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 6d54b32b-4703-4eae-9b6a-e2c72ff23e39)
    (property "Reference" "#PWR0200" (at 276.86 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "VCC_GONK" (at 281.94 105.41 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 276.86 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 276.86 107.95 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid e2786b78-2888-4731-89eb-56d7d04f48d3))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "#PWR0200") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "#PWR0216") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "#PWR093") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 82.55 134.62 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 70d5cf80-092a-4eec-b670-0c30fd2950dd)
    (property "Reference" "#PWR0215" (at 82.55 140.97 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 82.55 139.7 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 82.55 134.62 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 82.55 134.62 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 25d54efc-ba2c-4d6d-87c0-6c78fa256026))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "#PWR0215") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "#PWR0236") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:C_Small") (at 290.83 110.49 270) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 737d0943-3107-4631-921e-9a052eb879a3)
    (property "Reference" "C71" (at 289.56 107.95 90)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "100nF" (at 294.64 113.03 90)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Capacitor_SMD:C_0402_1005Metric" (at 290.83 110.49 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 290.83 110.49 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 8c0fdd74-043a-4424-8b0c-3b14342279b9))
    (pin "2" (uuid 776526cf-541e-4c5e-b102-7c296c0ed30b))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "C71") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "C65") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "C113") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:R_Small_US") (at 142.24 105.41 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 78649a54-77a9-44ae-add5-9495d1f36b66)
    (property "Reference" "R82" (at 146.05 106.68 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "10K" (at 146.05 104.14 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Resistor_SMD:R_0402_1005Metric" (at 142.24 105.41 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 142.24 105.41 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid f8ddf9ee-d6f0-425e-a981-7621e3641493))
    (pin "2" (uuid 2a133d40-a1d7-4766-886a-1ee6508609fd))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "R82") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "R80") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "R110") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 121.92 111.76 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 8c5d0551-471f-4e20-bde5-1f50f60b9133)
    (property "Reference" "#PWR0217" (at 121.92 118.11 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 121.92 116.84 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "" (at 121.92 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 121.92 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 1fe1594d-eb48-4651-835f-eaacb1c0c58e))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "#PWR0217") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "#PWR0234") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "power:GND") (at 297.18 110.49 90) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid 8f206390-79e9-4544-8527-4f0de699cc6c)
    (property "Reference" "#PWR0215" (at 303.53 110.49 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Value" "GND" (at 300.99 111.125 90)
      (effects (font (size 1.27 1.27)) (justify right))
    )
    (property "Footprint" "" (at 297.18 110.49 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "" (at 297.18 110.49 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid b9fd9cbe-16d0-47fa-bdb5-ea455f6fbd59))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "#PWR0215") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "#PWR0233") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Oscillator:ASDMB-xxxMHz") (at 281.94 123.19 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid 9a1306be-1cfa-4b06-827d-624af369f107)
    (property "Reference" "U23" (at 292.1 115.57 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "SiT8008AI-11-18E-25.000000G" (at 306.07 118.11 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Oscillator:Oscillator_SMD_Abracon_ASDMB-4Pin_2.5x2.0mm" (at 281.94 123.19 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "https://abracon.com/Oscillators/ASDMB.pdf" (at 289.56 111.76 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 5c981de3-1898-48cc-9d86-66c1e634abed))
    (pin "2" (uuid 6ba34ce1-d2b0-4933-bec5-404a605aef4d))
    (pin "3" (uuid fabc04bb-f15f-4ef3-b6f3-703d98fbd76e))
    (pin "4" (uuid 99bdbb55-015d-4268-b352-0d901b6cd263))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "U23") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Memory_EEPROM:N25Q032A13ESC40F") (at 82.55 124.46 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
    (uuid a6b1e35c-4097-48c6-9bf6-0f5936ec9aa5)
    (property "Reference" "U23" (at 104.14 118.11 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "AT25SF041B" (at 104.14 120.65 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Package_SO:8-SOIC" (at 121.92 219.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Datasheet" "https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/n25q/n25q_32mb_3v_65nm.pdf?rev=27fc6016fc5249adb4bb8f221e72b395" (at 121.92 319.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Height" "1.75" (at 121.92 519.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Manufacturer_Name" "Alliance Memory" (at 121.92 619.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Manufacturer_Part_Number" "N25Q032A13ESC40F" (at 121.92 719.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Mouser Part Number" "913-N25Q032A13ESC40F" (at 121.92 819.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Mouser Price/Stock" "https://www.mouser.co.uk/ProductDetail/Alliance-Memory/N25Q032A13ESC40F?qs=W%2FMpXkg%252BdQ70%2FmLJsMq3Ww%3D%3D" (at 121.92 919.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Arrow Part Number" "" (at 121.92 1019.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (property "Arrow Price/Stock" "" (at 121.92 1119.38 0)
      (effects (font (size 1.27 1.27)) (justify left top) hide)
    )
    (pin "1" (uuid 5446530c-e90e-46a5-8ac7-9b4083d5bded))
    (pin "2" (uuid ae417aa0-08e6-41dc-a743-7e5d74594259))
    (pin "3" (uuid 6ac74e30-4614-46d2-84fe-49b3b9e9be54))
    (pin "4" (uuid aaeb0f97-4190-4e9b-a978-5c2a232d813e))
    (pin "5" (uuid f40fc028-10b6-4341-9a65-bcadd6613f88))
    (pin "6" (uuid 80d35e23-5601-4e09-b320-4cf50e78f317))
    (pin "7" (uuid 339d6ad4-ceeb-4731-8be8-22a08ba4d103))
    (pin "8" (uuid e85fdd48-a0eb-4212-842a-21d0329ed731))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "U23") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "U24") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:R_Small_US") (at 133.35 105.41 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid cb0ca00e-da31-4bb0-b28d-cc05ba9ee71b)
    (property "Reference" "R82" (at 129.54 106.68 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "10K" (at 129.54 104.14 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Resistor_SMD:R_0402_1005Metric" (at 133.35 105.41 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 133.35 105.41 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 2f33ae68-6836-49e9-82ea-07e1248a3975))
    (pin "2" (uuid 4ecafa1a-5fce-4978-9a9f-b6828bf09457))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "R82") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "R66") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "R108") (unit 1)
        )
      )
    )
  )

  (symbol (lib_id "Device:C_Small") (at 121.92 106.68 0) (unit 1)
    (in_bom yes) (on_board yes) (dnp no)
    (uuid ded9dd13-6468-4df7-a568-f50969e5a6fa)
    (property "Reference" "C71" (at 116.84 106.68 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Value" "100nF" (at 116.84 109.22 0)
      (effects (font (size 1.27 1.27)))
    )
    (property "Footprint" "Capacitor_SMD:C_0402_1005Metric" (at 121.92 106.68 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (property "Datasheet" "~" (at 121.92 106.68 0)
      (effects (font (size 1.27 1.27)) hide)
    )
    (pin "1" (uuid 9ceb2fb7-617c-432b-821d-a2a4d0975aaf))
    (pin "2" (uuid b32da1db-afc5-47c3-808b-c3faa874d5ab))
    (instances
      (project "Gonk"
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/a3f29ee6-3b19-4f22-a75c-2f331d2e1b78"
          (reference "C71") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/21b69060-321a-4fc1-8abd-6e9a05866e26"
          (reference "C87") (unit 1)
        )
        (path "/691887a2-ef24-4ca8-bf60-49cda5104c8f/4eb11dff-79e3-4742-867f-38f1b775b7c9"
          (reference "C112") (unit 1)
        )
      )
    )
  )
)
