%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/nextcloud.varak.net/apps/text/js/
Upload File :
Create Path :
Current File : /www/varak.net/nextcloud.varak.net/apps/text/js/stateDiagram-587899a1-eFQIow58.chunk.mjs.map

{"version":3,"file":"stateDiagram-587899a1-eFQIow58.chunk.mjs","sources":["../node_modules/mermaid/dist/stateDiagram-587899a1.js"],"sourcesContent":["import { d as db, p as parser, s as styles } from \"./styles-6aaf32cf.js\";\nimport { line, curveBasis, select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { c as getConfig, u as utils, e as common, l as log, i as configureSvgSize } from \"./mermaid-b5860b54.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst idCache = {};\nconst set = (key, val) => {\n  idCache[key] = val;\n};\nconst get = (k) => idCache[k];\nconst keys = () => Object.keys(idCache);\nconst size = () => keys().length;\nconst idCache$1 = {\n  get,\n  set,\n  keys,\n  size\n};\nconst drawStartState = (g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit);\nconst drawDivider = (g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0);\nconst drawSimpleState = (g, stateDef) => {\n  const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n  const classBox = state.node().getBBox();\n  g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n  return state;\n};\nconst drawDescrState = (g, stateDef) => {\n  const addTspan = function(textEl, txt, isFirst2) {\n    const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n    if (!isFirst2) {\n      tSpan.attr(\"dy\", getConfig().state.textHeight);\n    }\n  };\n  const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n  const titleBox = title.node().getBBox();\n  const titleHeight = titleBox.height;\n  const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n    \"y\",\n    titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n  ).attr(\"class\", \"state-description\");\n  let isFirst = true;\n  let isSecond = true;\n  stateDef.descriptions.forEach(function(descr) {\n    if (!isFirst) {\n      addTspan(description, descr, isSecond);\n      isSecond = false;\n    }\n    isFirst = false;\n  });\n  const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n  const descrBox = description.node().getBBox();\n  const width = Math.max(descrBox.width, titleBox.width);\n  descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n  g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n  return g;\n};\nconst addTitleAndBox = (g, stateDef, altBkg) => {\n  const pad = getConfig().state.padding;\n  const dblPad = 2 * getConfig().state.padding;\n  const orgBox = g.node().getBBox();\n  const orgWidth = orgBox.width;\n  const orgX = orgBox.x;\n  const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n  const titleBox = title.node().getBBox();\n  const titleWidth = titleBox.width + dblPad;\n  let width = Math.max(titleWidth, orgWidth);\n  if (width === orgWidth) {\n    width = width + dblPad;\n  }\n  let startX;\n  const graphBox = g.node().getBBox();\n  if (stateDef.doc)\n    ;\n  startX = orgX - pad;\n  if (titleWidth > orgWidth) {\n    startX = (orgWidth - width) / 2 + pad;\n  }\n  if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n    startX = orgX - (titleWidth - orgWidth) / 2;\n  }\n  const lineY = 1 - getConfig().state.textHeight;\n  g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n    \"height\",\n    graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n  ).attr(\"rx\", \"0\");\n  title.attr(\"x\", startX + pad);\n  if (titleWidth <= orgWidth) {\n    title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n  }\n  g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n    \"y\",\n    getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n  ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n  g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n    \"y\",\n    getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n  ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n  return g;\n};\nconst drawEndState = (g) => {\n  g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n    \"cx\",\n    getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n  ).attr(\n    \"cy\",\n    getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n  );\n  return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n};\nconst drawForkJoinState = (g, stateDef) => {\n  let width = getConfig().state.forkWidth;\n  let height = getConfig().state.forkHeight;\n  if (stateDef.parentId) {\n    let tmp = width;\n    width = height;\n    height = tmp;\n  }\n  return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n};\nconst _drawLongText = (_text, x, y, g) => {\n  let textHeight = 0;\n  const textElem = g.append(\"text\");\n  textElem.style(\"text-anchor\", \"start\");\n  textElem.attr(\"class\", \"noteText\");\n  let text = _text.replace(/\\r\\n/g, \"<br/>\");\n  text = text.replace(/\\n/g, \"<br/>\");\n  const lines = text.split(common.lineBreakRegex);\n  let tHeight = 1.25 * getConfig().state.noteMargin;\n  for (const line2 of lines) {\n    const txt = line2.trim();\n    if (txt.length > 0) {\n      const span = textElem.append(\"tspan\");\n      span.text(txt);\n      if (tHeight === 0) {\n        const textBounds = span.node().getBBox();\n        tHeight += textBounds.height;\n      }\n      textHeight += tHeight;\n      span.attr(\"x\", x + getConfig().state.noteMargin);\n      span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n    }\n  }\n  return { textWidth: textElem.node().getBBox().width, textHeight };\n};\nconst drawNote = (text, g) => {\n  g.attr(\"class\", \"state-note\");\n  const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n  const rectElem = g.append(\"g\");\n  const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n  note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n  note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n  return note;\n};\nconst drawState = function(elem, stateDef) {\n  const id = stateDef.id;\n  const stateInfo = {\n    id,\n    label: stateDef.id,\n    width: 0,\n    height: 0\n  };\n  const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n  if (stateDef.type === \"start\") {\n    drawStartState(g);\n  }\n  if (stateDef.type === \"end\") {\n    drawEndState(g);\n  }\n  if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n    drawForkJoinState(g, stateDef);\n  }\n  if (stateDef.type === \"note\") {\n    drawNote(stateDef.note.text, g);\n  }\n  if (stateDef.type === \"divider\") {\n    drawDivider(g);\n  }\n  if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n    drawSimpleState(g, stateDef);\n  }\n  if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n    drawDescrState(g, stateDef);\n  }\n  const stateBox = g.node().getBBox();\n  stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n  stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n  idCache$1.set(id, stateInfo);\n  return stateInfo;\n};\nlet edgeCount = 0;\nconst drawEdge = function(elem, path, relation) {\n  const getRelationType = function(type) {\n    switch (type) {\n      case db.relationType.AGGREGATION:\n        return \"aggregation\";\n      case db.relationType.EXTENSION:\n        return \"extension\";\n      case db.relationType.COMPOSITION:\n        return \"composition\";\n      case db.relationType.DEPENDENCY:\n        return \"dependency\";\n    }\n  };\n  path.points = path.points.filter((p) => !Number.isNaN(p.y));\n  const lineData = path.points;\n  const lineFunction = line().x(function(d) {\n    return d.x;\n  }).y(function(d) {\n    return d.y;\n  }).curve(curveBasis);\n  const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n  let url = \"\";\n  if (getConfig().state.arrowMarkerAbsolute) {\n    url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n    url = url.replace(/\\(/g, \"\\\\(\");\n    url = url.replace(/\\)/g, \"\\\\)\");\n  }\n  svgPath.attr(\n    \"marker-end\",\n    \"url(\" + url + \"#\" + getRelationType(db.relationType.DEPENDENCY) + \"End)\"\n  );\n  if (relation.title !== void 0) {\n    const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n    const { x, y } = utils.calcLabelPosition(path.points);\n    const rows = common.getRows(relation.title);\n    let titleHeight = 0;\n    const titleRows = [];\n    let maxWidth = 0;\n    let minX = 0;\n    for (let i = 0; i <= rows.length; i++) {\n      const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n      const boundsTmp = title.node().getBBox();\n      maxWidth = Math.max(maxWidth, boundsTmp.width);\n      minX = Math.min(minX, boundsTmp.x);\n      log.info(boundsTmp.x, x, y + titleHeight);\n      if (titleHeight === 0) {\n        const titleBox = title.node().getBBox();\n        titleHeight = titleBox.height;\n        log.info(\"Title height\", titleHeight, y);\n      }\n      titleRows.push(title);\n    }\n    let boxHeight = titleHeight * rows.length;\n    if (rows.length > 1) {\n      const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n      titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n      boxHeight = titleHeight * rows.length;\n    }\n    const bounds = label.node().getBBox();\n    label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n    log.info(bounds);\n  }\n  edgeCount++;\n};\nlet conf;\nconst transformationLog = {};\nconst setConf = function() {\n};\nconst insertMarkers = function(elem) {\n  elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n};\nconst draw = function(text, id, _version, diagObj) {\n  conf = getConfig().state;\n  const securityLevel = getConfig().securityLevel;\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select(\"#i\" + id);\n  }\n  const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n  const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n  log.debug(\"Rendering diagram \" + text);\n  const diagram2 = root.select(`[id='${id}']`);\n  insertMarkers(diagram2);\n  const rootDoc = diagObj.db.getRootDoc();\n  renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n  const padding = conf.padding;\n  const bounds = diagram2.node().getBBox();\n  const width = bounds.width + padding * 2;\n  const height = bounds.height + padding * 2;\n  const svgWidth = width * 1.75;\n  configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n  diagram2.attr(\n    \"viewBox\",\n    `${bounds.x - conf.padding}  ${bounds.y - conf.padding} ` + width + \" \" + height\n  );\n};\nconst getLabelWidth = (text) => {\n  return text ? text.length * conf.fontSizeFactor : 1;\n};\nconst renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n  const graph = new graphlib.Graph({\n    compound: true,\n    multigraph: true\n  });\n  let i;\n  let edgeFreeDoc = true;\n  for (i = 0; i < doc.length; i++) {\n    if (doc[i].stmt === \"relation\") {\n      edgeFreeDoc = false;\n      break;\n    }\n  }\n  if (parentId) {\n    graph.setGraph({\n      rankdir: \"LR\",\n      multigraph: true,\n      compound: true,\n      // acyclicer: 'greedy',\n      ranker: \"tight-tree\",\n      ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n      nodeSep: edgeFreeDoc ? 1 : 50,\n      isMultiGraph: true\n      // ranksep: 5,\n      // nodesep: 1\n    });\n  } else {\n    graph.setGraph({\n      rankdir: \"TB\",\n      multigraph: true,\n      compound: true,\n      // isCompound: true,\n      // acyclicer: 'greedy',\n      // ranker: 'longest-path'\n      ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n      nodeSep: edgeFreeDoc ? 1 : 50,\n      ranker: \"tight-tree\",\n      // ranker: 'network-simplex'\n      isMultiGraph: true\n    });\n  }\n  graph.setDefaultEdgeLabel(function() {\n    return {};\n  });\n  diagObj.db.extract(doc);\n  const states = diagObj.db.getStates();\n  const relations = diagObj.db.getRelations();\n  const keys2 = Object.keys(states);\n  for (const key of keys2) {\n    const stateDef = states[key];\n    if (parentId) {\n      stateDef.parentId = parentId;\n    }\n    let node;\n    if (stateDef.doc) {\n      let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n      node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n      {\n        sub = addTitleAndBox(sub, stateDef, altBkg);\n        let boxBounds = sub.node().getBBox();\n        node.width = boxBounds.width;\n        node.height = boxBounds.height + conf.padding / 2;\n        transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n      }\n    } else {\n      node = drawState(diagram2, stateDef);\n    }\n    if (stateDef.note) {\n      const noteDef = {\n        descriptions: [],\n        id: stateDef.id + \"-note\",\n        note: stateDef.note,\n        type: \"note\"\n      };\n      const note = drawState(diagram2, noteDef);\n      if (stateDef.note.position === \"left of\") {\n        graph.setNode(node.id + \"-note\", note);\n        graph.setNode(node.id, node);\n      } else {\n        graph.setNode(node.id, node);\n        graph.setNode(node.id + \"-note\", note);\n      }\n      graph.setParent(node.id, node.id + \"-group\");\n      graph.setParent(node.id + \"-note\", node.id + \"-group\");\n    } else {\n      graph.setNode(node.id, node);\n    }\n  }\n  log.debug(\"Count=\", graph.nodeCount(), graph);\n  let cnt = 0;\n  relations.forEach(function(relation) {\n    cnt++;\n    log.debug(\"Setting edge\", relation);\n    graph.setEdge(\n      relation.id1,\n      relation.id2,\n      {\n        relation,\n        width: getLabelWidth(relation.title),\n        height: conf.labelHeight * common.getRows(relation.title).length,\n        labelpos: \"c\"\n      },\n      \"id\" + cnt\n    );\n  });\n  layout(graph);\n  log.debug(\"Graph after layout\", graph.nodes());\n  const svgElem = diagram2.node();\n  graph.nodes().forEach(function(v) {\n    if (v !== void 0 && graph.node(v) !== void 0) {\n      log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n      root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n        \"transform\",\n        \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n      );\n      root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n      const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n      dividers.forEach((divider) => {\n        const parent = divider.parentElement;\n        let pWidth = 0;\n        let pShift = 0;\n        if (parent) {\n          if (parent.parentElement) {\n            pWidth = parent.parentElement.getBBox().width;\n          }\n          pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n          if (Number.isNaN(pShift)) {\n            pShift = 0;\n          }\n        }\n        divider.setAttribute(\"x1\", 0 - pShift + 8);\n        divider.setAttribute(\"x2\", pWidth - pShift - 8);\n      });\n    } else {\n      log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n    }\n  });\n  let stateBox = svgElem.getBBox();\n  graph.edges().forEach(function(e) {\n    if (e !== void 0 && graph.edge(e) !== void 0) {\n      log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n      drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n    }\n  });\n  stateBox = svgElem.getBBox();\n  const stateInfo = {\n    id: parentId ? parentId : \"root\",\n    label: parentId ? parentId : \"root\",\n    width: 0,\n    height: 0\n  };\n  stateInfo.width = stateBox.width + 2 * conf.padding;\n  stateInfo.height = stateBox.height + 2 * conf.padding;\n  log.debug(\"Doc rendered\", stateInfo, graph);\n  return stateInfo;\n};\nconst renderer = {\n  setConf,\n  draw\n};\nconst diagram = {\n  parser,\n  db,\n  renderer,\n  styles,\n  init: (cnf) => {\n    if (!cnf.state) {\n      cnf.state = {};\n    }\n    cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n    db.clear();\n  }\n};\nexport {\n  diagram\n};\n"],"names":["drawStartState","g","getConfig","drawDivider","drawSimpleState","stateDef","state","classBox","drawDescrState","addTspan","textEl","txt","isFirst2","tSpan","titleBox","titleHeight","description","isFirst","isSecond","descr","descrLine","descrBox","width","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","title","titleWidth","startX","graphBox","lineY","drawEndState","drawForkJoinState","height","tmp","_drawLongText","_text","x","y","textHeight","textElem","text","lines","common","tHeight","line2","span","textBounds","drawNote","note","rectElem","textWidth","drawState","elem","id","stateInfo","stateBox","edgeCount","drawEdge","path","relation","getRelationType","type","db","p","lineData","lineFunction","line","d","curveBasis","svgPath","url","label","utils","rows","titleRows","maxWidth","minX","i","boundsTmp","log","boxHeight","heightAdj","bounds","conf","transformationLog","setConf","insertMarkers","draw","_version","diagObj","securityLevel","sandboxElement","select","root","doc","diagram2","rootDoc","renderDoc","padding","svgWidth","configureSvgSize","getLabelWidth","parentId","domDocument","graph","graphlib.Graph","edgeFreeDoc","states","relations","keys2","key","node","sub","boxBounds","noteDef","cnt","layout","svgElem","v","divider","parent","pWidth","pShift","e","renderer","diagram","parser","styles","cnf"],"mappings":"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","x_google_ignoreList":[0]}

Zerion Mini Shell 1.0