        confirmMessage: function (message, title, icon, buttons, callback) {
            // if standard buttons
            if (typeof buttons === 'function') {
                callback = buttons;
                $dialogConfirm.find('.modal-footer').html(
                    '<a class="modal-action modal-close waves-effect waves-green btn-flat translate" data-result="true">' + _('Ok') + '</a>' +
                    '<a class="modal-action modal-close waves-effect waves-green btn-flat translate">' + _('Cancel') + '</a>');
                $dialogConfirm.find('.modal-footer .modal-action').on('click', function () {
                    const cb = $dialogConfirm.data('callback');
                    cb && cb($(this).data('result'));
                });
            } else if (typeof buttons === 'object') {
                let tButtons = '';
                for (let b = buttons.length - 1; b >= 0; b--) {
                    tButtons += '<a class="modal-action modal-close waves-effect waves-green btn-flat translate" data-id="' + b + '">' + buttons[b] + '</a>';
                }
                $dialogConfirm.find('.modal-footer').html(tButtons);
                $dialogConfirm.find('.modal-footer .modal-action').on('click', function () {
                    const cb = $dialogConfirm.data('callback');
                    cb && cb($(this).data('id'));
                });
            }

            $dialogConfirm.find('.dialog-title').text(title || _('Please confirm'));
            if (icon) {
                $dialogConfirm.find('.dialog-icon')
                    .show()
                    .html(icon);
            } else {
                $dialogConfirm.find('.dialog-icon').hide();
            }
            $dialogConfirm.find('.dialog-text').html(message);
            $dialogConfirm.data('callback', callback);
            $dialogConfirm.modal('open');
        },
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.