<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def min_xor(a, b, c, d, w):
 """ Lower bound of result of XORing 2-intervals. :param a: Lower bound of first interval :param b: Upper bound of first interval :param c: Lower bound of second interval :param d: Upper bound of second interval :param w: bit width :return: Lower bound of XORing 2-intervals """

        m = (1 << (w - 1))
        while m != 0:
            if ((~a) & c & m) != 0:
                temp = (a | m) & -m
                if temp <= b:
                    a = temp
            elif (a & (~c) & m) != 0:
                temp = (c | m) & -m
                if temp <= d:
                    c = temp
            m >>= 1
        return a ^ c