input: Write a function to create a BPMN diagram for FOMDES process 1 using Python and the bpmn_pgv library. The diagram should include clusters for Secretaría Ejecutiva, Presidencia, and Presupuesto/Administración, with specific tasks and edges defined within each cluster. Additionally, include nodes for SIGEFOMDES Administración and SISAC, and connect them to the appropriate clusters using dashed edges. Finally, save the diagram as a PNG file named "proc4.png" and a DOT file named "proc4.dot".
  
  assert create_bpmn_diagram(['Secretaría Ejecutiva', 'Presidencia', 'Presupuesto/Administración', 'SIGEFOMDES Administración', 'SISAC'])==("proc4.png", "proc4.dot")
  assert create_bpmn_diagram([])==("error", "error")
  assert create_bpmn_diagram(['Secretaría Ejecutiva'])==("proc4.png", "proc4.dot")
  assert create_bpmn_diagram(['Presidencia', 'SIGEFOMDES Administración'])==("proc4.png", "proc4.dot")
  assert create_bpmn_diagram(['Presupuesto/Administración', 'SISAC'])==("proc4.png", "proc4.dot")
output: def create_bpmn_diagram(clusters):
      if not clusters:
          return ("error", "error")
      
      import bpmn_pgv as bpmn
      from graphviz import Digraph
  
      g = Digraph('G', filename='proc4.dot')
      g.attr(rankdir='LR')
  
      for cluster in clusters:
          with g.subgraph(name=f'cluster_{cluster}') as c:
              c.attr(style='filled', color='lightgrey')
              c.node_attr.update(style='filled', color='white')
              c.attr(label=cluster)
              if cluster == 'Secretaría Ejecutiva':
                  c.node('Task1', 'Task 1')
                  c.node('Task2', 'Task 2')
                  c.edge('Task1', 'Task2')
              elif cluster == 'Presidencia':
                  c.node('Task3', 'Task 3')
                  c.node('Task4', 'Task 4')
                  c.edge('Task3', 'Task4')
              elif cluster == 'Presupuesto/Administración':
                  c.node('Task5', 'Task 5')
                  c.node('Task6', 'Task 6')
                  c.edge('Task5', 'Task6')
  
      if 'SIGEFOMDES Administración' in clusters:
          g.node('SIGEFOMDES', 'SIGEFOMDES Administración')
          if 'Secretaría Ejecutiva' in clusters:
              g.edge('SIGEFOMDES', 'Task1', style='dashed')
          if 'Presidencia' in clusters:
              g.edge('SIGEFOMDES', 'Task3', style='dashed')
          if 'Presupuesto/Administración' in clusters:
              g.edge('SIGEFOMDES', 'Task5', style='dashed')
  
      if 'SISAC' in clusters:
          g.node('SISAC', 'SISAC')
          if 'Secretaría Ejecutiva' in clusters:
              g.edge('SISAC', 'Task2', style='dashed')
          if 'Presidencia' in clusters:
              g.edge('SISAC', 'Task4', style='dashed')
          if 'Presupuesto/Administración' in clusters:
              g.edge('SISAC', 'Task6', style='dashed')
  
      g.render(filename='proc4', format='png', cleanup=True)
      return ("proc4.png", "proc4.dot")