function cbMakePptxSlide(data, makeOnlyObjects) {
    var outString = ''
    var objs_list = data.data
    var timingData = ''

    // Slide with custom xml code generating (we are using it for slides that using the bulit-in layouts):
    if (
      data.slide.useLayout &&
      typeof data.slide.useLayout === 'object' &&
      data.slide.useLayout.mkResCb
    ) {
      // So in this case we are bypassing the normal slide generating and using a custom generating:
      data.slide.useLayout.slide = data.slide
      // To use a custom slide generator just declare data.slide.useLayout.mkResCb to be a cb that receive data.slide.useLayout itself.
      return data.slide.useLayout.mkResCb(data.slide.useLayout)
    } // Endif.

    // Allow you to turn this method into layout generator:
    var slideElement = data.slide.layoutName ? 'Layout' : ''
    var slideElementA = ''
    if (data.slide.layoutName) {
      if (data.slide.officeType) {
        slideElementA += ' type="' + data.slide.layoutName + '"'
      } // Endif.

      slideElementA += ' preserve="1"'

      if (!data.slide.officeType) {
        slideElementA += ' userDrawn="1"'
      } // Endif.
    } // Endif.

    // Create the header of the slide (only if we need that):
    if (!makeOnlyObjects) {
      outString =
        gen_private.plugs.type.msoffice.cbMakeMsOfficeBasicXml(data) +
        '<p:sld' +
        slideElement +
        ' xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"'

      if (!data.slide.show && !data.slide.layoutName) {
        outString += ' show="0"'
      } // Endif.

      outString +=
        slideElementA +
        '><p:cSld' +
        (data.slide.name ? ' name="' + data.slide.name + '"' : '') +
        '>'

      if (data.slide.back) {
        outString += shapes.createColorElements(false, data.slide.back)
      } // Endif.

      outString +=
        '<p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr>'
    } // Endif.

    // Loop on all the objects inside the slide to add it into the slide:
    for (var i = 0, total_size = objs_list.length; i < total_size; i++) {
      var x = 0
      var y = 0
      var cx = 2819400
      var cy = 369332
      var xDef = true
      var yDef = true
      var cyDef = true
      var cxDef = true

      var moreStyles = ''
      var moreStylesAttr = ''
      var outStyles = ''
      var styleData = ''
      var shapeType = null
      var locationAttr = ''

      if (objs_list[i].options) {
        if (typeof objs_list[i].options.cx !== 'undefined') {
          cxDef = false
          if (objs_list[i].options.cx) {
            cx = parseSmartNumber(
              objs_list[i].options.cx,
              gen_private.type.pptx.pptWidth,
              cx,
              gen_private.type.pptx.pptWidth,
              10000
            )
          } else {
            cx = 1
          } // Endif.
        } // Endif.

        if (typeof objs_list[i].options.cy !== 'undefined') {
          cyDef = false
          if (objs_list[i].options.cy) {
            cy = parseSmartNumber(
              objs_list[i].options.cy,
              gen_private.type.pptx.pptHeight,
              cy,
              gen_private.type.pptx.pptHeight,
              10000
            )
          } else {
            cy = 1
          } // Endif.
        } // Endif.

        if (objs_list[i].options.x) {
          xDef = false
          x = parseSmartNumber(
            objs_list[i].options.x,
            gen_private.type.pptx.pptWidth,
            0,
            gen_private.type.pptx.pptWidth - cx,
            10000
          )
        } // Endif.

        if (objs_list[i].options.y) {
          yDef = false
          y = parseSmartNumber(
            objs_list[i].options.y,
            gen_private.type.pptx.pptHeight,
            0,
            gen_private.type.pptx.pptHeight - cy,
            10000
          )
        } // Endif.

        if (objs_list[i].options.shape) {
          shapeType = shapes.getShapeInfo(objs_list[i].options.shape)
        } // Endif.

        if (objs_list[i].options.flip_vertical) {
          locationAttr += ' flipV="1"'
        } // Endif.

        if (objs_list[i].options.flip_horizontal) {
          locationAttr += ' flipH="1"'
        } // Endif.

        if (objs_list[i].options.rotate) {
          var rotateVal =
            objs_list[i].options.rotate > 360
              ? objs_list[i].options.rotate - 360
              : objs_list[i].options.rotate
          rotateVal *= 60000
          locationAttr += ' rot="' + rotateVal + '"'
        } // Endif.
      } // Endif.

      // Check what type of object to add:
      switch (objs_list[i].type) {
        // TODO: remove hard code here:
        case 'table':
          var table_obj = officeTable.getTable(
            objs_list[i].data,
            objs_list[i].options
          )
          // console.log(JSON.stringify(table_obj, null, 2))
          var table_xml = xmlBuilder
            .create(table_obj, {
              version: '1.0',
              encoding: 'UTF-8',
              standalone: true
            })
            .toString({ pretty: true, indent: '  ', newline: '\n' })

          outString += table_xml
          break

        case 'chart':
          // loop through the charts
          //

          if (objs_list[i].renderType === 'pie') {
            outString +=
              '<p:graphicFrame><p:nvGraphicFramePr><p:cNvPr id="20" name="OfficeChart 19"/><p:cNvGraphicFramePr/><p:nvPr><p:extLst><p:ext uri="{D42A27DB-BD31-4B8C-83A1-F6EECF244321}"><p14:modId xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" val="4198609065"/></p:ext></p:extLst></p:nvPr></p:nvGraphicFramePr><p:xfrm><a:off x="' +
              (objs_list[i].options.x || 1524000) +
              '" y="' +
              (objs_list[i].options.y || 1397000) +
              '"/><a:ext cx="' +
              (objs_list[i].options.cx || 6096000) +
              '" cy="' +
              (objs_list[i].options.cy || 4064000) +
              '"/></p:xfrm><a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:chart xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:id="rId2"/></a:graphicData></a:graphic></p:graphicFrame>'
          } else if (objs_list[i].renderType === 'column') {
            outString +=
              '<p:graphicFrame><p:nvGraphicFramePr><p:cNvPr id="4" name="OfficeChart 3"/><p:cNvGraphicFramePr/><p:nvPr><p:extLst><p:ext uri="{D42A27DB-BD31-4B8C-83A1-F6EECF244321}"><p14:modId xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" val="1256887135"/></p:ext></p:extLst></p:nvPr></p:nvGraphicFramePr><p:xfrm><a:off x="' +
              (objs_list[i].options.x || 1524000) +
              '" y="' +
              (objs_list[i].options.y || 1397000) +
              '"/><a:ext cx="' +
              (objs_list[i].options.cx || 6096000) +
              '" cy="' +
              (objs_list[i].options.cy || 4064000) +
              '"/></p:xfrm><a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/chart"><c:chart xmlns:c="http://schemas.openxmlformats.org/drawingml/2006/chart" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:id="rId2"/></a:graphicData></a:graphic></p:graphicFrame>'
          } // Endif.
          break
        case 'text':
        case 'cxn':
          var effectsList = ''

          if (shapeType == null) shapeType = shapes.getShapeInfo(null)

          // if ( objs_list[i].type == 'text' ) {
          //   if ( !objs_list[i].options || (!objs_list[i].options.cx && !objs_list[i].options.cx) ) {
          //     objs_list[i].options = objs_list[i].options ? objs_list[i].options : {}
          //     objs_list[i].options.bodyProp = objs_list[i].options.bodyProp ? objs_list[i].options.bodyProp : {}
          //     objs_list[i].options.bodyProp.autoFit = true
          //     cx = gen_private.type.pptx.pptWidth - x
          //     cy = gen_private.type.pptx.pptHeight - y
          //   } // Endif.
          // } // Endif.

          var pNvPr = '<p:nvPr/>'
          if (objs_list[i].options.ph) {
            var extraPhAttr = ''
            if (objs_list[i].options.phSz) {
              extraPhAttr += ' sz="' + objs_list[i].options.phSz + '"'
            } // Endif.

            if (objs_list[i].options.phIdx) {
              extraPhAttr += ' idx="' + objs_list[i].options.phIdx + '"'
            } // Endif.

            pNvPr =
              '<p:nvPr><p:ph type="' +
              objs_list[i].options.ph +
              '"' +
              extraPhAttr +
              (objs_list[i].options.nvPrAttrCode || '') +
              '/>' +
              (objs_list[i].options.nvPrCode || '') +
              '</p:nvPr>'
          } // Endif.

          var codeCNvPrAttr = ''
          if (objs_list[i].options.id) {
            codeCNvPrAttr += ' id="' + objs_list[i].options.id + '"'
          } else {
            codeCNvPrAttr += ' id="' + (i + 2) + '"'
          } // Endif.

          if (objs_list[i].options.name) {
            codeCNvPrAttr += ' name="' + objs_list[i].options.name + '"'
          } else {
            codeCNvPrAttr += ' name="Object ' + (i + 2) + '"'
          } // Endif.

          if (objs_list[i].options.title) {
            codeCNvPrAttr += ' title="' + objs_list[i].options.title + '"'
          } // Endif.

          if (objs_list[i].options.desc) {
            codeCNvPrAttr += ' descr="' + objs_list[i].options.desc + '"'
          } // Endif.

          if (objs_list[i].options.hidden) {
            codeCNvPrAttr += ' hidden="1"'
          } // Endif.

          if (objs_list[i].type === 'cxn') {
            outString += '<p:cxnSp><p:nvCxnSpPr>'
            outString +=
              '<p:cNvPr' + codeCNvPrAttr + '/>' + pNvPr + '</p:nvCxnSpPr>'
          } else {
            outString += '<p:sp><p:nvSpPr>'
            outString +=
              '<p:cNvPr' +
              codeCNvPrAttr +
              '/><p:cNvSpPr txBox="1"/>' +
              pNvPr +
              '</p:nvSpPr>'
          } // Endif.

          var bwMode = objs_list[i].options.bwMode
            ? ' bwMode="' + objs_list[i].options.bwMode + '"'
            : ''

          if (
            objs_list[i].options.ph &&
            xDef &&
            yDef &&
            cxDef &&
            cyDef &&
            !locationAttr
          ) {
            outString += '<p:spPr' + bwMode + '/>'
          } else {
            outString += '<p:spPr' + bwMode + '>'

            outString += '<a:xfrm' + locationAttr + '>'

            if (!objs_list[i].options.ph || !yDef || !xDef) {
              outString += '<a:off'

              if (!objs_list[i].options.ph || !xDef) {
                outString += ' x="' + x + '"'
              } // Endif.

              if (!objs_list[i].options.ph || !yDef) {
                outString += ' y="' + y + '"'
              } // Endif.

              outString += '/>'
            } // Endif.

            if (!objs_list[i].options.ph || !cyDef || !cxDef) {
              outString += '<a:ext'

              if (!objs_list[i].options.ph || !cxDef) {
                outString += ' cx="' + cx + '"'
              } // Endif.

              if (!objs_list[i].options.ph || !cyDef) {
                outString += ' cy="' + cy + '"'
              } // Endif.

              outString += '/>'
            } // Endif.

            outString += '</a:xfrm>'

            outString += '<a:prstGeom prst="' + shapeType.name + '">'

            // string changed to take into account change of shape that you do by moving the little yellow dot

            if (shapeType.avLst !== {}) {
              outString += '<a:avLst>'
              for (var adj in shapeType.avLst) {
                outString +=
                  '<a:gd name="' +
                  adj +
                  '" fmla="val ' +
                  shapeType.avLst[adj] +
                  '"/>'
              }
            }

            outString += '</a:avLst></a:prstGeom>'

            if (objs_list[i].options) {
              if (objs_list[i].options.fill) {
                outString += shapes.createColorElements(
                  objs_list[i].options.fill
                )
              } else if (!objs_list[i].options.disableFillSettings) {
                outString += '<a:noFill/>'
              } // Endif.

              if (objs_list[i].options.line) {
                var lineAttr = ''

                if (objs_list[i].options.line_size) {
                  lineAttr +=
                    ' w="' + objs_list[i].options.line_size * 12700 + '"'
                } // Endif.

                // cmpd="dbl"

                outString += '<a:ln' + lineAttr + '>'
                outString += shapes.createColorElements(
                  objs_list[i].options.line
                )

                if (objs_list[i].options.line_head) {
                  outString +=
                    '<a:headEnd type="' + objs_list[i].options.line_head + '"/>'
                } // Endif.

                if (objs_list[i].options.line_tail) {
                  outString +=
                    '<a:tailEnd type="' + objs_list[i].options.line_tail + '"/>'
                } // Endif.

                outString += '</a:ln>'
              } // Endif.
            } else if (!objs_list[i].options.disableFillSettings) {
              outString += '<a:noFill/>'
            } // Endif.

            if (objs_list[i].options.effects) {
              for (
                var ii = 0, total_size_ii = objs_list[i].options.effects.length;
                ii < total_size_ii;
                ii++
              ) {
                switch (objs_list[i].options.effects[ii].type) {
                  case 'outerShadow':
                    effectsList += generateEffects(
                      objs_list[i].options.effects[ii],
                      'outerShdw'
                    )
                    break

                  case 'innerShadow':
                    effectsList += generateEffects(
                      objs_list[i].options.effects[ii],
                      'innerShdw'
                    )
                    break
                } // End of switch.
              } // End of for loop.
            } // Endif.

            if (effectsList !== '') {
              outString += '<a:effectLst>' + effectsList + '</a:effectLst>'
            } // Endif.

            outString += '</p:spPr>'
          } // Endif.

          if (objs_list[i].options) {
            if (objs_list[i].options.align) {
              switch (objs_list[i].options.align) {
                case 'right':
                  moreStylesAttr += ' algn="r"'
                  break

                case 'center':
                  moreStylesAttr += ' algn="ctr"'
                  break

                case 'justify':
                  moreStylesAttr += ' algn="just"'
                  break
              } // End of switch.
            } // Endif.

            if (objs_list[i].options.indentLevel > 0) {
              moreStylesAttr +=
                ' lvl="' + objs_list[i].options.indentLevel + '"'
            } // Endif.
          } // Endif.

          if (moreStyles !== '') {
            outStyles =
              '<a:pPr' + moreStylesAttr + '>' + moreStyles + '</a:pPr>'
          } else if (moreStylesAttr !== '') {
            outStyles = '<a:pPr' + moreStylesAttr + '/>'
          } // Endif.

          if (styleData !== '') {
            outString += '<p:style>' + styleData + '</p:style>'
          } // Endif.

          if (typeof objs_list[i].text === 'string') {
            outString +=
              '<p:txBody>' +
              createBodyProperties(objs_list[i].options) +
              '<a:lstStyle/><a:p>' +
              outStyles
            outString += createXmlSlideTextObject(
              objs_list[i].options,
              objs_list[i].text,
              data.slide,
              data.slide.getPageNumber(),
              outStyles
            )
          } else if (typeof objs_list[i].text === 'number') {
            outString +=
              '<p:txBody>' +
              createBodyProperties(objs_list[i].options) +
              '<a:lstStyle/><a:p>' +
              outStyles
            outString += createXmlSlideTextObject(
              objs_list[i].options,
              objs_list[i].text + '',
              data.slide,
              data.slide.getPageNumber(),
              outStyles
            )
          } else if (objs_list[i].text && objs_list[i].text.length) {
            var outBodyOpt = createBodyProperties(objs_list[i].options)
            outString +=
              '<p:txBody>' + outBodyOpt + '<a:lstStyle/><a:p>' + outStyles

            for (
              var j = 0, total_size_j = objs_list[i].text.length;
              j < total_size_j;
              j++
            ) {
              if (
                typeof objs_list[i].text[j] === 'object' &&
                objs_list[i].text[j].text
              ) {
                outString += createXmlSlideTextObject(
                  objs_list[i].text[j].options || objs_list[i].options,
                  objs_list[i].text[j].text,
                  data.slide,
                  outBodyOpt,
                  outStyles,
                  data.slide.getPageNumber()
                )
              } else if (typeof objs_list[i].text[j] === 'string') {
                outString += createXmlSlideTextObject(
                  objs_list[i].options,
                  objs_list[i].text[j],
                  data.slide,
                  outBodyOpt,
                  outStyles,
                  data.slide.getPageNumber()
                )
              } else if (typeof objs_list[i].text[j] === 'number') {
                outString += createXmlSlideTextObject(
                  objs_list[i].options,
                  objs_list[i].text[j] + '',
                  data.slide,
                  outBodyOpt,
                  outStyles,
                  data.slide.getPageNumber()
                )
              } else if (
                typeof objs_list[i].text[j] === 'object' &&
                objs_list[i].text[j].field
              ) {
                outString += createXmlSlideTextObject(
                  objs_list[i].options,
                  objs_list[i].text[j],
                  data.slide,
                  outBodyOpt,
                  outStyles,
                  data.slide.getPageNumber()
                )
              } // Endif.
            } // Endif.
          } else if (typeof objs_list[i].text === 'object') {
            if (!objs_list[i].text) {
              objs_list[i].text = {}
            } // Endif.

            if (!objs_list[i].text.field) {
              objs_list[i].text.field = ''
            } // Endif.

            outString +=
              '<p:txBody>' +
              createBodyProperties(objs_list[i].options) +
              '<a:lstStyle/><a:p>' +
              outStyles
            outString += createXmlSlideTextObject(
              objs_list[i].options,
              objs_list[i].text,
              data.slide,
              data.slide.getPageNumber(),
              outStyles
            )
          } // Endif.

          // We must add that at the end of every paragraph with text:
          if (typeof objs_list[i].text !== 'undefined') {
            var font_size = ''
            if (objs_list[i].options && objs_list[i].options.font_size) {
              font_size = ' sz="' + objs_list[i].options.font_size + '00"'
            } // Endif.

            outString +=
              '<a:endParaRPr lang="en-US"' +
              font_size +
              ' dirty="0"/></a:p></p:txBody>'
          } // Endif.

          outString += objs_list[i].type === 'cxn' ? '</p:cxnSp>' : '</p:sp>'
          /* eslint-disable indent */
          break

        // Table:
        /*
        case 'table':
          outString += '<p:graphicFrame><p:nvGraphicFramePr><p:cNvPr id="' + (i + 2) + '" name="Object ' + (i + 1) + '"/><p:cNvGraphicFramePr><a:graphicFrameLocks noGrp="1"/></p:cNvGraphicFramePr><p:nvPr/></p:nvGraphicFramePr>'
          outString += '<p:xfrm><a:off x="' + x + '" y="' + y + '"/><a:ext cx="' + cx + '" cy="' + cy + '"/></p:xfrm>'
          outString += '<a:graphic><a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/table"><a:tbl><a:tblPr firstRow="1" bandRow="1"><a:tableStyleId>'

          if ( objs_list[i].options && objs_list[i].options.tableStyleId ) {
            outString += objs_list[i].options.tableStyleId

          } else {
            outString += '{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}'
          } // Endif.

          outString += '</a:tableStyleId></a:tblPr><a:tblGrid>'
          // <a:gridCol w="3276600"/>
          outString += '</a:tblGrid>'
          // objs_list[i].options
          // objs_list[i].rows[][].text
          // BMK_TODO:
          break
        */
        /* eslint-enable indent */

        // Image:
        case 'image':
          // psv 2015-01-21 Manually copied this section from https://github.com/Ziv-Barber/officegen/pull/39/files?w=1
          // outString += '<p:pic><p:nvPicPr><p:cNvPr id="' + (i + 2) + '" name="Object ' + (i + 1) + '"/><p:cNvPicPr><a:picLocks noChangeAspect="1"/></p:cNvPicPr><p:nvPr/></p:nvPicPr><p:blipFill><a:blip r:embed="rId' + objs_list[i].rel_id + '" cstate="print"/><a:stretch><a:fillRect/></a:stretch></p:blipFill><p:spPr><a:xfrm' + locationAttr + '><a:off x="' + x + '" y="' + y + '"/><a:ext cx="' + cx + '" cy="' + cy + '"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom></p:spPr></p:pic>'
          var parts = []

          parts.push(
            '<p:pic><p:nvPicPr><p:cNvPr id="' +
              (i + 2) +
              '" name="Object ' +
              (i + 1) +
              '"'
          )

          if (objs_list[i].link_rel_id) {
            parts.push(
              '><a:hlinkClick r:id="rId' +
                objs_list[i].link_rel_id +
                '"/></p:cNvPr>'
            )
          } else {
            parts.push('/>')
          } // Endif.

          parts.push(
            '<p:cNvPicPr><a:picLocks noChangeAspect="1"/></p:cNvPicPr><p:nvPr/></p:nvPicPr><p:blipFill><a:blip r:embed="rId' +
              objs_list[i].rel_id +
              '" cstate="print"/><a:stretch><a:fillRect/></a:stretch></p:blipFill><p:spPr><a:xfrm' +
              locationAttr +
              '><a:off x="' +
              x +
              '" y="' +
              y +
              '"/><a:ext cx="' +
              cx +
              '" cy="' +
              cy +
              '"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom></p:spPr></p:pic>'
          )
          outString += parts.join('')
          // -- psv 2015-01-21 end merge
          break

        // Paragraph:
        case 'p':
          if (shapeType == null) {
            shapeType = shapes.getShapeInfo(null)
          } // Endif.

          outString += '<p:sp><p:nvSpPr>'
          outString +=
            '<p:cNvPr id="' +
            (i + 2) +
            '" name="Object ' +
            (i + 1) +
            '"/><p:cNvSpPr txBox="1"/><p:nvPr/></p:nvSpPr>'
          outString += '<p:spPr>'

          outString += '<a:xfrm' + locationAttr + '>'

          outString +=
            '<a:off x="' +
            x +
            '" y="' +
            y +
            '"/><a:ext cx="' +
            cx +
            '" cy="' +
            cy +
            '"/></a:xfrm><a:prstGeom prst="' +
            shapeType.name +
            '"><a:avLst/></a:prstGeom>'

          if (objs_list[i].options) {
            if (objs_list[i].options.fill) {
              outString += shapes.createColorElements(objs_list[i].options.fill)
            } else if (!objs_list[i].options.disableFillSettings) {
              outString += '<a:noFill/>'
            } // Endif.

            if (objs_list[i].options.line) {
              outString += '<a:ln>'
              outString += shapes.createColorElements(objs_list[i].options.line)

              if (objs_list[i].options.line_head) {
                outString +=
                  '<a:headEnd type="' + objs_list[i].options.line_head + '"/>'
              } // Endif.

              if (objs_list[i].options.line_tail) {
                outString +=
                  '<a:tailEnd type="' + objs_list[i].options.line_tail + '"/>'
              } // Endif.

              outString += '</a:ln>'
            } // Endif.
          } else if (!objs_list[i].options.disableFillSettings) {
            outString += '<a:noFill/>'
          } // Endif.

          outString += '</p:spPr>'

          if (styleData !== '') {
            outString += '<p:style>' + styleData + '</p:style>'
          } // Endif.

          outString +=
            '<p:txBody><a:bodyPr wrap="square" rtlCol="0"><a:spAutoFit/></a:bodyPr><a:lstStyle/>'

          // Add all the paragraph objects:
          outString = createXmlSlideParagraph(
            outString,
            objs_list[i].data,
            objs_list[i].options,
            data.slide
          )

          outString += '</p:txBody>'

          outString += '</p:sp>'
          break

        // Custom xml code:
        case 'xml':
          // NOTE: While it allowing you to add any xml code directly, please try to use it only for custom layouts.
          outString += objs_list[i].data
          break
      } // End of switch.
    } // End of for loop.

    if (!makeOnlyObjects) {
      outString +=
        '</p:spTree></p:cSld><p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>'

      if (timingData !== '') {
        outString += '<p:timing>' + timingData + '</p:timing>'
      } // Endif.

      outString += '</p:sld' + slideElement + '>'
    } // Endif.

    return outString
  }
Generate a slider resource.

This function generating a slider XML resource.

@param {object} data The main slide object.
@param {boolean} makeOnlyObjects is true to turn this method to make only the objects in data.data.
@return Text string.