// File: mbourand[P]webserv/srcs/Utils/Webserv.cpp
// Function: s_webserv::init_factories()
void s_webserv::init_factories()
{
	methods.add(new ConnectMethod());
	methods.add(new DeleteMethod());
	methods.add(new GetMethod());
	methods.add(new HeadMethod());
	methods.add(new OptionsMethod());
	methods.add(new PostMethod());
	methods.add(new PutMethod());
	methods.add(new TraceMethod());

	headers.add(new AcceptCharsetsHeader());
	headers.add(new AcceptEncodingHeader());
	headers.add(new AcceptLanguageHeader());
	headers.add(new AllowHeader());
	headers.add(new AuthorizationHeader());
	headers.add(new ContentLanguageHeader());
	headers.add(new ContentLengthHeader());
	headers.add(new ContentLocationHeader());
	headers.add(new ContentTypeHeader());
	headers.add(new DateHeader());
	headers.add(new HostHeader());
	headers.add(new LastModifiedHeader());
	headers.add(new LocationHeader());
	headers.add(new RefererHeader());
	headers.add(new RetryAfterHeader());
	headers.add(new ServerHeader());
	headers.add(new TransferEncodingHeader());
	headers.add(new UserAgentHeader());
	headers.add(new WWWAuthenticateHeader());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
addq $0x68, %rax
movq %rax, -0x28(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x20(%rbp)
callq 0xea00
jmp 0x333aa
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x40(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x38(%rbp)
callq 0xece0
jmp 0x333de
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x50(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
callq 0xf2c0
jmp 0x33412
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x60(%rbp)
movl $0x10, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x58(%rbp)
callq 0x17890
jmp 0x33446
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x70(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x68(%rbp)
callq 0x17c40
jmp 0x3347a
movq -0x68(%rbp), %rsi
movq -0x70(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x80(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x78(%rbp)
callq 0x184c0
jmp 0x334ae
movq -0x78(%rbp), %rsi
movq -0x80(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x90(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x88(%rbp)
callq 0x19d90
jmp 0x334e8
movq -0x88(%rbp), %rsi
movq -0x90(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x68, %rax
movq %rax, -0xa0(%rbp)
movl $0x8, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x98(%rbp)
callq 0x1abb0
jmp 0x33528
movq -0x98(%rbp), %rsi
movq -0xa0(%rbp), %rdi
callq 0x45d20
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0xb0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
callq 0xa5c0
jmp 0x3356a
movq -0xa8(%rbp), %rsi
movq -0xb0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0xc0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb8(%rbp)
callq 0xaad0
jmp 0x335ac
movq -0xb8(%rbp), %rsi
movq -0xc0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0xd0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xc8(%rbp)
callq 0xac90
jmp 0x335ee
movq -0xc8(%rbp), %rsi
movq -0xd0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0xe0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
callq 0xae50
jmp 0x33630
movq -0xd8(%rbp), %rsi
movq -0xe0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0xf0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xe8(%rbp)
callq 0xb070
jmp 0x33672
movq -0xe8(%rbp), %rsi
movq -0xf0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x100(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xf8(%rbp)
callq 0xb230
jmp 0x336b4
movq -0xf8(%rbp), %rsi
movq -0x100(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x110(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x108(%rbp)
callq 0xb3f0
jmp 0x336f6
movq -0x108(%rbp), %rsi
movq -0x110(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x120(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x118(%rbp)
callq 0xb5b0
jmp 0x33738
movq -0x118(%rbp), %rsi
movq -0x120(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x130(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x128(%rbp)
callq 0xb770
jmp 0x3377a
movq -0x128(%rbp), %rsi
movq -0x130(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x140(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x138(%rbp)
callq 0xbb30
jmp 0x337bc
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x150(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x148(%rbp)
callq 0xbf70
jmp 0x337fe
movq -0x148(%rbp), %rsi
movq -0x150(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x160(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x158(%rbp)
callq 0xc130
jmp 0x33840
movq -0x158(%rbp), %rsi
movq -0x160(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x170(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x168(%rbp)
callq 0xc2f0
jmp 0x33882
movq -0x168(%rbp), %rsi
movq -0x170(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x180(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x178(%rbp)
callq 0xdf80
jmp 0x338c4
movq -0x178(%rbp), %rsi
movq -0x180(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x190(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x188(%rbp)
callq 0xe140
jmp 0x33906
movq -0x188(%rbp), %rsi
movq -0x190(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x1a0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x198(%rbp)
callq 0xe300
jmp 0x33948
movq -0x198(%rbp), %rsi
movq -0x1a0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x1b0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1a8(%rbp)
callq 0xe4c0
jmp 0x3398a
movq -0x1a8(%rbp), %rsi
movq -0x1b0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x1c0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1b8(%rbp)
callq 0xe680
jmp 0x339cc
movq -0x1b8(%rbp), %rsi
movq -0x1c0(%rbp), %rdi
callq 0x45d50
movq -0x30(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x1d0(%rbp)
movl $0x28, %edi
callq 0x9680
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1c8(%rbp)
callq 0xe840
jmp 0x33a0e
movq -0x1c8(%rbp), %rsi
movq -0x1d0(%rbp), %rdi
callq 0x45d50
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq -0x20(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x10, %esi
callq 0x9690
jmp 0x33d9d
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x8, %esi
callq 0x9690
jmp 0x33d9d
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0xc8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0xd8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0xe8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0xf8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x118(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x128(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x138(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x148(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x158(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x168(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x178(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x188(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x198(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x1a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x1b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
jmp 0x33d9d
movq -0x1c8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0x28, %esi
callq 0x9690
movq -0x10(%rbp), %rdi
callq 0x9af0
nopw %cs:(%rax,%rax)