.mq(
    @value_1-1 : @false, @value_2-1 : @false,
    @value_1-2 : @false, @value_2-2 : @false,
    @value_1-3 : @false, @value_2-3 : @false,
    @value_1-4 : @false, @value_2-4 : @false,
    @value_1-5 : @false, @value_2-5 : @false,
    @value_1-6 : @false, @value_2-6 : @false,
    @value_1-7 : @false, @value_2-7 : @false,
    @value_1-8 : @false, @value_2-8 : @false,
    @value_1-9 : @false, @value_2-9 : @false,
    @value_1-10: @false, @value_2-10: @false,
    @value_1-11: @false, @value_2-11: @false,
    @value_1-12: @false, @value_2-12: @false
){
    & when not (@value_1-1 = @false){
        & when not (isnumber(@value_1-1)) and (includes(@breaks, @value_1-1) = 0){
            & when not (@value_2-1 = @false){
                & when (includes(@breaks, @value_2-1) = 1){
                    .break( @value_1-1 , 0 , @breaks[@@value_2-1] );
                }
                & when (isnumber(@value_2-1)) {
                    .break( @value_1-1 , 0 , @value_2-1 );
                }
                
                & when not (@value_1-2 = @false) {
                    .mq(
                        @value_2-1,  @value_1-2, 
                        @value_2-2,  @value_1-3,
                        @value_2-3,  @value_1-4,
                        @value_2-4,  @value_1-5,
                        @value_2-5,  @value_1-6,
                        @value_2-6,  @value_1-6,
                        @value_2-7,  @value_1-7,
                        @value_2-8,  @value_1-8,
                        @value_2-9,  @value_1-9,
                        @value_2-10, @value_1-10,
                        @value_2-11, @value_1-11,
                        @value_2-12
                    );
                }
            }
            & when ( @value_2-1 = @false ) {
                @value_1-1();
            }
        }

        & when (isnumber(@value_1-1)) {
            & when not(@value_1-2 = @false){
                & when (includes(@breaks, @value_1-2) = 1){
                    .break( @value_2-1 , @value_1-1, @breaks[@@value_1-2] );
                }
                & when (isnumber(@value_1-2)){
                    .break( @value_2-1 , @value_1-1, @value_1-2);
                }
                & when not (@value_2-2 = @false){
                    .mq(
                        @value_1-2,  @value_2-2, 
                        @value_1-3,  @value_2-3,
                        @value_1-4,  @value_2-4,
                        @value_1-5,  @value_2-5,
                        @value_1-6,  @value_2-6,
                        @value_1-7,  @value_2-7, 
                        @value_1-8,  @value_2-8,
                        @value_1-9,  @value_2-9,
                        @value_1-10, @value_2-10,
                        @value_1-11, @value_2-11,
                        @value_1-12, @value_2-12
                    );
                }
            }
            & when (@value_1-2 = @false) {
                .break( @value_2-1 , @value_1-1);
            }
        }
    
        & when (includes(@breaks, @value_1-1) = 1){
            & when not(@value_1-2 = @false){
                & when (includes(@breaks, @value_1-2) = 1){
                    .break( @value_2-1 , @breaks[@@value_1-1], @breaks[@@value_1-2] );
                }
                & when (isnumber(@value_1-2)){
                    .break( @value_2-1 , @breaks[@@value_1-1], @value_1-2);
                }
                & when not (@value_2-2 = @false){
                    .mq(
                        @value_1-2,  @value_2-2, 
                        @value_1-3,  @value_2-3,
                        @value_1-4,  @value_2-4,
                        @value_1-5,  @value_2-5,
                        @value_1-6,  @value_2-6,
                        @value_1-7,  @value_2-7, 
                        @value_1-8,  @value_2-8,
                        @value_1-9,  @value_2-9,
                        @value_1-10, @value_2-10,
                        @value_1-11, @value_2-11,
                        @value_1-12, @value_2-12
                    );
                }
            }
            & when (@value_1-2 = @false){
                .break( @value_2-1 , @breaks[@@value_1-1])
            }
        }
    }
}

.mqh(
    @value_1-1 : @false, @value_2-1 : @false,
    @value_1-2 : @false, @value_2-2 : @false,
    @value_1-3 : @false, @value_2-3 : @false,
    @value_1-4 : @false, @value_2-4 : @false,
    @value_1-5 : @false, @value_2-5 : @false,
    @value_1-6 : @false, @value_2-6 : @false,
    @value_1-7 : @false, @value_2-7 : @false,
    @value_1-8 : @false, @value_2-8 : @false,
    @value_1-9 : @false, @value_2-9 : @false,
    @value_1-10: @false, @value_2-10: @false,
    @value_1-11: @false, @value_2-11: @false,
    @value_1-12: @false, @value_2-12: @false
){
    & when not (@value_1-1 = @false){
        & when not (isnumber(@value_1-1)){
            & when not (@value_2-1 = @false){
                & when (isnumber(@value_2-1)) {
                    .break-h( @value_1-1 , 0 , @value_2-1 );
                }
                
                & when not (@value_1-2 = @false) {
                    .mqh(
                        @value_2-1,  @value_1-2, 
                        @value_2-2,  @value_1-3,
                        @value_2-3,  @value_1-4,
                        @value_2-4,  @value_1-5,
                        @value_2-5,  @value_1-6,
                        @value_2-6,  @value_1-6,
                        @value_2-7,  @value_1-7,
                        @value_2-8,  @value_1-8,
                        @value_2-9,  @value_1-9,
                        @value_2-10, @value_1-10,
                        @value_2-11, @value_1-11,
                        @value_2-12
                    );
                }
            }
            & when ( @value_2-1 = @false ) {
                @value_1-1();
            }
        }

        & when (isnumber(@value_1-1)) {
            & when not(@value_1-2 = @false){
                & when (isnumber(@value_1-2)){
                    .break-h( @value_2-1 , @value_1-1, @value_1-2);
                }
                & when not (@value_2-2 = @false){
                    .mqh(
                        @value_1-2,  @value_2-2, 
                        @value_1-3,  @value_2-3,
                        @value_1-4,  @value_2-4,
                        @value_1-5,  @value_2-5,
                        @value_1-6,  @value_2-6,
                        @value_1-7,  @value_2-7, 
                        @value_1-8,  @value_2-8,
                        @value_1-9,  @value_2-9,
                        @value_1-10, @value_2-10,
                        @value_1-11, @value_2-11,
                        @value_1-12, @value_2-12
                    );
                }
            }
            & when (@value_1-2 = @false) {
                .break-h( @value_2-1 , @value_1-1);
            }
        }
    }
}