<?php

use Symfony\Component\Routing\Exception\MethodNotAllowedException;
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\Routing\RequestContext;

/**
 * This class has been auto-generated
 * by the Symfony Routing Component.
 */
class appProdProjectContainerUrlMatcher extends Symfony\Bundle\FrameworkBundle\Routing\RedirectableUrlMatcher
{
    public function __construct(RequestContext $context)
    {
        $this->context = $context;
    }

    public function match($rawPathinfo)
    {
        $allow = array();
        $pathinfo = rawurldecode($rawPathinfo);
        $trimmedPathinfo = rtrim($pathinfo, '/');
        $context = $this->context;
        $request = $this->request ?: $this->createRequest($pathinfo);
        $requestMethod = $canonicalMethod = $context->getMethod();

        if ('HEAD' === $requestMethod) {
            $canonicalMethod = 'GET';
        }

        // user_default_index
        if ('/user' === $trimmedPathinfo) {
            $ret = array (  '_controller' => 'UserBundle\\Controller\\DefaultController::indexAction',  '_route' => 'user_default_index',);
            if ('/' === substr($pathinfo, -1)) {
                // no-op
            } elseif ('GET' !== $canonicalMethod) {
                goto not_user_default_index;
            } else {
                return array_replace($ret, $this->redirect($rawPathinfo.'/', 'user_default_index'));
            }

            return $ret;
        }
        not_user_default_index:

        if (0 === strpos($pathinfo, '/answer')) {
            // answer_index
            if ('/answer' === $trimmedPathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\AnswerController::indexAction',  '_route' => 'answer_index',);
                if ('/' === substr($pathinfo, -1)) {
                    // no-op
                } elseif ('GET' !== $canonicalMethod) {
                    goto not_answer_index;
                } else {
                    return array_replace($ret, $this->redirect($rawPathinfo.'/', 'answer_index'));
                }

                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_answer_index;
                }

                return $ret;
            }
            not_answer_index:

            // answer_new
            if (0 === strpos($pathinfo, '/answer/new/answer') && preg_match('#^/answer/new/answer/(?P<question>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'answer_new')), array (  '_controller' => 'AppBundle\\Controller\\AnswerController::newAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_answer_new;
                }

                return $ret;
            }
            not_answer_new:

            // answer_show
            if (preg_match('#^/answer/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'answer_show')), array (  '_controller' => 'AppBundle\\Controller\\AnswerController::showAction',));
                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_answer_show;
                }

                return $ret;
            }
            not_answer_show:

            // answer_edit
            if (0 === strpos($pathinfo, '/answer/edit/answer') && preg_match('#^/answer/edit/answer/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'answer_edit')), array (  '_controller' => 'AppBundle\\Controller\\AnswerController::editAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_answer_edit;
                }

                return $ret;
            }
            not_answer_edit:

            // answer_delete
            if (preg_match('#^/answer/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'answer_delete')), array (  '_controller' => 'AppBundle\\Controller\\AnswerController::deleteAction',));
                if (!in_array($requestMethod, array('DELETE'))) {
                    $allow = array_merge($allow, array('DELETE'));
                    goto not_answer_delete;
                }

                return $ret;
            }
            not_answer_delete:

        }

        elseif (0 === strpos($pathinfo, '/botmanager')) {
            // export_answers
            if (0 === strpos($pathinfo, '/botmanager/answers/export/csv') && preg_match('#^/botmanager/answers/export/csv/(?P<botlink>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'export_answers')), array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::exportAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_export_answers;
                }

                return $ret;
            }
            not_export_answers:

            // view_answers
            if (0 === strpos($pathinfo, '/botmanager/answers/preview') && preg_match('#^/botmanager/answers/preview/(?P<botlink>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'view_answers')), array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::answersAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_view_answers;
                }

                return $ret;
            }
            not_view_answers:

            // homepage
            if ('/botmanager' === $trimmedPathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::indexAction',  '_route' => 'homepage',);
                if ('/' === substr($pathinfo, -1)) {
                    // no-op
                } elseif ('GET' !== $canonicalMethod) {
                    goto not_homepage;
                } else {
                    return array_replace($ret, $this->redirect($rawPathinfo.'/', 'homepage'));
                }

                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_homepage;
                }

                return $ret;
            }
            not_homepage:

            // save_botconv
            if ('/botmanager/save/bot/conversation' === $pathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::saveChatAction',  '_route' => 'save_botconv',);
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_save_botconv;
                }

                return $ret;
            }
            not_save_botconv:

            // botmanager_new
            if ('/botmanager/new' === $pathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::newAction',  '_route' => 'botmanager_new',);
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_botmanager_new;
                }

                return $ret;
            }
            not_botmanager_new:

            // botmanager_show
            if (0 === strpos($pathinfo, '/botmanager/manage') && preg_match('#^/botmanager/manage/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'botmanager_show')), array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::showAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_botmanager_show;
                }

                return $ret;
            }
            not_botmanager_show:

            // botmanager_edit
            if (preg_match('#^/botmanager/(?P<id>[^/]++)/edit$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'botmanager_edit')), array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::editAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_botmanager_edit;
                }

                return $ret;
            }
            not_botmanager_edit:

            // botmanager_delete
            if (preg_match('#^/botmanager/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'botmanager_delete')), array (  '_controller' => 'AppBundle\\Controller\\ChatBotController::deleteAction',));
                if (!in_array($requestMethod, array('DELETE'))) {
                    $allow = array_merge($allow, array('DELETE'));
                    goto not_botmanager_delete;
                }

                return $ret;
            }
            not_botmanager_delete:

        }

        elseif (0 === strpos($pathinfo, '/choice')) {
            // choice_index
            if ('/choice' === $trimmedPathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\ChoiceController::indexAction',  '_route' => 'choice_index',);
                if ('/' === substr($pathinfo, -1)) {
                    // no-op
                } elseif ('GET' !== $canonicalMethod) {
                    goto not_choice_index;
                } else {
                    return array_replace($ret, $this->redirect($rawPathinfo.'/', 'choice_index'));
                }

                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_choice_index;
                }

                return $ret;
            }
            not_choice_index:

            // choice_new
            if (0 === strpos($pathinfo, '/choice/new/choice') && preg_match('#^/choice/new/choice/(?P<question>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'choice_new')), array (  '_controller' => 'AppBundle\\Controller\\ChoiceController::newAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_choice_new;
                }

                return $ret;
            }
            not_choice_new:

            // choice_show
            if (preg_match('#^/choice/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'choice_show')), array (  '_controller' => 'AppBundle\\Controller\\ChoiceController::showAction',));
                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_choice_show;
                }

                return $ret;
            }
            not_choice_show:

            // choice_edit
            if (preg_match('#^/choice/(?P<id>[^/]++)/edit$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'choice_edit')), array (  '_controller' => 'AppBundle\\Controller\\ChoiceController::editAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_choice_edit;
                }

                return $ret;
            }
            not_choice_edit:

            // choice_delete
            if (preg_match('#^/choice/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'choice_delete')), array (  '_controller' => 'AppBundle\\Controller\\ChoiceController::deleteAction',));
                if (!in_array($requestMethod, array('DELETE'))) {
                    $allow = array_merge($allow, array('DELETE'));
                    goto not_choice_delete;
                }

                return $ret;
            }
            not_choice_delete:

        }

        // preview_chatbot
        if (0 === strpos($pathinfo, '/chatbot') && preg_match('#^/chatbot/(?P<bot>[^/]++)$#sD', $pathinfo, $matches)) {
            return $this->mergeDefaults(array_replace($matches, array('_route' => 'preview_chatbot')), array (  '_controller' => 'AppBundle\\Controller\\DefaultController::chatbotAction',));
        }

        // chat_whith_bot
        if (0 === strpos($pathinfo, '/dynamicforms') && preg_match('#^/dynamicforms/(?P<botlink>[^/]++)$#sD', $pathinfo, $matches)) {
            return $this->mergeDefaults(array_replace($matches, array('_route' => 'chat_whith_bot')), array (  '_controller' => 'AppBundle\\Controller\\DefaultController::indexAction',));
        }

        // chatbot_json
        if (0 === strpos($pathinfo, '/json/chatbot') && preg_match('#^/json/chatbot/(?P<botlink>[^/]++)$#sD', $pathinfo, $matches)) {
            return $this->mergeDefaults(array_replace($matches, array('_route' => 'chatbot_json')), array (  '_controller' => 'AppBundle\\Controller\\DefaultController::jsonAction',));
        }

        if (0 === strpos($pathinfo, '/question')) {
            // question_index
            if ('/question' === $trimmedPathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\QuestionController::indexAction',  '_route' => 'question_index',);
                if ('/' === substr($pathinfo, -1)) {
                    // no-op
                } elseif ('GET' !== $canonicalMethod) {
                    goto not_question_index;
                } else {
                    return array_replace($ret, $this->redirect($rawPathinfo.'/', 'question_index'));
                }

                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_question_index;
                }

                return $ret;
            }
            not_question_index:

            // question_new
            if ('/question/new' === $pathinfo) {
                $ret = array (  '_controller' => 'AppBundle\\Controller\\QuestionController::newAction',  '_route' => 'question_new',);
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_question_new;
                }

                return $ret;
            }
            not_question_new:

            // question_show
            if (preg_match('#^/question/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'question_show')), array (  '_controller' => 'AppBundle\\Controller\\QuestionController::showAction',));
                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_question_show;
                }

                return $ret;
            }
            not_question_show:

            // question_edit
            if (0 === strpos($pathinfo, '/question/edit/question') && preg_match('#^/question/edit/question/(?P<question>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'question_edit')), array (  '_controller' => 'AppBundle\\Controller\\QuestionController::editAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_question_edit;
                }

                return $ret;
            }
            not_question_edit:

            // question_delete
            if (preg_match('#^/question/(?P<id>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'question_delete')), array (  '_controller' => 'AppBundle\\Controller\\QuestionController::deleteAction',));
                if (!in_array($requestMethod, array('DELETE'))) {
                    $allow = array_merge($allow, array('DELETE'));
                    goto not_question_delete;
                }

                return $ret;
            }
            not_question_delete:

        }

        elseif (0 === strpos($pathinfo, '/login')) {
            // fos_user_security_login
            if ('/login' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\SecurityController::loginAction',  '_route' => 'fos_user_security_login',);
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_fos_user_security_login;
                }

                return $ret;
            }
            not_fos_user_security_login:

            // fos_user_security_check
            if ('/login_check' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\SecurityController::checkAction',  '_route' => 'fos_user_security_check',);
                if (!in_array($requestMethod, array('POST'))) {
                    $allow = array_merge($allow, array('POST'));
                    goto not_fos_user_security_check;
                }

                return $ret;
            }
            not_fos_user_security_check:

        }

        // fos_user_security_logout
        if ('/logout' === $pathinfo) {
            $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\SecurityController::logoutAction',  '_route' => 'fos_user_security_logout',);
            if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                $allow = array_merge($allow, array('GET', 'POST'));
                goto not_fos_user_security_logout;
            }

            return $ret;
        }
        not_fos_user_security_logout:

        if (0 === strpos($pathinfo, '/profile')) {
            // fos_user_profile_show
            if ('/profile' === $trimmedPathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\ProfileController::showAction',  '_route' => 'fos_user_profile_show',);
                if ('/' === substr($pathinfo, -1)) {
                    // no-op
                } elseif ('GET' !== $canonicalMethod) {
                    goto not_fos_user_profile_show;
                } else {
                    return array_replace($ret, $this->redirect($rawPathinfo.'/', 'fos_user_profile_show'));
                }

                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_fos_user_profile_show;
                }

                return $ret;
            }
            not_fos_user_profile_show:

            // fos_user_profile_edit
            if ('/profile/edit' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\ProfileController::editAction',  '_route' => 'fos_user_profile_edit',);
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_fos_user_profile_edit;
                }

                return $ret;
            }
            not_fos_user_profile_edit:

            // fos_user_change_password
            if ('/profile/change-password' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\ChangePasswordController::changePasswordAction',  '_route' => 'fos_user_change_password',);
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_fos_user_change_password;
                }

                return $ret;
            }
            not_fos_user_change_password:

        }

        elseif (0 === strpos($pathinfo, '/register')) {
            // fos_user_registration_register
            if ('/register' === $trimmedPathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\RegistrationController::registerAction',  '_route' => 'fos_user_registration_register',);
                if ('/' === substr($pathinfo, -1)) {
                    // no-op
                } elseif ('GET' !== $canonicalMethod) {
                    goto not_fos_user_registration_register;
                } else {
                    return array_replace($ret, $this->redirect($rawPathinfo.'/', 'fos_user_registration_register'));
                }

                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_fos_user_registration_register;
                }

                return $ret;
            }
            not_fos_user_registration_register:

            // fos_user_registration_check_email
            if ('/register/check-email' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\RegistrationController::checkEmailAction',  '_route' => 'fos_user_registration_check_email',);
                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_fos_user_registration_check_email;
                }

                return $ret;
            }
            not_fos_user_registration_check_email:

            if (0 === strpos($pathinfo, '/register/confirm')) {
                // fos_user_registration_confirm
                if (preg_match('#^/register/confirm/(?P<token>[^/]++)$#sD', $pathinfo, $matches)) {
                    $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'fos_user_registration_confirm')), array (  '_controller' => 'FOS\\UserBundle\\Controller\\RegistrationController::confirmAction',));
                    if (!in_array($canonicalMethod, array('GET'))) {
                        $allow = array_merge($allow, array('GET'));
                        goto not_fos_user_registration_confirm;
                    }

                    return $ret;
                }
                not_fos_user_registration_confirm:

                // fos_user_registration_confirmed
                if ('/register/confirmed' === $pathinfo) {
                    $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\RegistrationController::confirmedAction',  '_route' => 'fos_user_registration_confirmed',);
                    if (!in_array($canonicalMethod, array('GET'))) {
                        $allow = array_merge($allow, array('GET'));
                        goto not_fos_user_registration_confirmed;
                    }

                    return $ret;
                }
                not_fos_user_registration_confirmed:

            }

        }

        elseif (0 === strpos($pathinfo, '/resetting')) {
            // fos_user_resetting_request
            if ('/resetting/request' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\ResettingController::requestAction',  '_route' => 'fos_user_resetting_request',);
                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_fos_user_resetting_request;
                }

                return $ret;
            }
            not_fos_user_resetting_request:

            // fos_user_resetting_reset
            if (0 === strpos($pathinfo, '/resetting/reset') && preg_match('#^/resetting/reset/(?P<token>[^/]++)$#sD', $pathinfo, $matches)) {
                $ret = $this->mergeDefaults(array_replace($matches, array('_route' => 'fos_user_resetting_reset')), array (  '_controller' => 'FOS\\UserBundle\\Controller\\ResettingController::resetAction',));
                if (!in_array($canonicalMethod, array('GET', 'POST'))) {
                    $allow = array_merge($allow, array('GET', 'POST'));
                    goto not_fos_user_resetting_reset;
                }

                return $ret;
            }
            not_fos_user_resetting_reset:

            // fos_user_resetting_send_email
            if ('/resetting/send-email' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\ResettingController::sendEmailAction',  '_route' => 'fos_user_resetting_send_email',);
                if (!in_array($requestMethod, array('POST'))) {
                    $allow = array_merge($allow, array('POST'));
                    goto not_fos_user_resetting_send_email;
                }

                return $ret;
            }
            not_fos_user_resetting_send_email:

            // fos_user_resetting_check_email
            if ('/resetting/check-email' === $pathinfo) {
                $ret = array (  '_controller' => 'FOS\\UserBundle\\Controller\\ResettingController::checkEmailAction',  '_route' => 'fos_user_resetting_check_email',);
                if (!in_array($canonicalMethod, array('GET'))) {
                    $allow = array_merge($allow, array('GET'));
                    goto not_fos_user_resetting_check_email;
                }

                return $ret;
            }
            not_fos_user_resetting_check_email:

        }

        if ('/' === $pathinfo && !$allow) {
            throw new Symfony\Component\Routing\Exception\NoConfigurationException();
        }

        throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException();
    }
}
