<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def UnAmal(A, RowsPerBlock, ColsPerBlock):
 """Unamalgamate a CSR A with blocks of 1's. This operation is equivalent to replacing each entry of A with ones(RowsPerBlock, ColsPerBlock), i.e., this is equivalent to setting all of A's nonzeros to 1 and then doing a Kronecker product between A and ones(RowsPerBlock, ColsPerBlock). Parameters A : csr_matrix Amalgamted matrix RowsPerBlock : int Give A blocks of size (RowsPerBlock, ColsPerBlock) ColsPerBlock : int Give A blocks of size (RowsPerBlock, ColsPerBlock) Returns ------- A : bsr_matrix Returns A.data[:] = 1, followed by a Kronecker product of A and ones(RowsPerBlock, ColsPerBlock) Examples -------- matrix([[1, 0, 2], [0, 0, 3], [4, 5, 6]]) matrix([[ 1., 1., 0., 0., 1., 1.], [ 1., 1., 0., 0., 1., 1.], [ 0., 0., 0., 0., 1., 1.], [ 0., 0., 0., 0., 1., 1.], [ 1., 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1., 1.]]) """

    data = np.ones((A.indices.shape[0], RowsPerBlock, ColsPerBlock))
    blockI = (data, A.indices, A.indptr)
    shape = (RowsPerBlock*A.shape[0], ColsPerBlock*A.shape[1])
    return bsr_matrix(blockI, shape=shape)